有人要求我制作一个 ETL 样式的应用程序,将信息从一个数据源传输到另一个数据源。目前,我决定使用三层架构,但我想了解更多关于最佳实践以及此维基百科页面上描述的生命周期的信息:
http://en.wikipedia.org/wiki/Extract,_transform,_load
ETL 架构设计的四层方法
- 功能层:核心功能 ETL 处理(提取、转换和加载)。
- 运营管理层:作业流定义和管理、参数、调度、监控、通信和警报。
- 审计、平衡和控制 (ABC) 层:作业执行统计、平衡和控制、拒绝和错误处理、代码管理。
- 实用层:支持所有其他层的通用组件。
现实生活中的 ETL 周期
典型的现实生活中的 ETL 周期包括以下执行步骤:
- 周期启动
- 构建引用数据
- 摘录(来自来源)
- 验证
- 转换(清理、应用业务规则、检查数据完整性、创建聚合或分解)
- 阶段(加载到临时表,如果使用)
- 审计报告(例如,关于业务规则的合规性。此外,在出现故障时,有助于诊断/修复)
- 发布(到目标表)
- 归档
- 清理
最佳答案
我不知道你的情况是什么,你的要求是什么,但你可能想多了。
名称本身就是“the”架构:
- 摘录
- 转变
- 加载
将数据库表导出到 CSV 可以认为是“ET”,而加载 CSV 是“L”。大多数 ETL 问题并不复杂。
除此之外,您应该获取 Java 中已有的 1 或 200 万个 ETL 和 ESB 包中的任何一个,免费的和商业的,库和完整的船处理系统,并简单地采用您最喜欢的其中一个。
拿一 block 白板,用线条串起一些气泡,然后将其转化为代码。
关于java - ETL架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5283469/