什么是 ETL?2025年03月17日 | 阅读 9 分钟 "提取、转换和加载" 是 "extract, transform, and load" 的缩写。 在数据集成技术中,ETL过程至关重要。企业可以使用ETL从各种来源收集数据,并将其整合到一个统一的集中位置。ETL也有助于不同类型的数据协同工作。 概述ETL过程会收集和精炼多种类型的数据,然后将其加载到像Redshift、Azure或BigQuery这样的数据仓库中。 ETL还可以用于在各种源、目标和分析工具之间迁移数据。因此,ETL过程对于生成商业智能和执行更大规模的数据管理计划至关重要。 ETL的功能ETL由三个基本步骤组成,即提取、转换和加载。通过执行这三个步骤,我们提取数据,并在处理后将其存储到特定目标。 步骤1:提取只有少数企业依赖单一类型的数据或技术。为了发展业务信息,大多数组织管理来自各种来源的数据,并采用多种数据分析方法。为了使这样复杂的数据策略能够奏效,数据必须能够在系统和应用程序之间自由移动。 在数据被移动到新位置之前,必须先从其源头检索。在ETL过程的第一个阶段,结构化和非结构化数据被导入并合并到一个单一的存储位置或数据库中。数据的提取可以从各种源进行,并且在保持其原始形式的情况下进行:
虽然可以手动提取数据,但这是耗时且容易出错的。ETL工具可以自动化提取过程,从而实现更可靠、更高效的工作流程。 步骤2:转换在此步骤中,我们还可以进行数据验证。这将确保所有正在转换的数据都符合需求且正确。在此ETL过程中,我们维护数据的质量。我们还可以使用法规来帮助我们的组织履行其报告义务。数据转换过程中有各种子过程:
转换被广泛认为是ETL过程中最关键的一步。数据转换提高了数据的完整性,并确保数据在到达新位置时完全合规且可供使用。 步骤3:加载现在,在这一步,转换后的新数据将作为ETL过程的最后一步加载到新的目标位置。数据可以批量加载(全量加载)或在预定的时间间隔加载(增量加载)。 全量加载——在ETL全量加载场景中,所有从转换流水线上出来的东西都会在数据仓库中生成新的、唯一的条目。虽然这有时可能有利于研究目的,但全量加载会导致数据集呈指数级增长,并且难以管理。 增量加载——增量加载过程是一种不那么全面的但更可控的技术。增量加载会将新数据与现有数据进行比较,只有在发现新的、唯一的数据时才会创建新记录。这种架构使得较小、成本较低的数据仓库能够维护和管理商业智能。 ETL和商业智能如今,公司能够获取的数据量和数据来源比以往任何时候都多,这使得数据策略比以往任何时候都更加复杂。ETL可以将大量数据转化为有用的商业智能。 考虑一家公司可以获取的数据量。除了工厂和机器在生产线上收集的数据外,公司还收集营销、销售、物流和财务数据。 为了进行分析,所有这些数据都必须被提取、转换并加载到新的位置。在这种情况下,我们可以使用ETL方法来充分利用我们的数据,通过以下方式: 提供单一的视角多个数据集需要时间和协调,这可能导致效率低下和延迟。ETL将数据库和各种类型的数据整合到一个统一的、一致的视图中。 提供历史背景ETL帮助公司将旧平台和应用程序的数据与新平台和应用程序的数据合并。这创造了数据的长期视图,允许将旧数据集与较新的数据集进行比较。 提高效率和生产力ETL软件使手动编码的数据迁移更加容易。因此,开发人员及其团队可以将更多精力放在创新上,而不是耗时的创建数据移动和格式化代码的任务上。 构建正确的数据迁移ETL策略我们可以通过两种不同的方式轻松地执行ETL过程。无论哪种方式,都有其自身的需求和成本。在许多情况下,企业可以委托其开发人员开发自己的ETL。然而,这个过程耗时、容易延迟且成本高昂。 如今,大多数公司都使用ETL工具,以便顺利地进行数据集成过程。ETL工具以其速度、可伸缩性、成本效益以及与大型数据管理技术的集成能力而闻名。ETL工具还附带各种数据质量和治理功能。 我们还需要决定开源产品是否适合我们的公司,因为它们通常提供更大的自由度,并帮助用户避免供应商锁定。 Talend Data Fabric是一套应用程序,可以连接我们所有的数v据,无论其来源或目的地如何。 数据在标准位置进行收集、清理和处理。最后,数据被放入数据存储中,并从那里进行查询。遗留ETL通过处理导入的数据,在存储到关系数据引擎之前对其进行原地清理。 Azure HDInsight支持各种Apache Hadoop环境组件,以实现大规模ETL。 接下来的部分将详细介绍ETL的每个步骤及其组件。 编排编排在ETL管道的每个阶段都使用。在HDInsight中,ETL过程通常涉及多个独立产品协同工作。请考虑以下场景:
需要编排才能在正确的时间运行正确的作业。这是必须妥善处理的一个非常重要的部分。 Apache OozieApache Oozie是一个Hadoop任务管理工作流协调框架。Oozie是一个在HDInsight集群中运行的Hadoop集成。 Azure 数据工厂Azure Data Factory以平台即服务(PaaS)的形式提供编排功能。Azure Data Factory是一个在云中运行的数据集成解决方案。它帮助我们通过数据驱动的工作流来协调和自动化数据传输和转换。 输入文件和输出文件的存储大部分源数据文件直接上传到Azure Storage或Azure Data Lake Storage,这是最简单的方法之一。通常,文件是扁平格式,如CSV或其他Azure支持的格式,尽管它支持多种数据格式。 Azure 存储Azure Storage已针对特定适应目标进行了设置。当处理大量小文件时,Azure Storage最适合大多数分析节点。只要文件大小在我们的帐户限制内,Azure Storage就会提供相同的速度。可以以一致的性能存储TB级数据。 对于存储Web日志或传感器数据,我们可以轻松使用Blob存储。Blob存储有多种形状和大小,我们可以根据我们的需求选择。 如果我们要将许多Blob分散到多个服务器上以扩展访问,那么它们可以轻松地分散。另一方面,单个Blob由单个服务器提供服务。 对于Blob存储,Azure Storage包含一个WebHDFS API层。HDInsight可以访问所有文件,以便进行任何类型的清理或其他需要从该存储中获取数据的处理。这与那些服务(HDFS)使用Hadoop分布式文件系统的方式类似。 ADLS或Azure Data Lake StorageAzure Data Lake Storage也缩写为ADLS。它是一个托管的、超大规模的分析数据存储,用于存储数据。它与HDFS兼容,并遵循类似的架构方法。Data Lake Storage在总容量和文件大小方面提供了无限的灵活性。 Azure Data Factory通常用于向Data Lake Storage提供数据。Data Lake Storage SDK、AdlCopy服务、Apache DistCp和Apache Sqoop也是选项。我们选择的服务取决于数据的所在地。 通过Azure Event Hubs或Apache Storm进行事件摄取适用于Data Lake Storage。 Azure Synapse AnalyticsAzure Synapse Analytics是存储准备好结果的不错选择。 Azure Synapse Analytics是一个专为分析工作负载设计的关系数据库存储。它使用分区表进行扩展。多个节点可以用来拆分表。我们需要在创建Azure Synapse Analytics时根据我们的需求选择节点。它们以后可以扩展,但这是一个活动过程,可能需要数据移动。 Apache HBase在Microsoft Azure中,我们有一个特殊功能,即Apache HBase,它是Azure HDInsight中的一个键值存储。它是一个免费、开源的NoSQL数据库,基于Hadoop,灵感来自Google BigTable。对于海量的非结构化和半结构化数据,HBase支持高性能的随机访问和强大的一致性。 在使用HBase之前,我们不必定义列或数据类型,因为它是一个无模式数据库。数据按列族组织并存储在表的行中。 为了处理PB级数据,开源代码可以跨数千个节点进行线性扩展。 HBase依赖于Hadoop环境中的分布式应用程序来提供数据冗余、批处理和其他功能。 HBase是存储传感器和日志数据以供将来分析的有用场所。 Azure SQL数据库Azure提供三种PaaS关系数据库:
为了扩展这些项目,请增加CPU和内存。也可以使用高级磁盘来提高I/O性能。 Apache SqoopApache Sqoop是一个用于快速高效地在结构化、半结构化和非结构化数据源之间移动数据的工具。 Sqoop使用MapReduce来导入和导出数据,MapReduce允许并行处理和容错。 Apache FlumeApache Flume是一个用于快速收集、聚合和传输大量日志数据的服务,该服务是分布式的、可靠的且可用的。其灵活的架构建立在流数据流的概念之上。Flume具有可配置的可靠性方法,使其坚固且容错。它提供了许多故障转移和恢复功能。 Flume采用简单的可扩展数据模型,支持在线分析应用程序。 Azure HDInsight不支持Apache Flume。为了将数据从本地Hadoop安装传输到Azure Blob存储或Azure Data Lake Storage,可以使用Flume轻松完成此任务。 转换(Transform)数据存储在所需位置后,必须对其进行清理、合并或准备以用于特定的使用模式。 下一个主题什么是Microsoft Azure实例 |
我们请求您订阅我们的新闻通讯以获取最新更新。