gpt4 book ai didi

apache-nifi - 从平面文件读取数据后,如何仅从 Nifi Flow File 中提取几列

转载 作者:行者123 更新时间:2023-12-04 08:16:09 33 4
gpt4 key购买 nike

平面文件具有以下数据,没有需要加载到 MySQL 表中的标题。

101,AAA,1000,10
102,BBB,5000,20
我使用 GetFile 或 GetSFTP 处理器来读取数据。读取数据后,流文件包含上述数据。我只想将第一列、第二列和第四列加载到 MySQL 表中。我期望在 MySQL 表中的输出如下。
101,AAA,10
102,BBB,20
您能否帮助我从 nifi 中的传入流文件中仅提取几列并将其加载到 MySQL 中?

最佳答案

这只是一种方法,但还有其他几种方法。此方法使用记录,否则避免修改基础数据 - 它只是忽略您在 insert 期间不想要的字段。 .这在与更大的 Flow 集成时很有用,其中数据由可能需要原始数据的其他处理器使用,或者您已经在使用 Records。
假设你的表有列

id | name | value
你的数据看起来像
101,AAA,1000,10
102,BBB,5000,20
您可以使用 PutDatabaseRecord处理器与 Unmatched Field BehaviorUnmatched Column Behavior设置为 Ignore Unmatched...并添加一个 CSVReaderRecord Reader .
CSVReader你可以设置 Schema Access StrategyUse 'Schema Text' Property .然后设置 Schema Text属性如下:
{
"type": "record",
"namespace": "nifi",
"name": "db",
"fields": [
{ "name": "id", "type": "string" },
{ "name": "name", "type": "string" },
{ "name": "ignoredField", "type": "string" },
{ "name": "value", "type": "string" }
]
}
这会将 NiFi Record 字段与 DB Table 列匹配,这将匹配字段 1,2 和 4 而忽略字段 3(因为它不匹配列名)。
显然,修改 Schema Text中的字段名模式以匹配您的数据库表的列名。您还可以在此处进行数据类型检查/转换。
PutDatabaseRecord
CSVReader

关于apache-nifi - 从平面文件读取数据后,如何仅从 Nifi Flow File 中提取几列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65695005/

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