UpdateDatabaseTable 2025.5.31.15¶
バンドル¶
org.apache.nifi | nifi-standard-nar
説明¶
このプロセッサーは、 JDBC 接続と受信記録を使用して、受信記録をサポートするために必要なデータベーステーブルの変更を生成します。これは「フラット」な記録レイアウトを想定しており、最上位の記録フィールドには列そのものとなるようなネストされたフィールドはありません。
入力要件¶
REQUIRED
機密動的プロパティをサポート¶
false
プロパティ¶
プロパティ |
説明 |
---|---|
列名変換パターン |
列名はこの正規表現で正規化されます。 |
列名 翻訳ストラテジー |
テーブルの列名を正規化するために使用されるストラテジー。大文字と小文字を区別しないマッチングを行うため、ストラテジーに関係なく列名は大文字になります。 |
データベース方言サービス |
特定のサービスやベンダーに特化したステートメントを生成するためのデータベース方言サービス。 |
db-type |
特定のサービスやベンダーに特化したステートメントを生成するためのデータベースタイプ。汎用タイプはほとんどのケースをサポートしますが、特定のタイプを選択することで、最適な処理や追加機能が可能になります。 |
record-reader |
受信フローファイルを読み込むサービス。リーダーは記録のスキーマを決定するためだけに使用され、実際の記録は処理されません。 |
updatedatabasetable-catalog-name |
ステートメントが更新するカタログ名。更新対象のデータベースには適用されない場合があります。この場合、フィールドは空欄のままにしてください。このプロパティがセットされていてデータベースが大文字と小文字を区別する場合、カタログ名はデータベースのカタログ名と正確に一致しなければならないことに注意してください。 |
updatedatabasetable-create-table |
ターゲット・テーブルが存在しない場合の処理方法を指定します(作成、失敗など)。 |
updatedatabasetable-dbcp-service |
データベースへの接続を取得するために使用するController Service。 |
updatedatabasetable-primary-keys |
データベース内の行を一意に識別する記録フィールド名のカンマ区切りリスト。このプロパティは、指定されたテーブルを作成する必要がある場合にのみ使用されます。この場合、キーフィールドが新しく作成されるテーブルのプライマリキーを指定するために使用されます。IMPORTANT: プライマリ・キー・フィールドは、 'Quote Column Identifiers' が False でデータベースが大文字と小文字を区別しないカラム名を許可していない限り、記録フィールド名と正確に一致する必要があります。実際には、記録フィールド名と完全に一致する主キーフィールドを指定するのがベストです。これらは作成されるテーブルの列名になります。 |
updatedatabasetable-query-timeout |
ドライバーがクエリの実行を待つ秒数をセットします。値0はタイムアウトなしを意味します。NOTE: ゼロ以外の値はドライバーでサポートされていない可能性があります。 |
updatedatabasetable-quoted-column-identifiers |
このオプションを有効にすると、すべての列名が引用符で囲まれるようになり、予約語をテーブルの列名として使用できるようになります。また/もしくは記録フィールド名が列名と完全に一致するよう強制します。 |
updatedatabasetable-quoted-table-identifiers |
このオプションを有効にすると、テーブル名の特殊文字の使用をサポートするためにテーブル名が引用符で囲まれるようになり、Table Nameプロパティの値がターゲット・テーブル名と完全に一致するように強制されます。 |
updatedatabasetable-record-writer |
FlowFile への結果の書き込みに使用するController Serviceを指定します。Record Writerは推論スキーマの動作をエミュレートするためにInherit Schemaを使用するべきです。すなわち、明示的なスキーマをライターで定義する必要はなく、列タイプからスキーマを推論するのと同じロジックによって供給されます。Create Table Strategyが「Create If Not Exists」にセットされている場合、作成されたテーブルの場所にデータを配置するには、Record Writerの出力形式がRecord Readerの形式と一致している必要があります。このプロパティは「Update Field Names」がtrueにセットされ、フィールド名がすべて列名と完全に一致しない場合にのみ使用されることに注意してください。フィールド名の更新が不要な場合(または 'Update Field Names' が False の場合)、Record Writer は使用されず、代わりに入力 FlowFile は修正されずに成功または失敗にルーティングされます。 |
updatedatabasetable-schema-name |
テーブルが属するデータベース・スキーマの名前。更新対象のデータベースには適用されない場合があります。この場合、フィールドは空欄のままにしてください。このプロパティがセットされていてデータベースが大文字と小文字を区別する場合、スキーマ名はデータベースのスキーマ名と正確に一致しなければならないことに注意してください。 |
updatedatabasetable-table-name |
更新するデータベース・テーブルの名前。テーブルが存在しない場合は、Create Tableプロパティの値に応じて、テーブルが作成されるか、エラーがスローされます。 |
updatedatabasetable-translate-field-names |
true の場合、ターゲットテーブルの列としてフィールド名が存在するかどうかを決定するために、プロセッサーはフィールド名を指定されたテーブルの対応する列名に変換しようとします。NOTE: ターゲット・テーブルが存在せず、作成される場合、このプロパティは無視され、フィールド名はそのまま使用されます。falseの場合、フィールド名は列名と完全に一致しなければなりません。そうでなければ列が見つからず、代わりにその列が既に存在するというエラーが報告されるかもしれません。 |
updatedatabasetable-update-field-names |
このプロパティは、フィールド名が指定されたテーブルの正確な列名にセットされるように出力スキーマを更新するかどうかを示します。これは、入力される記録フィールド名がテーブルの列名と大文字と小文字が一致しない場合に使用します。例えば、出力 FlowFile がOracleなどで、フィールド名が列名と正確に一致することを期待する場合、このプロパティはtrueにセットされるべきです。NOTE: フィールド名を更新する際、'Translate Field Names'プロパティの値は無視され、代わりにデータベースから返される列名と一致するように更新されます。 |
リレーションシップ¶
名前 |
説明 |
---|---|
failure |
FlowFile 記録がデータベースに送信できなかった場合に、このリレーションシップにルーティングされた記録を含むコンテナー。 |
success |
FlowFile 記録がデータベースに正常に送信された後、このリレーションシップにルーティングされた記録を含むコンテナー。 |
属性の書き込み¶
名前 |
説明 |
---|---|
output.table |
この属性は、'success' および 'failure' リレーションシップにルーティングされるフロー・ファイルに書き込まれ、ターゲット・テーブル名を含みます。 |
output.path |
この属性は、'success' と 'failure' のリレーションシップにルーティングされるフローファイルに書き込まれ、ファイルシステム上のテーブルへのパス(テーブルがパーティショニングされている場合はパーティションの場所)を含みます。 |
mime.type |
Record Writerが指定され、Update Field Namesが「true」の場合のみ、mime.type属性をRecord Writerで指定された MIME Typeにセットします。 |
record.count |
Record Writer が指定され、Update Field Names が 「true」 の場合のみ、 FlowFile の記録数をセットします。 |