趋近智
ETL流程的目的是移动数据。但是,这些数据从何而来,又将去往何处?了解典型的数据起点(源)和终点(目标)是掌握ETL工作方式的主要方面。可以把它想象成规划一次旅行:在规划路线之前,你需要知道你的出发地和目的地。
数据源是原始数据产生或存储的系统、文件或应用程序。如今,数据可以来自多种多样的位置。以下是一些你将经常遇到的类型:
关系型数据库: 这些通常是业务应用的核心。它们以结构化形式存储数据,使用表格(按行和列组织)。可以把它们想象成更强大、更可靠的电子表格。例如:
文件: 数据经常以文件形式存储,特别是用于系统间信息交换或日志记录。常见的文件类型包括:
API(应用程序编程接口): 许多Web服务和应用程序提供API,允许其他程序请求数据。当ETL流程需要从第三方服务(如天气服务、社交媒体平台或支付网关)获取数据时,它通常与其API进行交互。来自API的数据经常以JSON格式交付。
流式数据源: 数据的生成日益连续。考虑物联网设备的传感器读数、网站点击流或金融市场数据。这些“流”与静态数据库或文件相比,需要不同的提取方法,通常涉及Apache Kafka或特定于云的流服务等技术。虽然本入门课程侧重于批处理ETL,但了解这些源的存在是有益的。
数据目标是转换后的数据被加载到的系统或位置。目标的选择很大程度上取决于你打算如何使用这些数据。
数据仓库: 这可能是专注于分析的ETL流程最传统和常见的目标。数据仓库是专门为报告和数据分析设计的中心存储库。来自各种源的数据在加载前经过清洗、转换和一致性结构化处理。这使得业务分析师和数据科学家更容易查询并获取信息。例如:
数据湖: 数据湖是一个存储大量原始数据的存储库,数据以其原始格式存储。与数据仓库不同,数据仓库要求数据在加载前就已结构化(写入时模式),而数据湖通常允许数据先加载,然后在需要分析时再进行结构化(读取时模式)。它们提供了灵活性,但如果管理不当,可能会变得难以管理(有时戏称为“数据沼泽”)。像Amazon S3、Azure Data Lake Storage或Google Cloud Storage这样的云存储服务通常构成数据湖的构建基础。
操作型数据库: 有时,ETL流程的目标不是数据分析,而是更新或丰富操作系统(如CRM或库存数据库)中的数据。例如,一个ETL流程可能会从多个源提取客户数据,进行清洗,然后将整合后的视图加载回主客户数据库。
文件: 正如文件可以是源一样,它们也可以是目标。一个ETL流程可能只是对一组文件中的数据进行清洗和转换,然后将结果输出为新的CSV或JSON文件,可能供另一个系统使用或用于简单的报告。
以下图表展示了数据从常见源通过ETL流程流向典型目标的示意图:
数据从数据库、文件和API等各种源流出,经过ETL流程处理,并加载到数据仓库、数据湖或其他系统等目标中。
了解这些常见的数据源和目标为ETL的“提取”和“加载”阶段提供了背景,我们将在后续章节中更详细地研究这些阶段。源和目标的具体组合在很大程度上影响着任何ETL管道的设计和需求。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造