我正在尝试使用ExecuteSQL处理器从oracle数据库中获取数据 . 我有一些查询,比如我的oracle数据库中有15条记录 . 当我运行ExecuteSQL处理器时,它将作为流处理连续运行并将整个记录存储为HDFS中的单个文件并重复执行相同操作 . 因此,hdfs位置中将有许多文件将从oracle db获取已经获取的记录,这些文件包含相同的数据 . 如何使这个处理器在这样的数据库中运行它必须从oracle db获取所有数据并将其作为单个文件存储,并且当新的记录插入到db中时,它必须将这些数据摄取到hdfs位置?
1 回答
看一下QueryDatabaseTable处理器:
https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.processors.standard.QueryDatabaseTable/index.html
您需要告诉此处理器一个或多个列用于跟踪新记录,这是最大值列属性 . 如果你的表有一个id-id列,你可以使用它,每次运行它都会跟踪看到的最后一个id,并在下次执行时从那里开始 .