【问题标题】:How to transfer flowfiles in NiFi using NiFi API?如何使用 NiFi API 在 NiFi 中传输流文件?
【发布时间】:2017-04-05 10:26:01
【问题描述】:

我想使用 NiFi rest api 将流文件传输到输入端口。我正在浏览 NiFi rest api 文档,发现似乎有支持来实现相同的目标。但是,说实话不是很清楚或很详细。

我的工作流程是这样的:

父级视图

内部源处理器组:

内部目标处理器组:

我想知道的是如何将排队的流文件从源处理器组传输到目标处理器组的输入端口,以便可以使用PutFile 进行存储。

我想尝试达到这个端点: http://localhost:8080/nifi-api/data-transfer/input-ports/{portId}/transactions/{transactionId}/flow-files

虽然我可以从输入端口获取 portId,但我不知道 transactionID 是什么以及从哪里可以得到它。

注意:我知道我可以使用 NiFi 的 Web UI 来做到这一点,但我想知道如何使用 NiFi 的 REST API 来完成。

【问题讨论】:

  • 如果它们在同一个 NiFi 中,您可以直接将一个进程组上的输出端口连接到另一个进程组上的输入端口(连接父视图中的 PG 框)。您需要使用 API 吗?
  • 我知道我们可以使用 NiFi Web UI 来做到这一点。我想使用 NiFi API 完成同样的任务。

标签: rest apache-nifi


【解决方案1】:

您需要使用这些端点来创建事务。这是 NiFi 使用 Site-To-Site 客户端库与这些端点 [1] 通信的源中一个点的链接。发送流文件不是一个简单的调用,因为您需要创建事务、发送内容、确认事务,然后完成它。

[1]https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteProvenanceReportingTask.java#L206

【讨论】:

  • 这很有道理,但你能说得更具体一点吗?我将坚持使用 REST API 端点,所以请先告诉我如何创建事务。我的意思是我应该使用数据传输 API 中的哪个端点?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多