すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:パラメーター設定 (VVR 11+)

最終更新日:Oct 16, 2026

このトピックでは、Ververica Runtime (VVR) バージョン 11 以降の WITH パラメーターを一覧表示します。

パラメーターの非推奨

システムアーキテクチャーとメンテナンスを改善するため、VVR 8 以前のバージョンの一部のレガシパラメーターは非推奨になりました。以下の表に、これらのパラメーターとその代替パラメーターを示します。

削除されたパラメーター

パラメーター

説明

備考

jdbcRetrySleepInitMs

各リトライの固定待機時間。

増分待機時間を使用します: retry-sleep-step-ms。

jdbcMetaAutoRefreshFactor

キャッシュの残りの生存期間が指定されたしきい値を下回ったときに、キャッシュを自動的にリフレッシュします。

キャッシュ時間パラメーター meta-cache-ttl-ms を設定するだけで済みます。このパラメーターを設定する必要はありません。

type-mapping.timestamp-converting.legacy

Flink と Hologres の間で時間型を変換するかどうかを指定します。

このパラメーターは TIMESTAMP_LTZ 型との下位互換性のために導入されたものであり、現在は不要です。

property-version

コネクタパラメーターのバージョン。

共通パラメーターのデフォルト値が最適化されたため、削除されました。

field_delimiter

データのエクスポート時に行間で使用されるデリミタ。

データ読み取りメソッドが最適化されたため、削除されました。

jdbcBinlogSlotName

JDBC モードでのバイナリログソーステーブルのスロット名。

データ読み取りメソッドが最適化されたため、削除されました。

binlogMaxRetryTimes

エラー発生後のバイナリログデータの読み取りリトライ回数。

retry-count パラメーターを使用して設定できます。

binlogRetryIntervalMs

バイナリログの読み取りが失敗したときのリトライ間の待機間隔。

retry-sleep-step-ms パラメーターを使用して設定できます。

cdcMode

CDC モードを使用してバイナリログデータを読み取るかどうかを指定します。

デフォルトでは、データは CDC モードで読み取られ、このパラメーターは削除されます。非 CDC モードの場合は、source.binlog.change-log-mode パラメーターを使用して設定できます。

upsertSource

ソーステーブルがアップサート Changelog を使用するかどうかを指定します。

source.binlog.change-log-mode パラメーターを設定します。

bulkload

書き込みにバルクロードを使用するかどうかを指定します。

sink.write-mode パラメーターを使用します。

useRpcMode

RPC を介して Hologres コネクタを使用するかどうかを指定します。

JDBC 接続を使用し、sink.deduplication.enabled パラメーターを設定して重複排除を有効または無効にすることを推奨します。

partitionrouter

パーティションテーブルに書き込むかどうかを指定します。

パーティションテーブルへの書き込みがデフォルトでサポートされるようになったため、削除されました。

ignoredelete

リトラクションメッセージを無視するかどうかを指定します。

sink.delete-strategy パラメーターを設定します。このパラメーターは、リトラクションメッセージの処理戦略を指定します。

sdkMode

データの読み取りまたは書き込みのための SDK モードを指定します。

このパラメーターは最適化されました。テーブルタイプと source.binlog.read-mode および sink.write-mode パラメーターに基づいて設定します。

jdbcReadBatchQueueSize

ディメンションテーブルルックアップリクエストのバッファーキューサイズ。

ポイントクエリのパフォーマンスが低い場合は、connection.pool.size パラメーターを設定することを推奨します。

jdbcReadRetryCount

ディメンションテーブルのルックアップがタイムアウトしたときのリトライ回数。

一般的なリトライメカニズムの retry-count パラメーターに統合されました。

jdbcScanTransactionSessionTimeoutSeconds

スキャン操作のトランザクションタイムアウト。

一般的なスキャンタイムアウト設定は source.scan.timeout-seconds パラメーターに統合されました。

名前が変更されたパラメーター

古いパラメーター

新しいパラメーター

説明

jdbcRetryCount

retry-count

接続障害後の書き込みおよびクエリ操作のリトライ回数。

jdbcRetrySleepStepMs

retry-sleep-step-ms

各リトライの増分待機時間。

jdbcConnectionMaxIdleMs

connection.max-idle-ms

JDBC 接続の最大アイドル時間。

jdbcMetaCacheTTL

meta-cache-ttl-ms

ローカルにキャッシュされたテーブルスキーマ情報の生存時間 (TTL)。

binlog

source.binlog

バイナリログデータを消費するかどうかを指定します。

sdkMode

source.binlog.read-mode

読み取りモードを指定します。

binlogRequestTimeoutMs

source.binlog.request-timeout-ms

バイナリログデータの読み取りタイムアウトを指定します。

binlogBatchReadSize

source.binlog.batch-size

バイナリログからバッチで読み取る行数。

binlogStartupMode

source.binlog.startup-mode

バイナリログデータの消費モード。

jdbcScanFetchSize

source.scan.fetch-size

スキャン中にデータをフェッチする際のバッチサイズ。

jdbcScanTimeoutSeconds

source.scan.timeout-seconds

スキャン操作のタイムアウト。

enable_filter_push_down

source.scan.filter-push-down.enabled

完全読み取りフェーズ中にフィルタープッシュダウンを有効にするかどうかを指定します。

partition-binlog.mode

source.binlog.partition-binlog-mode

パーティションテーブルからのバイナリログの消費モード。

partition-binlog-lateness-timeout-minutes

source.binlog.partition-binlog-lateness-timeout-minutes

DYNAMIC モードでパーティションテーブルから消費する場合の最大遅延タイムアウト。

partition-values-to-read

source.binlog.partition-values-to-read

STATIC モードでパーティションテーブルから消費する場合に読み取るパーティション。複数のパーティション値はカンマ (,) で区切ります。

sdkMode

sink.write-mode

書き込みモードを指定します。

mutatetype

sink.on-conflict-action

主キー競合の処理戦略。

createparttable

sink.create-missing-partition

パーティションテーブルに書き込む際に、パーティション値に基づいて存在しないパーティションを自動的に作成するかどうかを指定します。

jdbcWriteBatchSize

sink.insert.batch-size

Hologres 結果テーブルでのバッチ処理の最大レコード数。

jdbcWriteBatchByteSize

sink.insert.batch-byte-size

Hologres 結果テーブルでのバッチ処理の最大バイトサイズ。

jdbcWriteFlushInterval

sink.insert.flush-interval-ms

データのバッチが Hologres にフラッシュされるまでの最大待機時間。

ignoreNullWhenUpdate

sink.ignore-null-when-update.enabled

sink.on-conflict-action が更新アクションに設定されている場合、書き込まれるデータの null 値を無視するかどうかを指定します。

jdbcEnableDefaultForNotNullColumn

sink.default-for-not-null-column.enabled

定義されたデフォルト値がない NOT NULL 列に null が書き込まれた場合に、コネクタがデフォルト値を提供するかどうかを指定します。

remove-u0000-in-text.enabled

sink.remove-u0000-in-text.enabled

書き込み前に、コネクタが文字列データから不正な \u0000 文字を自動的に削除するかどうかを指定します。

partial-insert.enabled

sink.partial-insert.enabled

INSERT 文で定義されたフィールドのみを挿入するかどうかを指定します。

deduplication.enabled

sink.deduplication.enabled

書き込みのバッチ処理中に重複排除を実行するかどうかを指定します。

check-and-put.column

sink.insert.check-and-put.column

条件付き更新を有効にし、チェックする列を指定します。

check-and-put.operator

sink.insert.check-and-put.operator

条件付き更新操作の比較演算子。

check-and-put.null-as

sink.insert.check-and-put.null-as

条件付き更新の場合、既存のデータが null であれば、null 値はこのパラメーターで指定された値として扱われます。

aggressive.enabled

sink.aggressive-flush.enabled

積極的なフラッシュモードを有効にするかどうかを指定します。

connectionSize

connection.pool.size

単一の Flink ディメンションテーブルタスクの JDBC 接続プールのサイズ。

connectionPoolName

connection.pool.name

接続プールの名前。同じ TaskManager 内で、同じプール名を指定するテーブルは接続プールを共有できます。

jdbcReadBatchSize

lookup.read.batch-size

ディメンションテーブルのルックアップでバッチ処理する最大レコード数。

jdbcReadTimeoutMs

lookup.read.timeout-ms

ディメンションテーブルのルックアップのタイムアウト。

WITH パラメーター

一般

パラメーター

説明

型

必須

デフォルト

備考

connector

テーブルのタイプ。

String

はい

—

値は hologres である必要があります。

dbname

データベースの名前。

String

はい

—

データベース名にサフィックスを追加することで、特定の仮想ウェアハウスに接続できます。たとえば、ディメンションテーブルを read_warehouse 仮想ウェアハウスに接続するには、'dbname' = 'db_test@read_warehouse' と指定します。

tablename

テーブルの名前。

String

はい

—

スキーマが public でない場合は、schema.tableName 形式を使用します。

username

  • カスタムアカウントのユーザー名。形式は BASIC$<user_name> です。

  • Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID。

String

はい

—

重要

AccessKey 情報の漏洩を防ぐため、名前空間変数を使用して AccessKey の値を保存することを推奨します。詳細については、「名前空間変数」をご参照ください。

password

  • カスタムアカウントのパスワード。

  • Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey Secret。

String

はい

—

endpoint

Hologres サービスのエンドポイント。

String

はい

—

詳細については、「エンドポイント」をご参照ください。

connection.pool.size

タスク内の単一の Flink テーブル用に作成される JDBC 接続プールのサイズ。

Integer

いいえ

5

ジョブのパフォーマンスが不十分な場合は、接続プールサイズの増加を検討してください。プールサイズはデータスループットに比例します。このパラメーターはディメンションテーブルと結果テーブルにのみ影響します。

connection.pool.name

同じ TaskManager 内のテーブルは、同じ名前を使用することで接続プールを共有できます。

String

いいえ

'default'

デフォルト値は 'default' です。複数のテーブルが同じ接続プールを使用するように設定されている場合、それらの間で指定された connection.pool.size パラメーターの最大値が使用されます。

たとえば、ジョブに 5 つの Hologres テーブル (ディメンションテーブル A と B、結果テーブル C、D、E) が含まれている場合、テーブル A と B に pool1、テーブル C と D に pool2、高トラフィックを処理するテーブル E に pool3 を使用するように設定できます。

説明
  • テーブルが接続プールを共有できるのは、エンドポイントやデータベースなど、同じ接続情報を使用する場合のみです。

  • ジョブに多数のテーブルが含まれている場合、利用可能な接続数が不足し、パフォーマンスが低下する可能性があります。このような場合は、異なるテーブルに異なるプール名を割り当てることを推奨します。

connection.fixed.enabled

軽量接続モードを使用するかどうかを指定します。

Boolean

いいえ

—

Hologres には接続制限があります。Hologres V2.1 以降、リアルタイム書き込みは、この制限の対象外となる軽量接続をサポートします。

説明
  • このパラメーターのデフォルト値は、Hologres インスタンスのバージョンによって異なります。ディメンションテーブルと結果テーブルの場合、コネクタは Hologres バージョン 3.0.28 以降で自動的に軽量接続モードを選択します。

  • ディメンションテーブルの場合、軽量接続モードは JSONB および RoaringBitmap データ型のクエリをサポートしません。

connection.max-idle-ms

JDBC 接続のアイドルタイムアウト (ミリ秒)。

Long

いいえ

60000

接続がこの時間より長くアイドル状態になると、閉じられます。必要なときに新しい接続が自動的に作成されます。

connection.ssl.mode

転送中の SSL (Secure Sockets Layer) 暗号化を有効にするかどうか、およびどのモードを使用するかを指定します。

String

いいえ

disable

  • disable (デフォルト): 転送中の暗号化を無効にします。

  • require: SSL を有効にし、データリンクのみを暗号化します。

  • verify-ca: SSL を有効にし、データリンクを暗号化し、CA 証明書を使用して Hologres サーバーの信頼性を検証します。

  • verify-full: SSL を有効にし、データリンクを暗号化し、CA 証明書を使用して Hologres サーバーの信頼性を検証し、証明書のコモンネーム (CN) または DNS 名が設定された Hologres エンドポイントと一致することを確認します。

説明
  • Hologres V2.1 以降は verify-ca および verify-full モードをサポートします。詳細については、「転送中の暗号化」をご参照ください。

  • このパラメーターを verify-ca または verify-full に設定する場合は、connection.ssl.root-cert.location パラメーターも設定する必要があります。

connection.ssl.root-cert.location

CA 証明書へのパス。証明書ベースの暗号化モードに必要です。

String

いいえ

—

connection.ssl.mode が verify-ca または verify-full に設定されている場合は、CA 証明書へのパスを指定する必要があります。リアルタイムコンピューティングコンソールのアーティファクトの管理機能を使用して証明書ファイルをアップロードできます。アップロード後、ファイルは /flink/usrlib ディレクトリに保存されます。たとえば、CA 証明書ファイルが certificate.crt という名前の場合、このパラメーターを '/flink/usrlib/certificate.crt' に設定します。

説明

CA 証明書の取得方法については、「CA 証明書のダウンロード」をご参照ください。

retry-count

接続障害時に書き込みまたはクエリ操作をリトライする回数。

Integer

いいえ

10

—

retry-sleep-step-ms

各リトライの増分待機時間 (ミリ秒)。

Long

いいえ

5000

たとえば、デフォルト値が 5,000 (5 秒) の場合、最初のリトライは 5 秒、2 回目は 10 秒、というように待機します。

meta-cache-ttl-ms

ローカルにキャッシュされた TableSchema 情報の生存時間 (TTL) (ミリ秒)。

Long

いいえ

600000

単位:ミリ秒。

serverless-computing.enabled

サーバーレスリソースを使用するかどうかを指定します。

Boolean

いいえ

false

このパラメーターが true に設定されている場合、コネクタは Hologres インスタンスのリソースの代わりに Hologres サーバーレスリソースを使用して読み取りおよび書き込み操作を実行します。このパラメーターは、バッチ読み取りとバッチインポートにのみサポートされています。バイナリログの消費、ディメンションテーブルのポイントクエリ、またはリアルタイム書き込みには無効です。詳細については、「概要」をご参照ください。

説明
  • バッチ読み取りは、source.binlog が false に設定されている場合、または source.binlog.startup-mode が INITIAL に設定されている場合の完全データ読み取りフェーズ中に適用されます。

  • バッチインポート操作は、sink.write-mode が COPY_BULK_LOAD または COPY_BULK_LOAD_ON_CONFLICT に設定されている場合に適用されます。

説明

Hologres インスタンス上の他のクエリに影響を与えないように、大規模なデータのインポートまたはエクスポートにはこのパラメーターを有効にすることを推奨します。詳細については、「概要」をご参照ください。

ソーステーブルのパラメーター

パラメーター

説明

型

必須

デフォルト

備考

source.binlog

バイナリログデータを消費するかどうかを指定します。

Boolean

いいえ

true

  • true (デフォルト): バイナリログデータを消費します。

  • false: バイナリログデータを消費しません。ジョブはバッチ読み取りを実行してから停止します。

source.binlog.read-mode

読み取りモードを指定します。

ENUM

いいえ

AUTO

  • AUTO (デフォルト): インスタンスのバージョンに基づいて最適なモードを自動的に選択します。

  • HOLOHUB: HoloHub モードを使用してバイナリログデータを消費します。

  • JDBC: JDBC モードを使用してバイナリログデータを消費します。

説明

AUTO モードの選択ロジックは次のとおりです:

  • Hologres インスタンス V2.1.27 以降の場合、コネクタは JDBC モードを選択し、軽量接続がデフォルトで有効になります (connection.fixed.enabled パラメーターはデフォルトで true)。

  • Hologres インスタンス V2.1.0 から V2.1.26 の場合、コネクタは JDBC モードを選択します。

  • Hologres インスタンス V2.0 以前の場合、コネクタは HOLOHUB モードを選択します。

source.binlog.change-log-mode

CDC ソーステーブルでサポートされる ChangeLog タイプを指定します。

ENUM

いいえ

UPSERT

  • ALL: INSERT、DELETE、UPDATE_BEFORE、UPDATE_AFTER を含むすべての ChangeLog タイプをサポートします。

  • UPSERT (デフォルト): INSERT、DELETE、UPDATE_AFTER を含むアップサート ChangeLog のみをサポートします。

  • ALL_AS_APPEND_ONLY: すべての ChangeLog タイプを INSERT として扱います。

説明

ダウンストリームパイプラインにリトラクション演算子 (たとえば、重複排除に ROW_NUMBER OVER WINDOW を使用) が含まれている場合は、upsertSource を true に設定する必要があります。この場合、ソーステーブルは Hologres からアップサートモードでデータを読み取ります。

source.binlog.startup-mode

バイナリログデータの消費モードを指定します。

ENUM

いいえ

INITIAL

  • INITIAL (デフォルト): データの完全読み取りを実行し、その後バイナリログから増分消費を開始します。

  • EARLIEST_OFFSET: 利用可能な最も古いバイナリログオフセットから消費を開始します。

  • TIMESTAMP: 指定された startTime のバイナリログから消費を開始します。

  • LATEST_OFFSET: 最新のバイナリログオフセットから消費を開始します。

説明
  • startTime が設定されているか、起動インターフェイスで開始時刻が選択されている場合、このパラメーターは自動的に TIMESTAMP モードに設定され、他の消費モードは無視されます。startTime パラメーターが優先されます。

  • LATEST_OFFSET モードは VVR 11.6 以降でのみサポートされます。

source.binlog.batch-size

バイナリログからバッチごとに読み取る行数を指定します。

Integer

いいえ

512

該当なし。

source.binlog.request-timeout-ms

バイナリログデータの読み取りタイムアウトを指定します。

Long

いいえ

300000

単位:ミリ秒。

説明

タイムアウトは、ダウンストリームの演算子がソーステーブルのデータを処理するのが遅すぎることによるバックプレッシャーを示している可能性があります。

source.binlog.project-columns.enabled

バイナリログデータを読み取る際に、ユーザーテーブルで指定されたフィールドのみを読み取るかどうかを指定します。

Boolean

いいえ

なし

指定されたフィールドは CREATE TEMPORARY TABLE 文で宣言されたものです。宣言されていないフィールドは読み取られません。テーブルに多くのフィールドがあるが、サブセットのみを消費する必要がある場合、このオプションは不要なデータ転送と変換を回避し、読み取りパフォーマンスを向上させ、帯域幅を節約できます。

説明

このパラメーターは VVR 11.3 以降および Hologres インスタンス V3.2 以降でのみサポートされます。通常、このパラメーターを設定する必要はありません。バージョン要件が満たされていれば、コネクタはデフォルトで有効にします。

source.binlog.compression.enabled

バイナリログデータを読み取る際の転送中のデータ圧縮を有効にするかどうかを指定します。

Boolean

いいえ

なし

バイナリログを消費する際、サーバーは LZ4 アルゴリズムで圧縮されたバイトストリームを返します。これにより、読み取りパフォーマンスが向上し、帯域幅使用量が削減されます。

説明

このパラメーターは VVR 11.3 以降および Hologres インスタンス V3.2 以降でのみサポートされます。通常、このパラメーターを設定する必要はありません。バージョン要件が満たされていれば、コネクタはデフォルトで有効にします。

source.binlog.partition-binlog-mode

パーティションテーブルのバイナリログ消費モードを指定します。

Enum

いいえ

DISABLE

  • DISABLE (デフォルト): 非パーティションソーステーブルに使用します。指定された Hologres テーブルがパーティションテーブルの場合、ジョブは例外をスローします。

  • DYNAMIC: パーティションテーブルの最新のパーティションを継続的に消費します。テーブルは動的パーティションが有効になっている必要があります。DYNAMIC モードはパーティションを時系列順に消費します。消費が最後から 2 番目のパーティションに達すると、新しい時間単位が始まるときに最新のパーティションの消費を開始します。

  • STATIC: パーティションテーブルから固定のパーティションセットを消費します。複数のパーティションを同時に消費できます。消費中にパーティションを追加または削除することはできません。デフォルトでは、親テーブルのすべてのパーティションを消費します。

source.binlog.partition-binlog-lateness-timeout-minutes

DYNAMIC モードで、パーティションテーブルを消費する際の最大遅延タイムアウトを指定します。

Integer

いいえ

60

  • 単位:分。DYNAMIC モードでは、新しい時間単位が始まると、コネクタは現在の時刻の最新パーティションの消費を開始します。ただし、前のパーティションをすぐに閉じるのではなく、遅れて到着するデータをキャプチャするために監視を続けます。

たとえば、動的パーティションが日単位で、パーティション 20240920 の場合、最大データ遅延が 1 時間であれば、このパーティションの消費は 2024-09-21 00:00:00 ではなく、2024-09-21 01:00:00 に停止します。

  • lateness-timeout の値は、パーティションの時間単位を超えることはできません。

パーティションが日単位の場合、最大値は 24 * 60 = 1440 分です。DYNAMIC モードでは、コネクタは通常一度に 1 つのパーティションのみを消費しますが、遅延期間中は同時に 2 つのパーティションを消費する場合があります。

source.binlog.partition-values-to-read

STATIC モードで、消費するパーティションを指定します。パーティション値はカンマ (,) で区切ります。

String

いいえ

なし

  • このパラメーターを設定しない場合、STATIC モードは指定された親テーブルのすべてのパーティションを消費します。設定した場合、指定されたパーティションのみを消費します。

  • パーティションの完全な名前ではなく、パーティション値のみを指定します。複数の値はカンマ (,) で区切ります。このパラメーターは正規表現をサポートしていません。

startTime

消費オフセットの開始時刻を指定します。

String

いいえ

なし

フォーマット:yyyy-MM-dd hh:mm:ss。このパラメーターが設定されておらず、ジョブが保存された状態から再開されない場合、消費は最も古いバイナリログから開始されます。

source.scan.fetch-size

バッチ読み取りのバッチサイズを指定します。

Integer

いいえ

512

該当なし。

source.scan.timeout-seconds

バッチ読み取りのタイムアウトを指定します。

Integer

いいえ

60

単位:秒。

source.scan.filter-push-down.enabled

バッチ読み取り中にフィルターをプッシュダウンするかどうかを指定します。

Boolean

いいえ

false

  • false (デフォルト): フィルターをプッシュダウンしません。

  • true: バッチ読み取り中にサポートされているフィルター条件を Hologres にプッシュダウンします。

説明
  • このパラメーターは source.binlog.filter-push-down.enabled パラメーターと同時に有効にすることはできません。

  • このパラメーターは 2 つのシナリオで有効になります:

    • source.binlog が false に設定されている場合、バッチ読み取りが実行され、フィルタープッシュダウンが有効になります。

    • source.binlog を true に設定し、source.binlog.startup-mode を INITIAL に設定すると、完全および増分データ読み取りが有効になり、フィルタープッシュダウンは完全データ読み取りフェーズ中に有効になります。

source.binlog.filter-push-down.enabled

バイナリログ消費中にフィルターをプッシュダウンするかどうかを指定します。

Boolean

いいえ

false

  • false (デフォルト): フィルターをプッシュダウンしません。

  • true: バイナリログ消費中にサポートされているフィルター条件を Hologres にプッシュダウンします。

説明
  • このパラメーターは VVR 11.3 以降および Hologres インスタンスのバージョン 4.0 以降でのみサポートされます。このパラメーターは source.scan.filter-push-down.enabled パラメーターと同時に有効にすることはできません。

  • source.binlog が true に設定されている場合、フィルタープッシュダウンが有効になります。たとえば、source.binlog.startup-mode が INITIAL に設定されている場合、フィルタープッシュダウンは完全フェーズと増分フェーズの両方で有効です。

scan.prefer.physical-column.over.metadata-column

物理列とメタデータ列が同じ名前を共有する場合に、物理列からのデータ読み取りを優先するかどうかを指定します。

Boolean

いいえ

false

このパラメーターは VVR 11.5 以降でのみサポートされます。以前のバージョンでは、常にメタデータ列からのデータ読み取りが優先されます。

結果テーブルのパラメーター

パラメーター

説明

型

必須

デフォルト

備考

sink.write-mode

データ書き込みモード。

ENUM

いいえ

INSERT

  • INSERT: デフォルト。JDBC を使用して INSERT 文でデータを書き込みます。

  • COPY_STREAM: 固定 COPY ストリーミングメソッドを使用します。高スループットと低レイテンシーを必要とするシナリオ向けの高性能オプションです。このモードは、データの削除、親パーティションテーブルへの書き込み、または sink.ignore-null-when-update.enabled パラメーターの使用をサポートしません。

  • COPY_BULK_LOAD: COPY プロトコルを使用してバルク書き込みを実行します。COPY_BULK_LOAD は現在、主キーのないテーブルにのみ適用されます (主キーが重複している場合は例外がスローされます)。COPY_STREAM と比較して、このモードは書き込みに使用する Hologres リソースが少なくなります。

  • COPY_BULK_LOAD_ON_CONFLICT: COPY プロトコルを使用してバッチ書き込みを行い、主キーを持つテーブルへの書き込みと主キー競合の処理をサポートします。

説明
  • COPY_BULK_LOAD_ON_CONFLICT モードは VVR 11.3 以降でのみサポートされ、Hologres V3.1 以降が必要です。このモードは、Hologres 結果テーブルの DistributionKey に基づいて Flink 側でデータを再シャッフリングすることで機能します。これにより、同じシャードのデータが同じ Flink タスクによって書き込まれることが保証され、バッチインポートのテーブルロック範囲がテーブルレベルからシャードレベルに縮小され、異なるシャードへの同時書き込みが可能になります。したがって、ジョブの同時実行数を Hologres 結果テーブルのShard Countと一致するように設定してください。

  • COPY_BULK_LOAD および COPY_BULK_LOAD_ON_CONFLICT モードでは、データはチェックポイントが成功した後にのみ表示されます。これらのモードは、即時のデータ可視性が必要ないシナリオや、既存データのバッチインポートに適しています。

  • COPY_STREAM モードでは、CURRENT_TIMESTAMP や NOW() などの時間関数の値は COPY 接続が確立されたときに固定され、各レコードで更新されません。Hologres テーブルの列がこれらの関数をデフォルト値として使用している場合 (例:DEFAULT CURRENT_TIMESTAMP)、列の値はレコードの実際の書き込み時間ではなく、接続確立時間を反映します。正確な書き込み時間を取得するには、Hologres のデフォルト値に依存するのではなく、Flink ジョブでタイムスタンプ値を明示的に指定する必要があります。

sink.on-conflict-action

主キー競合を処理するためのポリシー。

ENUM

いいえ

INSERT_OR_UPDATE

  • INSERT_OR_IGNORE: 最初のレコードを保持し、同じ主キーを持つ後続のすべてのレコードを無視します。

  • INSERT_OR_REPLACE: 既存の行全体を新しい行に置き換えます。

  • INSERT_OR_UPDATE: デフォルト。既存の行の列のサブセットを更新します。

    たとえば、a、b、c、d の列を持つテーブルを考えます。ここで a は主キーです。受信レコードが列 a と b の値のみを提供する場合、主キー競合により、システムは列 b のみを更新し、列 c と d は変更しません。

sink.create-missing-partition

パーティションテーブルに書き込む際に、一致するパーティションが存在しない場合にパーティション値に基づいてパーティションを自動的に作成するかどうかを指定します。

Boolean

いいえ

false

  • DATE データ型をパーティションキーとして使用し、動的パーティションを有効にすると、自動作成されたパーティションの名前は動的パーティションの命名規則に従います。

  • このパラメーターは注意して使用してください。パーティション値にダーティデータが含まれていないことを確認してください。そうしないと、誤ったパーティションが作成され、フェールオーバーにつながる可能性があります。

  • sink.write-mode が INSERT でない場合、親パーティションテーブルに書き込むことはできません。

sink.delete-strategy

リトラクションメッセージを処理するためのポリシー。

String

いいえ

CHANGELOG_STANDARD

  • IGNORE_DELETE: UPDATE_BEFORE および DELETE メッセージを無視します。このオプションは、挿入または更新のみが必要で、削除は不要なシナリオに適しています。

  • NON_PK_FIELD_TO_NULL: UPDATE_BEFORE メッセージを無視し、DELETE メッセージを処理して非主キーフィールドを NULL に設定します。このオプションは、他の列に影響を与えずに削除を実行したい部分更新シナリオに適しています。

  • DELETE_ROW_ON_PK: UPDATE_BEFORE メッセージを無視し、DELETE メッセージを処理して主キーに基づいて行全体を削除します。このオプションは、行全体を削除したい部分更新シナリオに適しています。

  • CHANGELOG_STANDARD: 標準の Flink SQL 変更ログメカニズムに従います。削除操作を無視しません。このオプションは、古いレコードを削除してから新しいレコードを挿入することで更新を実行し、データの精度を保証します。このオプションは、部分更新を伴わないシナリオに適しています。

説明

NON_PK_FIELD_TO_NULL オプションを有効にすると、主キー列のみに値があり、他のすべての列が null のレコードが生成される可能性があります。

sink.ignore-null-when-update.enabled

sink.on-conflict-action が 'INSERT_OR_UPDATE' の場合、更新中に受信データの null 値を無視するかどうかを指定します。

Boolean

いいえ

false

  • false: デフォルト。null 値を Hologres 結果テーブルに書き込みます。

  • true: 受信更新データの null 値を無視します。

説明

このパラメーターは、sink.write-mode が INSERT に設定されている場合にのみサポートされます。

sink.ignore-null-when-update-by-expr.enabled

sink.on-conflict-action が 'INSERT_OR_UPDATE' の場合、式ベースのメソッドを使用して受信更新データの null 値を無視するかどうかを指定します。

Boolean

いいえ

false

このメソッドは sink.ignore-null-when-update.enabled よりも優れたパフォーマンスを提供します。

  • false: デフォルト。

    • sink.ignore-null-when-update.enabled が true の場合、更新の null 値は無視されます。

    • sink.ignore-null-when-update.enabled が false の場合、null 値は Hologres 結果テーブルに書き込まれます。

  • true: sink.ignore-null-when-update.enabled の設定に関係なく、受信更新データの null 値を無視します。

説明
  • このパラメーターは、sink.write-mode が INSERT に設定されている場合にのみサポートされます。

  • Hologres V4.0 以降が必要です。

sink.ignore-null-when-update.use-builtin.enabled

sink.ignore-null-when-update.enabled または sink.ignore-null-when-update-by-expr.enabled が有効な場合に、Hologres SDK の組み込みメソッドを使用するかどうか。

Boolean

いいえ

false

  • false (デフォルト): sink.ignore-null-when-update.enabled または sink.ignore-null-when-update-by-expr.enabled と同じように動作します。

  • true: sink.ignore-null-when-update-by-expr.enabled がオンの場合、sink.ignore-null-when-update-by-expr.enabled のみを有効にするよりもパフォーマンスが向上します。

sink.ignore-null-when-update.enabled がオンの場合、パフォーマンスは同等です。

説明
  • このパラメーターは、sink.write-mode が INSERT に設定されている場合にのみサポートされます。

  • Hologres V4.0 以降が必要です。

  • VVR 11.8 以降でのみサポートされます。

sink.default-for-not-null-column.enabled

定義されたデフォルト値がない NOT NULL 列に null が書き込まれた場合に、コネクタがデフォルト値を提供するかどうかを指定します。

Boolean

いいえ

true

  • true: デフォルト。コネクタが以下のルールに基づいてデフォルト値を提供し、書き込むことを許可します:

    • String データ型の場合、空の文字列 ("") が書き込まれます。

    • Number データ型の場合、0 が書き込まれます。

    • Date、timestamp、または timestamptz データ型の場合、1970-01-01 00:00:00 が書き込まれます。

  • false: デフォルト値を提供しません。NOT NULL 列に null 値を書き込むと、例外がスローされます。

説明

このパラメーターは、sink.write-mode が INSERT に設定され、かつ sink.on-conflict-action が INSERT_OR_UPDATE 以外のオプションに設定されている場合にのみサポートされます。

sink.remove-u0000-in-text.enabled

書き込み操作中に、コネクタが文字列型から不正な \u0000 文字を削除するかどうかを指定します。

Boolean

いいえ

true

  • false: コネクタはデータを変更しません。ダーティデータに遭遇した場合、書き込み操作は次のようなエラーをスローする可能性があります: ERROR: invalid byte sequence for encoding "UTF8": 0x00

    この場合、ソーステーブルでダーティデータを処理するか、SQL ステートメントでダーティデータの処理ロジックを定義する必要があります。

  • true: デフォルト。コネクタは文字列型から \u0000 文字を削除して、書き込みエラーを防ぎます。

sink.partial-insert.enabled

INSERT 文で定義されたフィールドのみを挿入または更新するかどうかを指定します。

Boolean

いいえ

false

  • false: デフォルト。結果テーブルの DDL で定義されたすべてのフィールドが更新されます。INSERT 文で宣言されていないフィールドは null に更新されます。

  • true: INSERT 文で定義されたフィールドのみをコネクタにプッシュし、宣言されたフィールドのみを更新または挿入できます。

説明
  • このパラメーターは、sink.on-conflict-action パラメーターが INSERT_OR_UPDATE に設定されている場合にのみ有効です。

sink.deduplication.enabled

バッチ処理中に重複排除を実行するかどうかを指定します。

Boolean

いいえ

true

  • true: デフォルト。バッチに同じ主キーを持つ複数のレコードが含まれている場合、コネクタはそれらを重複排除し、最後のレコードのみを Hologres 結果テーブルに書き込みます。2 つのフィールドを持つテーブルを考えます。最初のフィールドが主キーです:

    • レコード INSERT (1,'a') と INSERT (1,'b') が順番に到着した場合、重複排除後、最後のレコード (1,'b') のみが Hologres 結果テーブルに書き込まれます。

    • Hologres 結果テーブルにすでにレコード (1,'a') が含まれており、レコード DELETE (1,'a') と INSERT (1,'b') が順番に到着した場合、最後のレコード (1,'b') のみが Hologres に書き込まれます。これにより、削除してから挿入するのではなく、直接更新が行われます。

  • false: バッチ処理中の重複排除を無効にします。新しいレコードが現在のバッチ内のレコードと同じ主キーを持つ場合、バッチはまず結果テーブルに書き込まれ、その後新しいレコードが処理されます。

説明
  • このパラメーターは、sink.write-mode が INSERT に設定されている場合にのみサポートされます。

  • 重複排除が無効になっている場合、すべてのレコードが同じ主キーを持つなど、極端なケースでは書き込み操作が単一行書き込みに低下する可能性があります。これにより、パフォーマンスが低下する可能性があります。

sink.aggressive-flush.enabled

積極的なフラッシュモードを有効にするかどうかを指定します。

Boolean

いいえ

false

true に設定すると、バッチが設定されたサイズに達していなくても、接続がアイドル状態のときにコネクタは強制的にバッチをフラッシュします。これにより、低トラフィック期間中のデータ書き込みレイテンシーが削減されます。

説明

このパラメーターは、sink.write-mode が INSERT または COPY_STREAM に設定されている場合にのみサポートされます。

sink.insert.check-and-put.column

条件付き更新を有効にし、チェックする列を指定します。

String

いいえ

なし

このパラメーターの値は、Hologres テーブルに存在する列名である必要があります。

重要
  • このパラメーターは、sink.write-mode が INSERT に設定されている場合にのみサポートされます。

  • 結果テーブルには主キーが必要であり、sink.on-conflict-action パラメーターは INSERT_OR_UPDATE または INSERT_OR_REPLACE である必要があります。

  • 逆引き参照が必要なため、パフォーマンスを向上させるために、結果テーブルを行指向テーブルまたはハイブリッド行列表として作成してください。

  • 多くのレコードが同じ主キーを共有する場合、チェックアンドプット操作は単一行書き込みに低下し、書き込みパフォーマンスが低下する可能性があります。

sink.insert.check-and-put.operator

条件付き更新操作の比較演算子。

String

いいえ

GREATER

受信レコードのチェック列をテーブル内の既存の値と比較します。条件が満たされた場合に更新が続行されます。サポートされている演算子は次のとおりです:GREATER、GREATER_OR_EQUAL、EQUAL、NOT_EQUAL、LESS、LESS_OR_EQUAL、IS_NULL、および IS_NOT_NULL。

sink.insert.check-and-put.null-as

条件付き更新中に、既存のデータの null 値をこのパラメーターで指定された値として扱います。

String

いいえ

なし

PostgreSQL では、NULL との比較はすべて FALSE を返します。したがって、テーブル内の既存の値が NULL の場合、比較に使用するためにこのパラメーターを特定の値に設定する必要があります。これは SQL の COALESCE 関数に相当します。

sink.insert.batch-size

INSERT モードで、書き込む前にバッチに含める最大レコード数。

Integer

いいえ

512

コネクタは、sink.insert.batch-size、sink.insert.batch-byte-size、または sink.insert.flush-interval-ms のいずれかのしきい値に達すると書き込みをトリガーします。

sink.insert.batch-byte-size

INSERT モードで、書き込む前のバッチの最大サイズ (バイト単位)。

Long

いいえ

2097152 (2 MB)

sink.insert.flush-interval-ms

INSERT モードで、バッチが Hologres にフラッシュされるまでの最大待機間隔 (ミリ秒)。

Long

いいえ

10000

sink.copy.format

COPY モードで使用されるデータ転送フォーマット。

String

いいえ

  • COPY_STREAM モードのデフォルトは binary です。

  • COPY_BULK_LOAD または COPY_BULK_LOAD_ON_CONFLICT モードのデフォルトは text です。

COPY_STREAM モードでサポートされるフォーマット:

  • binary

  • text

  • binaryrow (Hologres エンジン V4.1.0 以降が必要)

COPY_BULK_LOAD または COPY_BULK_LOAD_ON_CONFLICT モードでサポートされるフォーマット:text のみ

説明

このパラメーターは、sink.write-mode が COPY_STREAM、COPY_BULK_LOAD、または COPY_BULK_LOAD_ON_CONFLICT に設定されている場合にのみサポートされます。

sink.insert.conflict-update-set

主キー競合が発生したときに、行を更新するために使用される Hologres 式。

String

いいえ

なし

insert into tbl values(xxx) on conflict(pk) do update set <conflict-update-set> と同等です。Hologres の式または関数を指定できます。

たとえば、このパラメーターが col1=old.col1+excluded.col1,col2=excluded.col2 に設定されている場合、主キー競合により col1 の値は古い値と新しい値の合計に更新され、col2 の値は新しい値に更新されます。

  • このパラメーターが指定されていない場合、コネクタはデフォルトですべての受信フィールドを新しい値に更新します。

  • 結果が古い値に依存するステートフルな式 (例:col=old.col+excluded.col) の場合、列が行のバージョン番号として機能できることを確認し、sink.insert.conflict-where を excluded.seq>old.seq に設定してください。これにより、フェールオーバーと回復後のデータの正確性が保証されます。

説明

このパラメーターは、sink.write-mode が INSERT に設定されている場合にのみサポートされます。

sink.insert.conflict-where

主キー競合中に更新をトリガーするための Hologres フィルター条件。

String

いいえ

なし

insert into tbl values(xxx) on conflict(pk) do update set <conflict-update-set> where <conflict-where> と同等です。Hologres の式または関数を指定できます。

たとえば、このパラメーターが excluded.col1>old.col1 に設定されている場合、col1 の新しい値が既存の値より大きい場合にのみ更新がトリガーされます。

説明
  • このパラメーターは、sink.write-mode が INSERT に設定されている場合にのみサポートされます。

  • このパラメーターは sink.insert.check-and-put* パラメーターと競合します。同時に設定するとエラーが発生します。

ディメンションテーブルのパラメーター

パラメーター

説明

型

必須

デフォルト

備考

lookup.read.batch-size

Hologres ディメンションテーブルに対するポイントクエリでバッチ処理する最大レコード数。

Integer

いいえ

256

なし

lookup.read.timeout-ms

ディメンションテーブルに対するポイントクエリのタイムアウト。

Long

いいえ

0、タイムアウトなしを意味します。

なし

lookup.read.column-table.enabled

ディメンションテーブルとして列指向テーブルを使用するかどうかを指定します。

Boolean

いいえ

false

列指向テーブルはポイントクエリのパフォーマンスが低いです。ディメンションテーブルとして行指向テーブルまたはハイブリッド行列表を使用することを推奨します。列指向テーブルでこのパラメーターが有効になっている場合、警告がログに記録されます。

lookup.insert-if-not-exists

レコードが存在しない場合に挿入するかどうかを指定します。

Boolean

いいえ

false

ポイントクエリがディメンションテーブルで現在のレコードに一致するものを見つけられない場合、コネクタはレコードを挿入します。

cache

キャッシュポリシー。

String

いいえ

なし

Hologres は None と LRU の 2 つのキャッシュポリシーのみをサポートします。

cacheSize

キャッシュサイズ (行数)。

Integer

いいえ

10000

LRU キャッシュポリシーを選択した後、キャッシュサイズを設定できます。単位はエントリです。

cacheTTLMs

キャッシュの生存時間 (TTL) (ミリ秒)。

Long

いいえ

備考を参照

単位はミリ秒です。cacheTTLMs のデフォルト値はキャッシュ設定によって異なります:

  • キャッシュが LRU として設定されている場合、cacheTTLMs はキャッシュのタイムアウトを指定します。デフォルト設定は有効期限なしです。

  • キャッシュが None として設定されている場合、cacheTTLMs は省略でき、キャッシュがタイムアウトしないことを示します。

cacheEmpty

空の結合結果をキャッシュするかどうかを指定します。

Boolean

いいえ

true

  • true (デフォルト): 空の結合結果をキャッシュします。

  • false: 空の結合結果をキャッシュしません。

    ただし、結合文の AND の前の条件が満たされても AND の後の条件が満たされない場合、空の結果は依然としてキャッシュされます。以下のコードに例を示します。

    LEFT JOIN latest_emergency FOR SYSTEM_TIME AS OF PROCTIME() AS t2
     ON t1.alarm_id = t2.alarm_id -- 動的アラームが検出された場合、動的アラーム ID を使用して照合します。それ以外の場合は、動的アラーム ID フィールドを無視します。
     AND CASE
     WHEN alarm_type = 2 THEN t1.dynamic_id = t2.dynamic_alarm_id
     ELSE true
     END
重要

実際のビジネスシナリオに基づいて、このスイッチを有効にするかどうかを決定してください。

  • パフォーマンスを向上させ、静的またはゆっくり変化するディメンションテーブルの I/O 負荷を軽減するには、デフォルト値 (true) を使用します。

  • 頻繁に更新されるディメンションテーブルの場合は、このパラメーターを false に設定するか、短い cacheTTLMs 値を使用します。これにより、空のキャッシュエントリが迅速に削除され、後続の結合失敗を防ぎます。

async

結果を非同期で返すかどうかを指定します。

Boolean

いいえ

false

  • true: 結果を非同期で返します。

  • false (デフォルト): 結果を同期的に返します。

説明
  • 非同期の結果は順序付けされません。

  • ディメンションテーブルの非同期クエリは、async と lookup.async の両方のパラメーターによって制御されます。このパラメーターまたは lookup.async のいずれかが true の場合、非同期クエリが有効になります。

    lookup.async のデフォルト値は true です。したがって、async が false に設定されていても、非同期クエリは有効になります。

    非同期クエリを無効にするには、両方のパラメーターを false に設定する必要があります。

lookup.async

ディメンションテーブルの非同期クエリを有効にするかどうかを指定します。

Boolean

いいえ

true

  • true (デフォルト): 非同期クエリを有効にします。

  • false: 非同期クエリを無効にします。

lookup.filter-push-down.enabled

ディメンションテーブルのフィルター条件を Hologres サーバーにプッシュダウンするかどうかを指定します。

Boolean

いいえ

false

この機能は、列と定数の間の比較操作のみをサポートします。コネクタは、等価 (=) および比較 (<, <=, >, >=) 演算子のみをプッシュダウンします。

説明

このパラメーターは、リアルタイムコンピューティングエンジン VVR 11.4 以降でのみサポートされます。