【问题标题】:NiFi - ConvertCSVtoAVRO - how to capture the failed records?NiFi - ConvertCSVtoAVRO - 如何捕获失败的记录?
【发布时间】:2017-01-24 23:17:31
【问题描述】:

在将 CSV 转换为 AVRO 时,我想将所有拒绝输出到一个文件(比如说 error.csv)。

拒绝通常是由错误的数据类型引起的 - 例如当“字符串”值出现在“长”字段中时。

我正在尝试使用不兼容的输出来执行此操作,但是它不是保存无法转换的行(在下面的示例中为 2),而是保存整个 CSV 文件。是否可以仅以某种方式过滤掉这些无法转换的记录? (NiFi 是否在这些记录中添加了一些标记等?) 两个处理器:RouteOnAttribute 和 RouteOnContent 路由整个文件。流程的“不兼容”分支是否以某种方式将单个记录标记为在将文件拆分为行后可用的“错误”属性?我在任何文档中都找不到这个。

【问题讨论】:

    标签: csv avro apache-nifi


    【解决方案1】:

    如果可以的话,我建议在 ConvertCSVToAvro 上游使用 SplitText 处理器,这样您一次只能转换一条记录。对于发送到不兼容输出的任何流文件,您还将清楚地了解 errors 属性所指的内容。

    将整个失败的文件发送给不兼容的关系似乎是一个有目的的选择。我认为如果 CSV 文件格式不正确,特别是对于整齐地包含在一行(或正确转义)的记录,这可能是必要的。如果您的数据违反了这一假设,SplitText 可能会通过创建一组零散的失败行来使事情变得更糟。

    【讨论】:

      猜你喜欢
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      相关资源
      最近更新 更多