我正在使用ExecuteSQLRecord处理器转储具有100+百万条记录的大型表(100 GB)的内容。
我已经设置了如下属性。但是,我要注意的是,要花45分钟才能看到任何流文件从此处理器中流出?
我想念什么?
我正在使用NiFi 1.9.1
谢谢。
答案 0 :(得分:0)
ExecuteSQL(Record)甚至GenerateTableFetch-> ExecuteSQL(Record)的替代方法是使用不带最大值列的QueryDatabaseTable。它具有Fetch Size属性,该属性尝试设置每次从数据库中提取请求时返回的行数。以Oracle的default is 10为例,因此每个流文件有10000行,ExecuteSQL必须进行1000次到数据库的访问,一次要获取10行。我一般建议将“提取大小”设置为“每个流文件最大行数”,然后对每个传出的流文件进行一次提取。
Fetch Size属性也应该对ExecuteSQL处理器可用,我写了Apache Jira NIFI-6865来介绍这一改进。