1. 构建带有批处理的ETL管道

在传统的ETL管道中,从源数据库到数据仓库分批处理数据。从头构建企业ETL工作流具有挑战性,因此您通常依赖于诸如Stitch或Blendo等ETL工具,它们可以简化并自动化大部分流程。

要构建一个批量处理的ETL管道,你需要:

创建引用数据:创建一个数据集,定义数据可能包含的允许值集。例如,在国家数据字段中,指定允许的国家代码列表。

从不同来源提取数据:后续ETL步骤成功的基础是正确地提取数据。从各种源(如api、非/关系数据库、XML、JSON、CSV文件)获取数据,并将其转换为一种格式,以便进行标准化处理。

验证数据:保留值在预期范围内的数据,并拒绝不符合预期范围的数据。例如,如果您只想要去年的日期,请拒绝任何大于12个月的值。持续分析不合格记录,识别问题,纠正源数据,并修改提取流程以解决未来批次的问题。

转换数据:删除重复数据(清理)、应用业务规则、检查数据完整性(确保数据没有被损坏或丢失),并根据需要创建聚合。例如,如果您想分析收入,您可以将发票金额汇总为每日或每月的总额。您需要编写大量的函数来自动转换数据。

阶段数据:通常不需要将转换后的数据直接加载到目标数据仓库中。相反,数据首先进入一个登台数据库,这样在出现问题时更容易回滚。此时,您还可以为法规遵从性生成审计报告,或者诊断和修复数据问题。

发布到数据仓库:将数据加载到目标表。一些数据仓库在ETL管道加载新批处理时覆盖现有信息——这可能每天、每周或每月发生。在其他情况下,ETL工作流可以在不覆盖的情况下添加数据,包括一个时间戳来表示它是新的。必须谨慎地执行此操作,以防止数据仓库由于磁盘空间和性能限制而“爆炸”。




数据仓库 表结构图 数据仓库示例_etl构建数据仓库五步法


2. 构建带有流处理的ETL管道

现代数据处理通常包括实时数据,比如来自大型电子商务网站的web分析数据。在这些情况下,您不能大量提取和转换数据,而是需要对数据流执行ETL。因此,当客户机应用程序将数据写入数据源时,需要在数据传输到目标数据存储时对其进行清理和转换。

现在有许多流处理工具可用——包括Apache Samza、Apache Storm和Apache Kafka。

3.使用自动化的云数据仓库构建不使用ETL的管道

新的云数据仓库技术使得无需构建ETL系统就可以实现原来的ETL目标。

例如,Panoply的自动云数据仓库就内置了端到端的数据管理。它使用自优化架构,自动提取和转换数据以满足分析需求。Panoply拥有超过80个本地数据源集成,包括CRMs、分析系统、数据库、社交和广告平台,并与所有主要的BI工具和分析笔记本相连。

要在Panoply中构建一个没有ETL的数据管道,您需要:

选择数据源和导入数据:从列表中选择数据源,输入凭据并定义目标表。点击“收集”,Panoply会自动为您提取数据。Panoply自动负责模式、数据准备、数据清理等工作。

运行转换查询:选择一个表,并对原始数据运行SQL查询。您可以将查询保存为转换,或者将结果表导出为CSV。在获得所需的数据格式之前,可以运行多个转换。您不应该担心“破坏”数据——Panoply允许您执行任何转换,但保持原始数据不变。

使用BI工具执行数据分析:您现在可以将任何BI工具(如Tableau或Looker)连接到Panoply并探索转换后的数据。