我想提取属性名称及其值,然后将其进一步推送到数据库表中。
数据如下:
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
任何建议都值得赞赏。谢谢。要使用什么处理器以及要使用什么正则表达式来实现此目的?
答案 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"]