gpt4 book ai didi

mysql - 如何使用 NiFi 解析/提取属性名称及其值

转载 作者:行者123 更新时间:2023-11-29 02:40:22 24 4
gpt4 key购买 nike

所以我有一个格式如下的文件:

{"Field_1":0.01,"abc_id":5,"pqr_id":"0","xyz_id":946715026,"count":130,"Epoch":"130723413","measurement":"Grad/秒"}{"Field_2":0.01,"abc_id":2,"pqr_id":"5","xyz_id":841712547,"count":190,"Epoch":"130723414","measurement":"m/s2"

-

-

-

-

-

.....等等,我有多个属性名称为:值的行。

使用什么处理器将属性分隔为字段/列并解析其各自的值。

我想以一种可以分别提取字段名称和值的方式解析文件,因为我的最终目标是将文件数据提供给 MySQL(MySQL 中的表模式定义如下:)

Field_1, Field_2, abc_id,pqr_id,xyz_id,count,Epoch,measurement

如何在 NiFi 中实现整个用例?我想我可以使用某种正则表达式来实现这一点,但我不确定哪种正则表达式可以帮助我获得所需的输出。非常感谢任何建议。谢谢!

最佳答案

这可以使用 ConvertJSONToSQL 和 PutSQL 流文件处理器来完成。解析 JSON 文件不需要额外的步骤。

ConvertJSONToSQL 处理器将 JSON 格式的 FlowFile 转换为 UPDATE、INSERT 或 DELETE SQL 语句,并且不会直接将数据插入数据库。传入的 FlowFile 应为平面 JSON 消息,这意味着它由单个 JSON 元素组成,每个字段映射到一个简单类型。成功转换后,原始 FlowFile 被路由到“原始”关系,SQL 被路由到“sql”关系。

PutSQL 执行 SQL UPDATE 或 INSERT 命令。传入的 FlowFile 的内容应该是要执行的 SQL 命令。该处理器实际上将数据插入到数据库中;

您的流文件:

{"Field_1":0.01,"abc_id":5,"pqr_id":"0","xyz_id":946715026,"count":130,"Epoch":"130723413","measurement":"Grad/s"} 

目标表应该在目标数据库中可用;测试设置使用数据库“tempdb”和表“test_db”。

表DDL语句:

create table test_db (Field_1 double, abc_id int, pqr_id varchar(5), xyz_id int(11), count int, Epoch varchar(15), measurement varchar(30));

您还需要创建提供数据库连接池服务的 DBCPConnectionPool Controller 服务。

附上示例截图:

流量:

Nifi flow

DBCP连接池:

请注意,连接 url 具有目标数据库名称。

Controller service setting

ConvertJSONToSQL 处理器: enter image description here

GetFile 处理器可以是提供 JSON 格式输出流文件的任何其他处理器/流。

关于mysql - 如何使用 NiFi 解析/提取属性名称及其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53938297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com