如何使用Nifi JoltJSONTransform规范?

时间:2018-07-26 06:24:23

标签: apache-nifi druid

我希望使用#include <stdint.h> uint32_t goHigh(uint32_t x) { return (x & 0xFFFF0000); } uint32_t goLow(uint32_t x) { return (x & 0xFFFF); } uint32_t magic(uint32_t pass) { uint32_t key = pass; uint32_t num = 0x0563; key = (goLow(key) << 16) | (uint16_t)(((num >> 3) | (num << 13)) ^ (goHigh(key) >> 16)); return key; } 规范,该规范可用于将输入转换为输出。

我试图使用map到List以及其他语法,但是到目前为止还没有成功。

预期输入:

JoltTransformJSON

预期输出:

{
    "params": "sn=GH6747246T4JLR6AZ&c=QUERY_RECORD&p=test_station_name&p=station_id&p=result&p=mac_addresss"
}

除了“列”内的内容以及维度和值属性外,其余字段均采用硬编码。

1 个答案:

答案 0 :(得分:1)

由于所有数据都包含在单个JSON键/值中,因此我认为JoltTransformJSON不是最好的选择。我实际上认为用Python / Groovy / Ruby编写一个简单的脚本来拆分querystring值并将其写出,因为JSON维护起来更容易且更简单。我会特别推荐Groovy(可以使用专用的ExecuteGroovyScript处理器),因为它是Apache NiFi中的most performantrobust,并且具有excellent JSON handling