从文件中提取属性名称及其值并推入 MySQL table

Extract the attribute name and its value from file and push into MySQL table

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

数据如下:

   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 table 如下所示:(我期望的输出如下):

**Names           Lastname                  Address**

Sam             Charles                    1103 pioneer St

Jake           Stevenson                   Abel St

Pudding         luther                    Half MoonBay

如有任何建议,我们将不胜感激。谢谢你。要使用什么处理器以及要使用什么正则表达式来实现此目的?

您可以为此使用 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"]