ETL架构

时间:2011-03-12 15:36:48

标签: java architecture etl

我被要求创建一个ETL样式的应用程序,将信息从一个数据源传输到另一个数据源。目前,我已决定使用三层架构,但我想了解更多关于此维基百科页面上描述的最佳实践和生命周期的信息:

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

ETL架构设计的四层方法

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

现实生活中的ETL周期

典型的实际ETL循环包括以下执行步骤:

  1. 周期启动
  2. 构建参考数据
  3. 提取(来自来源)
  4. 验证
  5. 转换(清理,应用业务规则,检查数据完整性,创建聚合或分解)
  6. 阶段(加载到临时表中,如果使用)
  7. 审核报告(例如,遵守业务规则。如果失败,有助于诊断/修复)
  8. 发布(到目标表)
  9. 存档
  10. 清理

2 个答案:

答案 0 :(得分:6)

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

仅这个名称就是“架构”:

  • 提取
  • 变换
  • 加载

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

除此之外,您应该获取Java,免费和商业,图书馆和全船处理系统中已有的1或2百万个ETL和ESB软件包中的任何一个,并且只需采用您最喜欢的一个。

获得一块白板,将一些气泡与线条串在一起,然后将其转入代码。

答案 1 :(得分:1)

要回答这个问题,"最佳做法是什么?"答案取决于你想要完成的事情。

为了简化,我们假设您正在执行以下操作之一:

  1. 您正在构建一个以某种方式重组数据的数据仓库
  2. 您正在将数据从A点移动到B点,但您没有重组数据
  3. 当我使用"重组"时,我的意思是改变表格的颗粒或最低细节水平。

    For 1.通常会遵循您的问题中列出的十个步骤。一般最佳实践:

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

    For 2.这样更简单,因此可以使用您问题中列出的任何一种方法。