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 架构的主要内容,如果未能解决你的问题,请参考以下文章