CSVRecordSetWriter

文档中心 › 组件索引 › CSVRecordSetWriter

CSVRecordSetWriter Controller Service

类型全限定名:cn.org.acal.lynxus.csv.CSVRecordSetWriter

所属 Bundle:cn.org.acal.lynxus:lynxus-record-serialization-services-nar:2.11.8

描述

将记录集的内容写为 CSV 数据。写入的第一行将是列名(除非'包含标题行'属性为 false)。后续所有行将是与记录字段对应的值。

标签

csvresultsetrecordsetrecordwriterserializerrowtsvtabseparateddelimited

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Schema Write Strategyno-schema
  • 不写出 Schema — 不向 FlowFile 添加任何 Schema 相关信息。
  • Set 'schema.name' Attribute — FlowFile 将被赋予一个名为 'schema.name' 的属性,该属性将指示 Schema Registry 中 schema 的名称。请注意,如果记录的 schema 不是从 Schema Registry 获取的,则不会添加任何属性。
  • 设置 'avro.schema' 属性 — FlowFile 将获得一个名为 'avro.schema' 的属性,该属性将包含描述 FlowFile 中记录的 Avro Schema。FlowFile 的内容不需要是 Avro 格式,但将使用 Schema 的文本。
  • Schema 引用写入器 — Schema 引用信息将通过配置的 Schema 引用写入器服务实现写出。
指定记录的模式应如何添加到数据中。
Schema Cache控制器服务 API:
RecordSchemaCacheService
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定要添加记录模式的模式缓存,以便记录读取器可以快速查找模式。
Schema Reference Writer控制器服务 API:
SchemaReferenceWriter
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
负责使用模式参考信息写入 FlowFile 属性或内容头的服务实现
Schema Access Strategyinherit-record-schema
  • 继承记录 Schema — 用于写入记录的 Schema 与创建 Record 时给出的 Schema 相同。
  • 使用 'Schema Name' 属性 — 要使用的 Schema 名称由 'Schema Name' 属性指定。此属性的值用于在配置的 Schema Registry 服务中查找 Schema。
  • 使用 'Schema Text' 属性 — Schema 本身的文本由 'Schema Text' 属性指定。此属性的值必须是有效的 Avro Schema。如果使用表达式语言,则 'Schema Text' 属性的值在替换表达式后必须有效。
指定如何获取用于解释数据的架构。
Schema Registry控制器服务 API:
SchemaRegistry
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定用于架构Registry的Controller Service
Schema Name${schema.name}指定要在架构Registry属性中查找的架构名称
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Version指定在 Schema Registry 中查找 Schema 的版本。如果未指定,则检索 Schema 的最新版本。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Branch指定在 Schema Registry 属性中查找 Schema 时使用的分支名称。如果选择的 Schema Registry 不支持分支,则此值将被忽略。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Text${avro.schema}Avro 格式的架构文本
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Reference Reader控制器服务 API:
SchemaReferenceReader
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
服务实现负责读取 FlowFile 属性或内容以确定架构参考标识符
Date Format指定读取/写入日期字段时使用的格式。如果未指定,日期字段将被视为自纪元(1970 年 1 月 1 日午夜 GMT)以来的毫秒数。如果指定,值必须匹配 Java java.time.format.DateTimeFormatter 格式(例如,MM/dd/yyyy 表示两位数字的月份,后跟两位数字的日期,后跟四位数字的年份,全部以 '/' 字符分隔,如 01/01/2017)。
Time Format指定读取/写入时间字段时使用的格式。如果未指定,时间字段将被视为自纪元(1970 年 1 月 1 日午夜 GMT)以来的毫秒数。如果指定,值必须匹配 Java java.time.format.DateTimeFormatter 格式(例如,HH:mm:ss 表示 24 小时格式的两位数字的小时,后跟两位数字的分钟,后跟两位数字的秒,全部以 ':' 字符分隔,如 18:04:15)。
Timestamp Format指定读取/写入时间戳字段时使用的格式。如果未指定,时间戳字段将被视为自纪元(1970 年 1 月 1 日午夜 GMT)以来的毫秒数。如果指定,值必须匹配 Java java.time.format.DateTimeFormatter 格式(例如,MM/dd/yyyy HH:mm:ss 表示两位数字的月份,后跟两位数字的日期,后跟四位数字的年份,全部以 '/' 字符分隔;然后后跟 24 小时格式的两位数字的小时,后跟两位数字的分钟,后跟两位数字的秒,全部以 ':' 字符分隔,如 01/01/2017 18:04:15)。
CSV 格式custom
  • 自定义格式 — CSV 的格式是通过使用此Controller Service的属性来配置的,例如值分隔符
  • RFC 4180 — CSV 数据遵循 https://tools.ietf.org/html/rfc4180 中定义的 RFC 4180 规范
  • Microsoft Excel — CSV 数据遵循 Microsoft Excel 使用的格式
  • 制表符分隔 — CSV 数据是制表符分隔而不是逗号分隔
  • MySQL 格式 — CSV 数据遵循 MySQL 使用的格式
  • Informix Unload — Informix 在执行 UNLOAD TO file_name 命令时使用的格式
  • Informix Unload 禁用转义 — Informix 在执行 UNLOAD TO file_name 命令时使用的格式,且禁用转义
指定 CSV 数据使用的 "格式",或指定是否应使用自定义格式。
CSV Writercommons-csv
  • Apache Commons CSV — 来自 Apache Commons CSV 库的 CSV 写入器实现。
  • FastCSV — 来自 FastCSV 库的 CSV 写入器实现。注意:此写入器仅正式支持 RFC-4180,因此建议将 'CSV Format' 属性设为 'RFC 4180'。它确实能处理某些不合规的 CSV 数据,对于这种情况,请将 'CSV Format' 属性设为 'CUSTOM',并根据需要设置其他自定义格式属性(如 'Trim Fields'、'Trim double quote' 等)。请注意,如果 FastCSV 未能正确处理属性设置(如 'Quote Mode'),这可能会导致错误,但否则即使数据不完全符合 RFC-4180,也可能按预期处理输出。
指定用于写入 CSV 记录的 Writer 实现。注意:不同的 Writer 可能支持不同的功能子集,也可能表现出不同的性能水平。
Value Separator,用于在 CSV 记录中分隔值/字段的字符。如果通过 Expression Language 指定了此属性,但在运行时求值为无效的值分隔符,则将跳过该值并使用默认的值分隔符。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Include Header Linetrue
  • true
  • false
指定是否应将 CSV 列名称写为第一行。
Quote Character"用于引用值的引号字符,这样就不必使用转义字符。如果通过 Expression Language 指定了此属性,但在运行时求值为无效的引号字符,则将跳过该值并使用默认的引号字符。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Escape Character\用于转义在 CSV 解析器中具有特殊含义的字符的转义字符。如果通过 Expression Language 指定了此属性,但在运行时求值为无效的转义字符,则将跳过该值并使用默认的转义字符。设置为空字符串表示不使用转义字符。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Comment Marker用于表示注释开始的字符。 任何以此注释开头的行都将被忽略。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Null String指定一个字符串,如果该字符串作为值出现在 CSV 中,则应将其视为空字段,而不是使用文字值。
Trim Fieldstrue
  • true
  • false
是否应删除字段开头和结尾的空格
Quote ModeMINIMAL
  • 引用所有值 — 所有值都将使用配置的引号字符进行引用。
  • 最小引用 — 仅在值包含特殊字符(如换行符或字段分隔符)时才引用。
  • 引用非数值 — 除数值类型外,其他值都将被引用。
  • 不引用值 — 值不会被引用。相反,所有特殊字符都将使用配置的转义字符进行转义。
指定写入字段时应如何引用字段
Record Separator\n指定用于分隔 CSV 记录的字符
Include Trailing Delimiterfalse
  • true
  • false
如果为 true,则尾随分隔符将添加到写入的每个 CSV 记录中。 如果为 false,则将省略尾随分隔符。
Character SetUTF-8用于对 CSV 文件进行编码/解码的字符编码

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

提供的 Service API

  • RecordSetWriterFactory (cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8)