QueryRecord 2025.5.31.15

バンドル

org.apache.nifi | nifi-standard-nar

説明

FlowFile のコンテンツに対して、1 つ以上の SQL クエリを評価します。SQL クエリの結果が、出力 FlowFile の内容となります。これは、フィールド固有のフィルター、変換、行レベルのフィルターなどに使用できます。列の名前を変更したり、簡単な計算や集計を行ったりすることができます。プロセッサーは、入出力データ形式に柔軟性を持たせるため、Record ReaderController ServiceとRecord Writerサービスで構成されています。プロセッサーは、少なくとも 1 つのユーザー定義プロパティを構成する必要があります。Property の名前は、データをルーティングする Relationship であり、Property の値は、入力データがどのように変換/フィルタリングされるべきかを指定するために使用される SQL SELECT ステートメントです。SQL ステートメントは、有効な ANSI SQL である必要があり、Apache Calcite を使用しています。変換に失敗した場合、元の FlowFile は「失敗」リレーションシップにルーティングされます。そうでない場合、選択されたデータは関連するリレーションシップにルーティングされます。Record Writerが記録からスキーマを継承することを選択した場合、継承されるスキーマは入力記録ではなく ResultSet からのものであることに注意することが重要です。これにより、 QueryRecord プロセッサーの1つのインスタンスが複数のクエリを持つことができ、それぞれが異なる列と集約のセットを返します。しかし、その結果、派生するスキーマはスキーマ名を持たないので、記録からスキーマを継承する場合、構成されたRecord Writerは属性としてスキーマ名を書こうとしないことが重要です。詳細情報については、Processor Usageドキュメントを参照してください。

タグ

aggregate, avro, calcite, csv, etl, filter, json, logs, modify, query, record, route, select, sql, text, transform, update

入力要件

REQUIRED

機密動的プロパティをサポート

false

プロパティ

プロパティ

説明

dbf-default-precision

DECIMAL/NUMBER の値が'10進数'Avro論理タイプとして記述される場合、利用可能な桁数を示す特定の'精度'が要求されます。一般的に、精度は列のデータ型の定義やデータベースエンジンのデフォルトによって定義されます。しかし、データベースエンジンによっては未定義の精度(0)が返されることがあります。デフォルトの10進数」は、未定義の精度の数値を書き込むときに使用されます。

dbf-default-scale

DECIMAL/NUMBER の値が'10進数'Avro論理タイプとして記述される場合、利用可能な10進数の桁数を示す特定の'スケール'が必要となります。一般的に、スケールは列のデータ型定義やデータベースエンジンのデフォルトで定義されます。しかし、未定義の精度(0)が返された場合、データベースエンジンによってはスケールが不確定になることもあります。「デフォルトの10進数」は、未定義の数値を書くときに使われます。もし数値が指定のスケールよりも小数点を持つなら、値は切り上げられます。例えば、1.53はスケール0では2になり、スケール1では1.5になります。

include-zero-record-flowfiles

受信 FlowFile に対して SQL ステートメントを実行するとき、結果にデータがない場合、このプロパティは FlowFile が対応するリレーションシップに送信されるかどうかを指定します。

record-reader

受信データのパースとスキーマの決定に使用する Controller Service を指定します。

record-writer

FlowFile への結果の書き込みに使用するController Serviceを指定します。

リレーションシップ

名前

説明

failure

FlowFile が何らかの理由で処理に失敗した場合 (たとえば、 SQL ステートメントに入力データに存在しない列が含まれている場合)、元の FlowFile はこのリレーションシップにルーティングされます。

original

元の FlowFile は、次のリレーションシップにルーティングされます。

属性の書き込み

名前

説明

mime.type

mime.type属性をRecord Writerで指定された MIME Typeにセットします。

record.count

クエリで選択された記録数

QueryRecord.Route

FlowFile がルーティングされた先のリレーションシップ

ユースケース

記録のフィールドの値に基づいて記録をフィルターします。

特定の記録のみを保持する

保持するフィールドの名前がわかっている場合、記録内の特定のフィールドのみを保持する

記録指向のデータをその内容に基づいて処理するためのルーティング