Apache Nifi - 在单个流中读取多个表中的数据

我打算将Apache Nifi用于数据提取用例 . 源可以是平面文件和 Teradata 数据库,输出接收器可以是 Oracle 数据库 . 我使用 GetFile 创建了几个使用 GetFile 和Teradata数据库从平面文件读取数据的流,并使用 PutSQL 将数据加载到Oracle数据库 . 一切似乎都很好 . 我们预测未来源系统可能会发生变化,我注意到Nifi中的处理器可用于支持这些源 .

现在我的问题是,是否可以从Teradata数据库中读取多个表,并在单个Nifi流中将数据加载到oracle数据库中的多个表中?我为每个表构建了单独的流程,它似乎工作正常 .

回答(1)

2 years ago

您使用的是哪个版本的Nifi?如果您对每个表使用ExecuteSQL,并且最近版本的NiFi(1.0.0及更高版本)可以使用ListDatabaseTables处理器,那么ReplaceText创建一个SQL语句来获取该表的行(使用NiFi Expression Language),然后将其发送到ExecuteSQL以进行提取,以及您必须将行放入Oracle表的任何下游处理器 .