我正在尝试使用QueryDatabaseTable或ExecuteSQL在nifi中摄取一个非常大的表。它似乎不起作用..相同的查询适用于较小的表。
思想?
由于
答案 0 :(得分:3)
你得到什么样的错误?您可能遇到以下情况:
https://issues.apache.org/jira/browse/NIFI-1251
如果您使用的是NiFi 1.0,则可以使用GenerateTableFetch处理器。它允许您选择"页面" (又称分区)大小,并将生成SQL语句,每个语句都会抓取一个"页面"数据的。您可以将它们路由到ExecuteSQL,它将一次检索较小的结果集。如果你有一个NiFi集群,你可以将GenerateTableFetch路由到指向同一集群上Remote Process Group的Input Port(它将在集群中分配SQL语句),然后输入端口可以是连接到ExecuteSQL。这允许您并行地从表中获取行。
答案 1 :(得分:-1)
使用GenerateTableFetch获取数字溢出
GenerateTableFetch GenerateTableFetch [id = 245bd83a-0157-1000-73ab-275171c79348]由于java.sql.SQLException,无法执行SQL select查询SELECT COUNT(*)FROM CATALOG_SALES:数字溢出:java.sql.SQLException:数字溢出