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

时间:2017-03-02 00:23:21

标签: apache-nifi

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

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

1 个答案:

答案 0 :(得分:3)

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