从文件中提取属性名称及其值,然后推入MySQL表

时间:2019-01-02 21:32:45

标签: apache apache-nifi data-extraction

我想提取属性名称及其值,然后将其进一步推送到数据库表中。

数据如下:

   enter code here
{"Name":"Sam","Lastname":"Charles","Address":"1103 pioneer St"}
{"housename":"Jake","Lastname":"Stevenson","Address":"Abel St"}
{"foodname":"pudding","Lastname":"luther","Address":"Half Moon Bay"}

如何在NiFi中实现此目的,以便我可以提取这些值并推入MySQL?我的MySQL表如下:(我期望的输出如下):

**Names           Lastname                  Address**

Sam             Charles                    1103 pioneer St

Jake           Stevenson                   Abel St

Pudding         luther                    Half MoonBay

任何建议都值得赞赏。谢谢。要使用什么处理器以及要使用什么正则表达式来实现此目的?

1 个答案:

答案 0 :(得分:2)

您可以为此使用PutDatabaseRecord,如果字段名称与列名称匹配(它们出现的话),则PutDatabaseRecord将生成正确的SQL以执行INSERT语句。如果您的输入数据是每行一个JSON,则至少需要NiFi 1.7.0(对于NIFI-4456)。您可以使用以下架构配置JsonTreeReader(以匹配您的输入数据和目标列):

{
 "namespace": "nifi",
 "name": "myRecord",
 "type": "record",
 "fields": [
  {"name": "Name", "type": "string"},
  {"name": "Lastname", "type": "string"},
  {"name": "Address", "type": "string"}
 ]
}

如果数据中可以包含空值,则将"type": "string"替换为"type": ["null", "string"]