如何传递动态tablename从rest api调用执行sql

时间:2018-06-17 17:29:49

标签: apache-nifi

我有一个要求,我想从多个数据库中获取数据。需要获取其数据需要获取的表名的表名由用户选择并通过UI传递。通过rest api我可以传递tableName但是如何分别对每个表进行executeSql调用?

1 个答案:

答案 0 :(得分:0)

恕我直言,这可能有点复杂和艰巨的任务。不过,以下说明了如何设置值。

ExecuteSQL是NiFi中的处理器,可以使用端点PUT的{​​{1}}请求进行配置,其中/processors/{id}是组件的ID。 PUT调用的基本有效负载应该类似于:

id

上述JSON只是{ "revision": { "clientId": "ClientId", "version": 8, "lastModifier": "value" }, "id": "12512325-0164-1000-530c-7474a72c24ca", "component": { "id": "12512325-0164-1000-530c-7474a72c24ca", "config": { "properties" : { "name-of-the-property": "YOUR_VALUE" } }, "state": "RUNNING" } } 支持的所有DTO的一部分。其中,以下是需要注意的关键事项:

  1. 修订版 - 您必须以某种方式跟踪版本。对组件的每次更改都会将版本号增加1.(无论更改如何完成,即UI或API)
  2. id - 组件的ID。在这种情况下,您的ProcessorEntity处理器
  3. 的实例
  4. component.config.properties - 属性'的键值对名称和必须设置的值。注意:NiFi组件'属性有两个名称:ExecuteSQLname。您必须在请求中提供名称。
  5. 您可能需要执行displayName请求以获取处理器的信息,该信息将为您提供有关该组件的详细信息,包括GET详细信息和revision详细信息。您可以解析它们并使用它。

    有关NiFi REST API的更多详细信息和便捷指南: