UpdateDatabaseTable 2025.10.2.19¶
バンドル¶
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 への結果の書き込みに使用するコントローラーサービスを指定します。記録ライターは継承スキーマを使用して、推論スキーマ動作をエミュレートする必要があります。すなわち、明示的なスキーマはライターで定義される必要はなく、列型からスキーマを推論するために使用されるものと同じロジックによって提供されます。テーブルの作成ストラテジーが「Create If Not Exists」に設定されている場合、データが作成されたテーブルの場所に配置されるために、記録ライターの出力形式は記録リーダーの形式と一致している必要があります。このプロパティは、「Update Field Names」がtrueに設定され、フィールド名がすべて列名と完全に一致しない場合にのみ使用されることに注意してください。フィールド名の更新が不要な場合(または「Update Field Names」がfalseの場合)、記録ライターは使用されず、代わりに入力 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 の記録数をセットします。 |