0

我已经开始使用 Apache Nifi,并且仍在学习和试验它。我真的很想使用 Nifi 从 API 获取 JSON 文档并将它们放入我的 Elasticsearch 数据库中。到目前为止,使用内置的 getTwitter 和 putElasticsearch 控制器是可行的。

但是现在我想用 Twitter 以外的其他 API 来做这件事,我有点卡在这里。首先我真的不知道该使用哪个控制器?我会认为 getHttp 或 invokeHttp 即使使用 'GET' 作为 http 动词,但它似乎不起作用。如果我使用 getHttp 我必须提供带有密钥库和信任库的 SSL 服务 .. 为什么我必须这样做?

Apache Nifi 仍然很新,所以很难找到关于这类事情的像样的指南/信息。我已经阅读并搜索了文档,但还没有变得更明智。

从 API 获取的 JSON 示例如下:

https://api.ssllabs.com/api/v2/getEndpointData?host=www.bnpparibasfortis.be&s=193.58.4.82

提前感谢任何可以提供一些帮助/见解的人。

4

1 回答 1

3

您用于获取 JSON 数据的处理器完全取决于您要访问的 API。GetHttp 或 InvokeHttp 处理器应该能够从 URL 中获取数据。如果您注意到,SSL 服务是 GetHttp 和 InvokeHttp 的可选属性,因此您只需要在您想通过 HTTPS 进行通信时使用它。此外,您可以从 UI 中右键单击处理器,然后单击“使用”以显示该处理器的文档。

在此链接[1],您可以找到一个 NiFi 模板,该模板使用 GetHttp 从 randomuser.me 获取 JSON 数据并对其进行各种处理。它主要是一个展示不同 Avro 处理器的模板,但获取 JSON 的方法应该是相关的。

[1] https://github.com/hortonworks-gallery/nifi-templates/blob/master/templates/Convert_To_Avro_From_CSV_and_JSON.xml

于 2016-03-03T17:55:06.797 回答