NIFI:限制NIFI-Cluster中一个NIFI处理器的并发任务数

NIFI: limit number of concurrent tasks of a NIFI processor in a NIFI-Cluster

问题说明了一切。我怎样才能做以下事情之一:

我有一个 NIFI 集群和一个自写的专用处理器,它通过 JDBC(每秒最多 20Mio 行)将大量数据加载到数据库中。它使用一些特定于数据库供应商的调优技巧,在我的特定情况下非常快。这些技巧之一需要一个独占的空 table 来为每个连接加载。

目前,我的处理器在 NIFI 集群中为每个节点打开一个连接(它需要一个来自 DBCPConnectionPool 的连接)。集群中有大约 90-100 个节点,我将获得 90-100 个连接 - 所有这些连接都同时批量加载数据。

我正在使用 NIFI 1.3.0.0

非常感谢任何帮助或评论。很抱歉没有显示任何代码。大约 700 行并没有真正帮助解决这个问题。但我打算把它放在 Git 上,并作为开源项目 Kylo 的一部分。

在 NiFi 中分解任务的一种常见方法是在主节点上将流文件拆分为多个文件。然后其他节点将拉取其中一个流文件并对其进行处理。

在您的情况下,每个文件都将包含从 table 中提取的一系列值。假设您有一百行并且只需要 3 个节点来提取数据。因此,您将创建 3 个流文件,每个文件都具有单独的属性值:

  1. 起始行 ID=1,结束行 ID=33
  2. 开始行号=34,结束行号=66
  3. 起始行 ID=67,结束行 ID=100

然后节点将从远程进程组或队列(例如 JMS 或 SQS)中获取流文件。只有 3 个流文件,因此从连接加载数据的节点不超过 3 个。