Apache NiFi是否适合该用例?

问题描述 投票:0回答:1

[请帮助我选择合适的工具。我有以下任务:有N个数据源(N <20),它可以是关系数据库(MySQL,PostgreSQL)或REST API。我需要将N个数据源中的所有数据加载到单个关系数据库中(仅一次)。因此,最终目标似乎是一个简单的ETL:

  • 从数据源中提取数据
  • 转换数据(映射数据以适合目标数据库模式)
  • 加载到数据库

((注意:每个源DB包含10-15个耦合的表,具有100000-1000000行)

[我目前正在尝试寻找合适的仪器,我相信Apache NiFi正是我所需要的:喜欢只通过友好的UI配置所有内容而不是编码和重新发明轮子的想法。

几个问题:

  • Apache NiFi看起来适合我的任务吗,还是太夸张了?
  • [使用该仪器的零知识配置Apache NiFi相对于使用某种我熟悉的编程语言编写自定义脚本(例如,Python)会有任何好处

谢谢!

etl apache-nifi data-migration
1个回答
1
投票

Apache NiFi可能是这种情况的正确答案,但可以详细说明。

您拥有许多不同数据源的情况是NiFi的一种常见部署模式,用户将在其中执行某种分层的方法:

  1. 从其各自来源获取数据,
  2. 注释/提取数据的关键属性/属性
  3. 将数据转换为规范表示,
  4. 路由到适当的下游消费者,
  5. 通过处理器传递以保留在目标存储/系统/服务中

脚本是有多少人最初倾向于解决这个问题,但会导致这种不合时宜的过程的不合规则的收集,这些过程很难作为一个整体来考虑,也不能解释彼此之间的相互作用。对于长期运行的数据流,这些数据流将不断发展并可能带来更多的源/汇,NiFi是一项出色的产品,可将这种数据路径整合到一个统一的视图中。与更改一个或多个脚本/应用程序相比,该UI进一步使用户能够更改那些“规范”不可避免地发生更改和做出响应的时间。

考虑到“简单的” ETL,而且您正在使用数据库以外的其他来源,这似乎很适合NiFi的预期用途。 NiFi不太适合某些更复杂的ETL操作,也没有为这些类型的操作构建UI自定义。

© www.soinside.com 2019 - 2024. All rights reserved.