Apache NIFI "ExecuteSQL Processor“能否将大量select结果以'x‘MB为单位进行流式传输?
发布于 2015-12-07 08:52:30
ExecuteSQL处理器可以“流式传输”大量行,因为它会将数据直接流式传输到FlowFile内容(不会保存在内存/堆中),因此它非常有效地利用了内存。然而,在这个时候,它不会对结果进行分块。不过,有一个票证https://issues.apache.org/jira/browse/NIFI-1251可以提供这样的功能。
发布于 2017-03-14 15:57:42
您现在可以使用QueryDatabaseTable处理器,它支持通过“每个流文件的最大行数”属性进行分块。
发布于 2022-02-20 12:45:34
您还可以在SQL本身中指定一个limit语句(以及一个sort by ID),拉取一个批处理,获取最后一个ID,拉取全部>max(id),重复直到完成,即
Start
|
UpdateAttr: maxid--------- SQL ... $maxid:isEmpty():ifElse('', 'where id>maxid') order by id limit n
|_____________________________|
|
do sth它是通过#个记录,而不是大小--但是知道每条记录的大约大小,你仍然可以这样做
https://stackoverflow.com/questions/34038853
复制相似问题