CSVReader

説明

CSV 形式データを解析し、 CSV ファイルの各行を個別の記録として返します。このリーダーは、「ヘッダー行」が存在する場合、 CSV の最初の行に基づいてスキーマを推測したり、値を解釈するための明示的なスキーマを提供したりすることができます。詳細なドキュメントについては、Controller Serviceの使用を参照してください。

タグ

comma, csv, delimited, parse, reader, record, row, separated, values

プロパティ

以下のリストでは、必要なプロパティをアスタリスク (*) で表示しています。その他のプロパティはオプションと見なされます。この表は、任意のデフォルト値と、そのプロパティが NiFi 式言語に対応しているかどうかも示します。

表示名

API 名前

デフォルト値

許容値

説明

CSV 形式 *

CSV 形式

custom

  • カスタム形式

  • RFC 4180

  • Microsoft エクセル

  • タブ区切り

  • MySQL 形式

  • Informix アンロード

  • Informix アンロード エスケープ 無効

CSV データの「形式」を指定するか、カスタム形式を使用するかどうかを指定します。

コメントマーカー

コメントマーカー

コメントの開始を示す文字。このコメントで始まる行は無視されます。

日付形式

日付形式

Dateフィールドの読み書きに使用する形式を指定します。指定しない場合、Dateフィールドはエポック(1970年1月1日午前0時 GMT) からのミリ秒数とみなされます。指定された場合、値はJava java.time.format.DateTimeFormatter 形式と一致する必要があります(例えば、 MM/dd/yyyyは、2桁の月、2桁の日、4桁の年が続き、2017/01/01のようにすべて'/'文字で区切られます)。

エスケープ文字 *

エスケープ文字

CSV パーサーが特定の意味を持つ文字をエスケープするための文字。もしこのプロパティが式言語によって指定されたとしても、ランタイムにその式が無効なエスケープ文字として評価された場合、そのプロパティはスキップされ、デフォルトのエスケープ文字が使用されます。空文字列をセットすると、エスケープ文字を使用しないことを意味します。

Null文字列

Null文字列

CSV に値として存在する場合、リテラル値を使用する代わりにNull・フィールドとみなす文字列を指定します。

引用文字 *

引用文字

"

エスケープ文字が不要になるように、値を引用符で囲む文字。このプロパティが式言語によって指定されたにもかかわらず、ランタイム時にその式が無効な引用文字として評価された場合、そのプロパティはスキップされ、デフォルトの引用文字が使用されます。

記録セパレーター *

記録セパレーター

n

CSV Recordの区切りに使用する文字を指定します。

最初の行をヘッダーとして扱う *

ヘッダー行をスキップ

false

  • true

  • false

CSV の最初の行をヘッダーとみなすか、記録とみなすかを指定します。スキーマアクセス戦略が列はヘッダーで定義されなければならないと示している場合、ヘッダーは常に存在しなければならず、Recordとして処理されないため、このプロパティは無視されます。もし'true'なら、 CSV データの最初の行は記録として処理されず、'false'なら、最初の行は記録として解釈されます。

時刻形式

時刻形式

Timeフィールドの読み書き時に使用する形式を指定します。指定しない場合、Timeフィールドはエポック(1970年1月1日午前0時 GMT) からのミリ秒数とみなされます。指定された場合、値はJavaのjava.time.format.DateTimeFormatter 形式と一致しなければなりません(例えば、 HH:mm:ssは、24時間形式の2桁の時、2桁の分、2桁の秒の順に続き、18:04:15のようにすべて':'文字で区切られます)。

タイムスタンプ形式

タイムスタンプ形式

Timestamp フィールドの読み書き時に使用する形式を指定します。指定しない場合、タイムスタンプフィールドはエポック(1970年1月1日午前0時 GMT) からのミリ秒数とみなされます。指定された場合、値はJavaのjava.time.format.DateTimeFormatter 形式と一致しなければなりません(例えば、MM/dd/yyyy HH: mm:ssは、2桁の月、2桁の日、4桁の年が続き、すべて'/'文字で区切られ、その後に24時間形式の2桁の時間、2桁の分、2桁の秒が続き、2017/01/01 18:04:15のようにすべて':'文字で区切られます)。

トリムフィールド *

トリムフィールド

true

  • true

  • false

フィールドの先頭と末尾から空白を削除するかどうか

トリム ダブルクォート *

トリム ダブルクォート

true

  • true

  • false

開始と終了の二重引用符を削除するかどうか。例えば: 文字列 '"test"' をトリムすると 'test' に、トリムしないと '"test"' に解析されます。'false' にセットすると、 RFC-4180 に完全に準拠することを意味します。デフォルト値はtrue、トリム付き。

値セパレーター *

値セパレーター

,

CSV 記録の値/フィールドの区切りに使用される文字。プロパティが式言語によって指定されたにもかかわらず、ランタイム時に式が無効な値セパレータに評価された場合、そのプロパティはスキップされ、デフォルト値セパレータが使用されます。

CSV パーサー *

csv-reader-csv-parser

commons-csv

  • アパッチ・コモンズ CSV

  • ジャクソン CSV

  • FastCSV

CSV 記録の読み込みに使用するパーサーを指定します。NOTE: 異なるパーサーは異なる機能のサブセットをサポートし、また異なるレベルのパフォーマンスを示すことがあります。

ヘッダー名の重複許可

csvutils-allow-duplicate-header-names

true

  • true

  • false

ヘッダー名の重複を許可するかどうか。ヘッダー名は大文字と小文字を区別します。例えば、"name "と "Name "は別々のフィールドとして扱われます。重複するヘッダー名のハンドリングは CSV パーサー固有です(アプリケーションの場合):* Apache Commons CSV - ヘッダーが重複すると、"unknown_field_index_X" (X は CSV 列のインデックス番号 * です) の新しいフィールドが作成され、列データが右に "シフト" します。Jackson CSV - ヘッダーが重複すると、フィールド値は一番右の重複した CSV 列* の値となり、重複は解除されます。 FastCSV - ヘッダーが重複すると、フィールド値は一番左の重複した CSV 列の値となり、重複は解除されます。

文字セット *

csvutils-character-set

UTF-8

CSV ファイルのエンコード/デコードに使用される文字エンコード。

CSV ヘッダー列名の無視

ignore-csv-header

false

  • true

  • false

CSV の最初の行がヘッダーで、構成スキーマがヘッダー行で命名されたフィールドと一致しない場合、Reader がフィールドをどのように解釈するかを制御します。このプロパティが true の場合、各列にマッピングされるフィールド名は構成スキーマによってのみ決定され、スキーマにないフィールドは無視されます。このプロパティがfalseの場合、 CSV Headerにあるフィールド名がフィールド名として使用されます。

スキーマアクセス戦略 *

schema-access-strategy

infer-schema

  • 'スキーマ名' プロパティの使用

  • 'スキーマテキスト' プロパティの使用

  • スキーマ リファレンス リーダー

  • ヘッダーからの文字列フィールドの使用

  • スキーマの推測

データの解釈に使用するスキーマの取得方法を指定します。

スキーマ支店

schema-branch

スキーマ・レジストリのプロパティでスキーマを検索する際に使用するブランチの名前を指定します。選択したスキーマ・レジストリが分岐をサポートしていない場合、この値は無視されます。

スキーマ名

schema-name

${schema.name}

スキーマ・レジストリのプロパティで検索するスキーマの名前を指定します。

スキーマ リファレンス リーダー *

schema-reference-reader

FlowFile 属性またはコンテンツを読み取ってスキーマ参照識別子を決定する責任を負うサービス実装。

スキーマレジストリ

schema-registry

スキーマレジストリで使用するController Serviceを指定します。

スキーマテキスト

schema-text

${avro.schema}

Avro形式のスキーマのテキスト

スキーマバージョン

schema-version

スキーマ・レジストリで検索するスキーマのバージョンを指定します。指定しない場合は、スキーマの最新バージョンが取得されます。

状態管理

このコンポーネントは状態を保存しません。

制限あり

このコンポーネントには制限はありません。

システムリソースに関する考察

このコンポーネントは、システムリソースを考慮したものではありません。