ETL 架构

Posted

技术标签:

【中文标题】ETL 架构【英文标题】:ETL architecture 【发布时间】:2011-07-14 02:21:40 【问题描述】:

有人要求我制作一个 ETL 风格的应用程序,将信息从一个数据源传输到另一个数据源。目前,我决定使用三层架构,但我想了解更多关于最佳实践以及此***页面上描述的生命周期的信息:

http://en.wikipedia.org/wiki/Extract,_transform,_load

设计的四层方法

功能层:核心功能 ETL 处理(提取、转换和加载)。 运营管理层:作业流定义和管理、参数、调度、监控、通信和警报。 审计、平衡和控制 (ABC) 层:作业执行统计、平衡和控制、拒绝和错误处理、代码管理。 实用层:支持所有其他层的通用组件。

现实生活中的 ETL 周期

典型的现实生活中的 ETL 周期包括以下执行步骤:

    循环启动 构建参考数据 提取(来自来源) 验证 转换(清理、应用业务规则、检查数据完整性、创建聚合或分解) Stage(加载到 staging 表中,如果使用的话) 审核报告(例如,关于遵守业务规则的情况。此外,如果出现故障,有助于诊断/修复) 发布(到目标表) 存档 清理

【问题讨论】:

【参考方案1】:

我不知道您的情况或您的要求是什么,但您可能会过度思考问题。

名字本身就是“the”架构:

提取 变换 加载

将数据库表导出到 CSV 可以被视为“ET”,而加载 CSV 是“L”。大多数 ETL 问题并不复杂。

除此之外,您应该使用 Java、免费和商业、库和完整的船处理系统中已有的 1 或 200 万个 ETL 和 ESB 包中的任何一个,并简单地采用您最喜欢的一个。

拿一块白板,用线条把一些气泡串起来,然后把它变成代码。

【讨论】:

【参考方案2】:

要回答“最佳做法是什么?”这个问题。答案取决于您要完成的工作。

为简化起见,假设您正在执行以下操作之一:

    您正在构建一个数据仓库,它将以某种方式重组数据 您正在将数据从 A 点移动到 B 点,但您并未重组数据

当我使用“重组”这个词时,我的意思是改变表格的粒度或最低级别的细节。

对于 1. 通常遵循您问题中概述的十个步骤。一般最佳做法:

尽可能多的转换逻辑被推送到数据库资源,而不是 ETL 软件(ETL 软件通常较慢) 验证、转换和审核步骤用于采用贵组织使用的任何主数据管理 (MDM) 标准

对于 2。这更简单,因此可以使用您问题中概述的任何一种方法。

【讨论】:

以上是关于ETL 架构的主要内容,如果未能解决你的问题,请参考以下文章

同步异步ETL架构的比较

架构帮助 - ETL 数据流和处理的替代方案

从ETL走向EtLT架构,下一代数据集成平台Apache SeaTunnel核心设计思路解析

17-ETL工具大数据架构Flume介绍Flume组件介绍

数据仓库模型ETL架构(DWI/DWR/DM)

同步还是异步?ETL架构的选择,为何关系到数据处理速度和系统性能