Apache NIFI“ExecuteSQL 处理器”能否以块的形式流式传输大量选择结果,例如“x”MB?
问问题
751 次
3 回答
6
ExecuteSQL 处理器可以“流式传输”大量行,因为它将数据直接流式传输到 FlowFile 内容(不会保存在内存/堆中),因此它非常节省内存。不过,此时它不会对结果进行分块。不过,有一张票https://issues.apache.org/jira/browse/NIFI-1251可以提供此类功能。
于 2015-12-07T00:52:29.840 回答
0
您还可以在 SQL 本身中指定一个限制语句(以及按 ID 排序),拉一批,获取最后一个 ID,拉所有 >max(id),重复直到完成,即
Start
|
UpdateAttr: maxid--------- SQL ... $maxid:isEmpty():ifElse('', 'where id>maxid') order by id limit n
|_____________________________|
|
do sth
它是由 # 个记录而不是大小 - 但知道每条记录的大约大小,你仍然可以这样做
于 2022-02-20T12:45:33.843 回答
0
您现在可以使用通过“每个流文件的最大行数”属性支持分块的 QueryDatabaseTable 处理器。
于 2017-03-14T07:57:42.383 回答