Apache NiFi QueryRecord SELECT静态别名列

时间:2019-03-24 22:17:54

标签: sql apache-nifi apache-calcite

我想导入使用Apache NiFi分配了以下Avro模式的文件:

{
   "type" : "record",
   "namespace" : "SomeSpaceName",
   "name" : "SampleFile",
   "fields" : [
     { "name" : "PersonName" , "type" : "string" },
     { "name" : "PersonType" , "type" : "string" }
   ]
}

当我使用 QueryRecord 处理器时,我希望在输出文件中有一个静态字段,以便可以将其导入到MongoDB中。查询是:

SELECT LOWER(PersonName) as _id,
'Male' as gender
FROM flowfile

问题是方解石不会正确添加新的静态字段。它成功添加了名称,但新的性别字段仅包含单词的第一个字母:

| _id  | gender |
|------|--------|
| Eric | M      |
| Bill | M      |
| Chad | M      |

1 个答案:

答案 0 :(得分:2)

确保QueryRecord处理器编写器 avro模式中包含_id,gender个字段。

Writer Avro Schema:

{
   "type" : "record",
   "namespace" : "SomeSpaceName",
   "name" : "SampleFile",
   "fields" : [
     { "name" : "_id" , "type" : ["null","string"] },
     { "name" : "gender" , "type" : ["null","string"] }
   ]
}