java - ETL架构

标签 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. 清理

最佳答案

我不知道你的情况是什么,你的要求是什么,但你可能想多了。

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

  • 摘录
  • 转变
  • 加载

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

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

拿一 block 白板,用线条串起一些气泡,然后将其转化为代码。

关于java - ETL架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5283469/

相关文章:

sql-server - 将程序集添加到缓存 : This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded 失败

java - 使用 MongoDB Java 将新对象推送到现有文档的数组中

c# - 我可以重构模型 View 查询处理程序吗?

java - 自定义阻塞队列锁定问题

actionscript-3 - 游戏开发中的基于组件的架构

architecture - Apache Kafka 适合用作无序任务队列吗?

sql-server - Select 语句从 Netezza 数据库获取数据并将其插入 SQL Server 数据库 (SSIS)

mysql - 如何对 BigQuery 外部表进行建模以更改列结构?

java - 为什么在使用 boolean 语句时内容不在 system.out.println 语句中打印

java - EclipseLink 无法为 ManyToMany 创建完整的 JoinTable