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

Realtime Compute for Apache Flink:コネクタオプション(VVR 8以前)

最終更新日:Jun 20, 2025

このトピックでは、Ververica Runtime(VVR)8.0.x以前のWITH句におけるHologresコネクタオプションについて説明します。

WITH句におけるコネクタオプション

全般

オプション

説明

データ型

必須?

デフォルト値

備考

connector

コネクタのタイプ。

文字列

はい

デフォルト値なし

このオプションを hologres に設定します。

dbname

データベース名。

文字列

はい

デフォルト値なし

Hologres V2.0では、仮想ウェアハウスインスタンスが新しいタイプの弾力性と高可用性インスタンスとして導入されました。コンピューティングリソースは複数の仮想ウェアハウスに分割され、高可用性デプロイメントが実装されます。異なる仮想ウェアハウスは同じエンドポイントを共有します。dbname オプションの値に特定のサフィックスを追加して、接続する仮想ウェアハウスを指定できます。たとえば、ディメンションテーブルを仮想ウェアハウス read_warehouse に接続する場合、'dbname' = 'db_test@read_warehouse' を指定します。

説明

仮想ウェアハウスは、テーブルにJDBC関連モードを使用する場合にのみサポートされます。詳細については、ソース、ディメンション、またはシンクテーブルの sdkMode オプションをご参照ください。

tablename

テーブル名。

文字列

はい

デフォルト値なし

スキーマがpublicでない場合は、tablenameschema.tableName に設定します。

username

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

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

文字列

はい

デフォルト値なし

重要

セキュリティを強化するために、AccessKeyペアをハードコーディングする代わりに、変数を使用してください

password

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

  • Alibaba CloudアカウントまたはRAMユーザーのAccessKeyシークレット。

文字列

はい

デフォルト値なし

endpoint

Hologresのエンドポイント。

文字列

はい

デフォルト値なし

Hologresに接続するためのエンドポイント」をご参照ください。

connection.ssl.mode

SSL暗号化転送を有効にするかどうかを指定し、使用するSSL暗号化転送モードを指定します。

文字列

いいえ

disable

  • disable:SSL暗号化転送は無効です。

  • require:SSLが有効になり、データリンクが暗号化されます。

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

  • verify-full:SSLが有効になり、データリンクが暗号化されます。クライアントはCA証明書を使用してHologresサーバーの信頼性を検証し、CA証明書の共通名(CN)またはドメインネームシステム(DNS)と構成されたHologresエンドポイント間の一貫性をチェックします。

説明
  • VVR 8.0.5以降のみがこのオプションをサポートしています。

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

  • このオプションを verify-ca または verify-full に設定する場合は、connection.ssl.root-cert.location を構成する必要があります。

connection.ssl.root-cert.location

CA証明書を使用する場合の証明書のパス。

文字列

いいえ

デフォルト値なし

connection.ssl.modeverify-ca または verify-full に設定すると、このオプションは必須になります。Realtime Compute for Apache Flinkコンソールの アーティファクト 機能を使用して証明書をアップロードできます。証明書は /flink/usrlib ディレクトリに保存されます。たとえば、CA証明書ファイル名が certificate.crt の場合、このオプションを '/flink/usrlib/certificate.crt' に設定します。

説明

jdbcRetryCount

接続障害が発生した場合に、データの読み取りと書き込みに許可される最大再試行回数。

整数

いいえ

10

jdbcRetrySleepInitMs

各再試行の固定待機時間。

長い

いいえ

1000

各再試行の実際の待機時間は、次の式を使用して計算されます:jdbcRetrySleepInitMs+retry*jdbcRetrySleepStepMs。単位:ミリ秒。

jdbcRetrySleepStepMs

各再試行の累積待機時間。

長い

いいえ

5000

各再試行の実際の待機時間は、次の式を使用して計算されます:jdbcRetrySleepInitMs+retry*jdbcRetrySleepStepMs。単位:ミリ秒。

jdbcConnectionMaxIdleMs

JDBC接続がアイドル状態を維持できる最大時間。

長い

いいえ

60000

JDBC接続がこのオプションの値を超える時間アイドル状態のままである場合、接続は閉じられ、解放されます。単位:ミリ秒。

jdbcMetaCacheTTL

TableSchema情報をキャッシュに保存する最大時間。

長い

いいえ

60000

単位:ミリ秒。

jdbcMetaAutoRefreshFactor

自動キャッシュリフレッシュをトリガーするための係数。キャッシュにデータを保存する残りの時間が、キャッシュの自動リフレッシュをトリガーする時間よりも短い場合、システムは自動的にキャッシュをリフレッシュします。

整数

いいえ

4

キャッシュにデータを保存する残りの時間は、次の式を使用して計算されます。

キャッシュにデータを保存する残りの時間 = キャッシュの有効期限 - データがキャッシュに保存されている時間。

キャッシュが自動的にリフレッシュされると、データがキャッシュされる時間は 0 から再計算されます。

キャッシュの自動リフレッシュをトリガーする時間は、次の式を使用して計算されます。

jdbcMetaCacheTTL/jdbcMetaAutoRefreshFactor

type-mapping.timestamp-converting.legacy

Realtime Compute for Apache FlinkとHologres間で時間タイプの変換を実行するかどうかを指定します。

ブール値

いいえ

true

  • true:ランタイム環境のJava 仮想マシン(JVM)のタイムゾーンに基づいてタイムゾーン変換が実行されます。

  • false(推奨):Realtime Compute for Apache Flinkのタイムゾーンに基づいてタイムゾーン変換が実行されます。

説明
  • このパラメータは、VVR 8.0.6以降でのみサポートされています。

  • 詳細については、「Realtime Compute for Apache FlinkとHologresのタイムゾーン」をご参照ください。

  • property-version=0の場合、デフォルト値は true です。property-version=1の場合、デフォルト値は false です。

property-version

コネクタオプションのバージョン。

整数

いいえ

0

有効な値:

  • 0

  • 1(推奨)

説明
  • このオプションは、VVR 8.0.6以降でのみサポートされています。

  • 使用可能なコネクタオプションのセットとそれらのデフォルト値は、VVRのメジャーバージョンによって異なる場合があります。オプションの備考に違いがあれば説明します。

ソース固有

オプション

説明

データ型

必須?

デフォルト値

備考

field_delimiter

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

文字列

いいえ

"\u0002"

binlog

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

ブール値

いいえ

false

  • true

  • false

説明
  • property-version=0の場合、デフォルト値はfalseです。

  • property-version=1の場合、デフォルト値はtrueです。

sdkMode

SDKモード。

文字列

いいえ

holohub

  • holohub:バイナリログデータはHoloHubモードで使用されます。

  • jdbc:バイナリログデータはJDBCモードで使用されます。

  • jdbc_fixed:バイナリログデータは固定JDBCモードで使用され、接続制限の対象になりません。このモードでは、データマスキング が有効になっているデータベースからのバイナリログの使用はサポートされていません。

異なるバージョンで推奨される値については、「注意事項」をご参照ください。

jdbcBinlogSlotName

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

文字列

いいえ

デフォルト値なし

このオプションは、sdkModejdbc に設定されている場合にのみ有効です。このオプションを指定しない場合、Hologresコネクタは自動的にスロットを作成します。詳細については、「JDBCモードでのバイナリログの使用」をご参照ください。

説明

Hologres V2.1以降とVVR 8.0.5以降を使用している場合は、このオプションの構成をスキップしてください。コネクタはスロットを自動的に作成しようとしません。

binlogMaxRetryTimes

Realtime Compute for Apache Flinkがバイナリログデータの読み取りに失敗した後の再試行回数。

整数

いいえ

60

binlogRetryIntervalMs

Realtime Compute for Apache Flinkがバイナリログデータの読み取りに失敗した後の再試行間隔。

長い

いいえ

2000

単位:ミリ秒。

binlogBatchReadSize

一度に読み取られるバイナリログデータの行数。

整数

いいえ

100

cdcMode

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

ブール値

いいえ

false

  • true:バイナリログデータはCDCモードで読み取られます。

  • false:バイナリログデータはCDCモードで読み取られません。

説明
  • property-version=0の場合、デフォルト値はfalseです。

  • property-version=1の場合、デフォルト値はtrueです。

upsertSource

ソーステーブルがUPSERTメッセージを含む変更ログストリームを読み取るかどうかを指定します。

ブール値

いいえ

false

このオプションは、CDCモードでのみ有効です。

  • true:INSERT、DELETE、UPDATE_AFTERメッセージを含む、UPSERTメッセージのみがサポートされます。

  • false:INSERT、DELETE、UPDATE_BEFORE、UPDATE_AFTERメッセージを含む、すべてのタイプのメッセージがサポートされます。

説明

シンクテーブルにretraction演算子(たとえば、重複排除のためにOVER句とともに使用されるROW_NUMBER() 関数など)が存在する場合、upsertSourcetrue に設定する必要があります。

binlogStartupMode

バイナリログの使用モード。

文字列

いいえ

earliestOffset

  • initial:最初にすべてのデータを使用し、次にバイナリログが使用されます。

  • earliestOffset:最も古いバイナリログから使用します。

  • timestampstartTime オプションで指定された時刻からバイナリログを使用します。

説明

startTime オプションの方が優先順位が高くなります。つまり、startTime オプションを構成するか、ジョブの開始時に開始時点を選択すると、binlogStartupMode オプションは強制的に timestamp に設定されます。

説明
  • property-version=0の場合、デフォルト値はfalseです。

  • property-version=1の場合、デフォルト値はtrueです。

startTime

Hologresデータの使用を開始する時刻。

文字列

いいえ

デフォルト値なし

形式は yyyy-MM-dd hh:mm:ss です。このオプションが構成されておらず、ジョブが状態から再開されない場合、Realtime Compute for Apache Flinkは最も古いバイナリログからHologresデータの使用を開始します。

jdbcScanFetchSize

スキャン操作中に一度に処理できるデータレコードの数。

整数

いいえ

256

jdbcScanTimeoutSeconds

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

整数

いいえ

60

単位:秒。

jdbcScanTransactionSessionTimeoutSeconds

スキャン操作が属するトランザクションのタイムアウト期間。

整数

いいえ

600

このオプションは、Hologresの GUCパラメータ idle_in_transaction_session_timeout に対応します。

0 は、タイムアウトが許可されていないことを意味します。

enable_filter_push_down

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

ブール値

いいえ

false

  • false:フィルタプッシュダウンは実行されません。

  • true:サポートされているフィルタ条件は、フルデータ読み取りフェーズ中にHologresにプッシュダウンされます。フィルタプッシュダウン操作は、次のフルデータ読み取りシナリオで実行されます。バイナリロギング機能が無効になっているHologresソーステーブルからのフルデータ読み取り、およびHologresコネクタがソーステーブルのフルデータと増分データを使用する場合のバイナリログソーステーブルでのフルデータ読み取り。

    重要

    VVR 6.0.7以降を使用し、ソーステーブルのDDLステートメントでこのオプションを指定してフィルタプッシュダウンを有効にすることで、全体的なパフォーマンスを向上させることをお勧めします。

partition-binlog.mode

パーティションテーブルのバイナリログが使用されるモード。

列挙型

いいえ

DISABLE

  • DISABLE:ソーステーブルはパーティションテーブルではありません。指定されたHologresテーブルがパーティションテーブルの場合、例外が報告されます。

  • DYNAMIC:パーティションテーブルの最新のパーティションが継続的に使用されます。パーティションテーブルでは、動的パーティション化 機能が有効になっている必要があります。動的モードでは、パーティションは古いものから新しいものへと時系列で使用されます。最新のパーティションより前のパーティションのデータが使用されている場合、コネクタは新しい単位時間が到着すると最新のパーティションのデータの使用を開始します。

  • STATIC: パーティションテーブルの固定パーティションが消費されます。複数のパーティションを同時に使用できます。消費プロセス中にパーティションを追加または削除することはできません。デフォルトでは、パーティションテーブルのすべてのパーティションが使用されます。

partition-binlog-lateness-timeout-minutes

パーティションテーブルのデータが動的に消費されるときに、タイムアウトがトリガーされるまでに許容される最大待機時間。

ブール値

いいえ

60

  • 単位:分。

  • 動的モードでは、Hologres コネクタは、新しい単位時間が到着すると、最新のパーティションからデータの消費を開始します。ただし、以前のパーティションの消費をすぐに停止するわけではありません。代わりに、以前のパーティションを継続的に監視して、すべての遅延データが消費されるようにします。

    たとえば、最大待機時間が 60 分の日次パーティションテーブルでは、20240920 パーティションのデータ消費は、00:00:00 で終了するのではなく、2024 年 9 月 21 日の 01:00:00 まで延長されます。

  • オプションの値は、パーティション分割単位時間より大きくすることはできません。

    日次でパーティション分割されたテーブルの場合、このオプションの最大値は 24 × 60 = 1440 分です。動的モードでは、通常、コネクタは一度に 1 つのパーティションを消費します。ただし、定義された最大待機時間中に 2 つのパーティションを並行して消費できます。

partition-values-to-read

パーティションテーブルのデータが静的モードで消費される場合、消費されるパーティション。

String

いいえ

デフォルト値なし

  • このオプションを設定しない場合、Hologres コネクタは静的モードで指定されたテーブルのすべてのパーティションを消費します。 このオプションを設定した場合、コネクタは指定されたパーティションのみを消費します。

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

シンク固有

オプション

説明

データ型

必須

デフォルト値

備考

sdkMode

SDK モード。

文字列

いいえ

jdbc

  • jdbc: JDBC ドライバーを使用してデータが書き込まれます。

  • jdbc_copy: データは jdbc_copy モードで書き込まれます。

    このモードは、ストリーミングデータの書き込みにおいて高性能であり、高スループット、低レイテンシのシナリオに役立ちます。データの削除、パーティションテーブルへの書き込み、または ignoreNullWhenUpdate オプションはサポートしていません。

  • rpc: データは RPC モードで書き込まれます。JSONB 型または RoarinBitmap 型のデータは、Hologres に書き込むことができません。

  • jdbc_fixed (パブリックプレビュー): データは固定 JDBC モードで書き込まれます。

    JDBC モードと比較して、固定 JDBC は接続を占有しません。JSONB 型または RoarinBitmap 型のデータは、Hologres に書き込むことができません。このモードは、データマスキング が有効になっているデータベースへのデータの書き込みをサポートしていません。

さまざまな VVR バージョンでの推奨値については、「注意事項」をご参照ください。

bulkload

データをバルクロードモードで書き込むかどうかを指定します。

ブール値

いいえ

false

sdkMode オプションが jdbc_copy に設定されている場合にのみ、このオプションは有効になります。プライマリキーのないテーブルにデータを書き込む場合は、このモードを有効にします。プライマリキーのあるテーブルにデータを書き込む場合は、例外を回避するためにプライマリキー値の一意性を確保してください。 jdbc_copy モードと比較して、バルクロードモードでデータを書き込むと、消費される Hologres リソースが少なくなります。

説明

このオプションは、VVR 8.0.5 以降と Hologres V2.1 以降を使用する場合にサポートされています。

useRpcMode

RPC モードで Hologres コネクタを使用するかどうかを指定します。

ブール値

いいえ

false

  • true: RPC モードを使用します。

  • false: JDBC モードを使用します。

    JDBC ドライバーには SQL 接続が必要であり、JDBC 接続の数が増加します。

説明
  • このオプションを true に設定することは、sdkModerpc に設定することと同じ効果があります。RPC モードでは、SQL 接続の数が削減されます。推奨構成の詳細については、「注意事項」をご参照ください。

  • property-version=1 の場合、このオプションは使用できません。

mutatetype

データ書き込みモード。

文字列

いいえ

insertorignore

  • insertorignore: 重複するレコードを無視します。

  • insertorreplace: 既存の行を重複するレコードで置き換えます。

  • insertorupdate: 重複レコードの指定されたフィールドを更新し、他のフィールドの値は保持します。

    a (プライマリキー)、bcd の 4 つのフィールドを持つテーブルを考えてみます。シンクテーブルでは、フィールド ab のみが定義されています。受信レコードのプライマリキー値が重複している場合、フィールド b のみが更新され、フィールド cd は変更されません。

説明
  • property-version=0 の場合、デフォルト値は insertorignore です。

  • property-version=1 の場合、デフォルト値は insertorupdate です。

partitionrouter

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

ブール値

いいえ

false

createparttable

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

ブール値

いいえ

false

RPC モードでは、パーティション値にハイフン(-)が含まれている場合、新しいパーティションテーブルを自動的に作成することはできません。

説明
  • VVR 8.0.3 以降では、DATE 型のフィールドをパーティションキーとして使用すると、パーティションテーブルを自動的に作成できます。

  • パーティション値にダーティデータが含まれていないことを確認してください。ダーティデータが存在する場合、無効なパーティションテーブルが作成されるため、フェールオーバーが発生します。このオプションを使用する場合は注意してください。

  • sdk_mode オプションを jdbc_copy に設定した場合、親パーティションテーブルにデータを書き込むことはできません。

ignoredelete

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

ブール値

いいえ

true

説明
  • このオプションは、mutatetype オプションが insertorupdate に設定されている場合にのみ有効です。

  • VVR 8.0.8 以降では、このオプションの代わりに sink.delete-strategy オプションを使用することをお勧めします。両方のオプションが構成されている場合、sink.delete-strategy オプションのみが有効になります。

  • property-version=0 の場合、デフォルト値は true です。

  • property-version=1 の場合、デフォルト値は false です。

sink.delete-strategy

リトラクションメッセージを処理するための戦略を指定します。

文字列

いいえ

デフォルト値なし

有効な値:

  • IGNORE_DELETE: UPDATE_BEFORE メッセージと DELETE メッセージを無視します。これは、データの挿入と更新に焦点を当て、削除を必要としないシナリオに最適です。

  • NON_PK_FIELD_TO_NULL: UPDATE_BEFORE メッセージを無視し、プライマリキー以外の値を null に更新することで DELETE メッセージを処理します。この戦略により、部分更新中に他の列に影響を与えることなく、特定のデータを削除できます。

  • DELETE_ROW_ON_PK: UPDATE_BEFORE メッセージを無視し、プライマリキー値に基づいて行全体を削除することで DELETE メッセージを処理します。この戦略により、部分更新中に行全体を削除できます。

  • CHANGELOG_STANDARD: Flink SQL changelog 標準に準拠します。DELETE メッセージを無視せず、UPDATE メッセージを DELETE の後に INSERT が続くものとして扱い、データの精度を確保します。この戦略は、部分更新のないシナリオに適用されます

説明
  • VVR 8.0.8 以降でのみ、このオプションがサポートされています。

  • このオプションを NON_PK_FIELD_TO_NULL に設定すると、プライマリキー以外の値が null に設定されたレコードが生成される可能性があります。

connectionSize

Realtime Compute for Apache Flink デプロイメントで作成される JDBC 接続プールのサイズ。

整数

いいえ

3

JDBC 接続プールのサイズは、データスループットに比例します。デプロイメントのパフォーマンスが低い場合は、接続プールのサイズを増やしてください。

jdbcWriteBatchSize

JDBC ドライバーが使用されている場合に、Hologres ストリーミングシンクオペレーターが一度に処理できるデータの最大行数。

整数

いいえ

256

単位:行。

説明

上記のすべてのパラメーター(jdbcWriteBatchSizejdbcWriteBatchByteSizejdbcWriteFlushInterval)を指定した場合、システムは関連する条件のいずれかが満たされると、Hologres シンクテーブルにデータを書き込みます。

jdbcWriteBatchByteSize

JDBC ドライバーが使用されている場合に、Hologres ストリーミングシンクノードが一度に処理できるデータの最大バイト数。

長整数

いいえ

2097152 (2 × 1024 × 1024 バイト = 2 MB)

説明

次のオプションのいずれか 1 つのみを指定できます。jdbcWriteBatchSizejdbcWriteBatchByteSizejdbcWriteFlushInterval。すべてを指定した場合、いずれかの条件が満たされると、システムは Hologres シンクテーブルにデータを書き込みます。

jdbcWriteFlushInterval

JDBC ドライバーが使用されている場合に、Hologres ストリーミングシンクノードが複数の行のデータを同時に Hologres に書き込むのを待つために必要な最大時間。

長い

いいえ

10000

単位:ミリ秒。

説明

次のオプションのいずれか 1 つのみを指定できます。jdbcWriteBatchSizejdbcWriteBatchByteSizejdbcWriteFlushInterval。すべてを指定した場合、いずれかの条件が満たされると、システムは Hologres シンクテーブルにデータを書き込みます。

ignoreNullWhenUpdate

mutatetype='insertOrUpdate' が指定されている場合に書き込まれるデータの null 値を無視するかどうかを指定します。

ブール値

いいえ

false

  • false: null 値は Hologres シンクテーブルに書き込まれます。

  • true: 書き込まれるデータ内の NULL 値は無視されます。

説明

sdk_mode オプションを jdbc_copy に設定した場合、このオプションはサポートされません。

connectionPoolName

接続プールの名前です。同じ TaskManager 内で、同じ接続プールが構成されているテーブルは、接続プールを共有できます。

文字列

いいえ

デフォルト値なし

このオプションを 'default' 以外の任意の文字列に設定します。複数のテーブルに同じ接続プールを設定する場合は、これらのテーブルの connectionSize オプションも同じ値に設定する必要があります。

説明
  • VVR 8.0.3 以前: デフォルトでは、各テーブルは独自の接続プールを使用します。

  • VVR 8.0.4 以降: デフォルトでは、同じジョブで同じエンドポイントを使用するテーブルは接続プールを共有します。ジョブ内のテーブルの数が多い場合、接続プール内の接続が不足し、ジョブのパフォーマンスに影響を与える可能性があります。この場合は、異なるテーブルに対して connectionPoolName オプションを異なる値に設定することをお勧めします。

  • 必要に応じて、このオプションを指定します。ディメンションテーブル AB、およびシンクテーブル CDE を含むジョブを考えてみます。AB には接続プール pool1CD には接続プール pool2、大量のデータが処理される E には接続プール pool3 を構成できます。

jdbcEnableDefaultForNotNullColumn

Hologres コネクタが、Hologres テーブルでデフォルト値が設定されていない非 NULL 列に NULL 値が書き込まれた場合に、デフォルト値を補完するかどうかを指定します。

ブール値

いいえ

true

  • true: コネクタは、次のルールに基づいてデフォルト値を入力します。

    • 列の型が STRING の場合、列は空のままになります。

    • 列の型が NUMBER の場合、null 値は 0 に変換されます。

    • 列の型が DATE、TIMESTAMP、または TIMESTAMPTZ の場合、null 値は 1970-01-01 00:00:00 に変換されます。

  • false: コネクタはデフォルト値を入力しません。 null 値が非 null 列に書き込まれた場合、例外が報告されます。

remove-u0000-in-text.enabled

シンクテーブルに書き込まれる STRING データから無効な文字 \u0000 を Hologres コネクタが削除することを許可するかどうかを指定します。

ブール値

いいえ

false

  • false: コネクタは無効な文字を削除しませんが、ダーティデータの識別時に ERROR: invalid byte sequence for encoding "UTF8": 0x00 などのエラーを報告する場合があります。

    このエラーを解決するには、ソーステーブルからダーティデータを手動で削除するか、タスクコードでダーティデータの処理方法を定義します。

  • true: コネクタは無効な文字 \u0000 を削除します。

重要
  • VVR 8.0.1 以降では、このオプションは sdkMode='jdbc' の場合にのみサポートされます。

  • VVR 8.0.8 以降では、このオプションは sdkMode='jdbc_copy' または sdkMode='jdbc' が指定されている場合にのみサポートされます。

  • データに aaa\00bbb などのコンテンツが含まれている場合、このオプションを有効にすると、データの不一致が発生する可能性があります。注意して進めてください。

partial-insert.enabled

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

ブール値

いいえ

false

  • false: シンクテーブルの DDL 文で定義されているすべてのフィールドが更新されます。 INSERT 文で宣言されていないフィールドの値は null に更新されます。

  • true: INSERT 文で定義されているフィールドは、コネクタにプッシュダウンされます。 この方法では、宣言されたフィールドのみが更新または挿入されます。

説明

このオプションは、mutatetype オプションが InsertOrUpdate に設定されている場合にのみ有効になります。

deduplication.enabled

JDBC モードまたは jdbc_fixed モードでデータをバッチ書き込みするときに重複排除を実行するかどうかを指定します。

ブール値

いいえ

true

  • true: プライマリキーの値が同じレコードの中で最新のレコードを保持します。最初の列がプライマリキーとして機能するとします。

    • INSERT (1,'a')INSERT (1,'b') が順番に到着した場合、(1,'b') のみが保持され、Hologres に書き込まれます。

    • レコード (1,'a') が Hologres シンク テーブルにすでに存在し、DELETE (1,'a')INSERT (1,'b') が順番に到着した場合、(1,'b') のみが保持され、Hologres に書き込まれます。これは、削除後に挿入を行うのではなく、直接更新操作と同等です。

  • false: データのバッチ処理中に重複排除は実行されません。現在のバッチにすでに存在するプライマリキーと重複する新しいデータレコードが到着した場合、古いレコードが新しいレコードの前に書き込まれます。

説明
  • VVR 8.0.5 以降のみがこのオプションをサポートしています。

  • すべてのデータが同じプライマリキーを持つ極端なケースでは、重複排除が実行されない場合、データレコードはバッチではなく 1 つずつ書き込まれます。これはタスクのパフォーマンスに影響します。

check-and-put.column

条件付き更新機能を有効にするかどうか、および確認するフィールドの名前を構成するかどうかを指定します。

String

いいえ

デフォルト値なし

このオプションは、Hologres テーブルのフィールド名に設定する必要があります。

重要
  • VVR 8.0.11 以降のみがこのオプションをサポートしています。

  • このオプションは、sdkMode オプションが jdbc_fixed または jdbc に設定されている場合にのみサポートされます。

  • シンク テーブルにはプライマリキーが必要であり、mutateType オプションは Insertorupdate または insertorreplace に設定する必要があります。

  • 逆引き参照が必要な場合は、行ベースのシンク テーブルまたはハイブリッド行-列シンク テーブルを作成することをお勧めします。

  • 重複が多いデータでは、check-and-put 操作は単一の書き込みに縮退し、書き込みパフォーマンスが低下します。

check-and-put.operator

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

String

いいえ

GREATER

このオプションを使用すると、新しいデータレコードのチェックフィールドと、テーブル内の古いデータレコードのチェックフィールドを比較できます。比較結果がこのオプションの値と一致する場合、条件付き更新操作を実行できます。

有効な値:GREATER、GREATER_OR_EQUAL、EQUAL、NOT_EQUAL、LESS、LESS_OR_EQUAL、IS_NULL、および IS_NOT_NULL。

説明

VVR 8.0.11 以降でのみ、このオプションがサポートされています。

check-and-put.null-as

条件付き更新操作を実行するときに、古いデータレコードが null の場合、null 値はこのオプションの有効な値と見なされます。

String

いいえ

デフォルト値なし

PostgreSQL では、任意の値と NULL を比較した結果は FALSE になります。そのため、テーブル内の元のデータが NULL の場合、条件付き更新操作を実行するときに NULL-AS をパラメーターとして設定する必要があります。 NULL-AS パラメーターは、Flink SQL の COALESCE 関数と同じです。

説明

VVR 8.0.11 以後でのみ、このオプションがサポートされています。

aggressive.enabled

アグレッシブコミットモードを有効にするかどうかを指定します。

ブール値

いいえ

false

このオプションを true に設定すると、一度に処理できるデータレコード数が想定数に達していなくても、アイドル接続は強制的にコミットされます。トラフィックが少ない場合、データ書き込みのレイテンシを短縮できます。

説明
  • VVR 8.0.11 以降でのみ、このオプションがサポートされています。

  • このオプションは、sdkMode オプションが jdbc_fixedjdbc、または jdbc_copy に設定されている場合にのみサポートされます。

ディメンションテーブル固有

オプション

説明

データ型

必須

デフォルト値

備考

sdkMode

SDK モード。

文字列

いいえ

jdbc

  • jdbc: JDBC ドライバーを使用してデータがクエリされます。プライマリキーに基づくポイントクエリとプライマリキーに基づかないクエリの両方がサポートされています。ただし、プライマリキーに基づかないクエリはパフォーマンスに大きな影響を与え、低速です。

  • rpc: データは RPC モードでクエリされます。プライマリキーに基づくポイントクエリのみがサポートされています。Hologres ディメンションテーブルを別のテーブルと結合する場合、ディメンションテーブルのプライマリキーのすべてのフィールドを ON 句に指定する必要があります。RPC モードと JDBC モードの違いは、RPC モードは接続を占有せず、Hologres から JSONB 型または RoarinBitmap 型のデータの読み取りをサポートしていないことです。

  • jdbc_fixed: データは固定 JDBC モードでクエリされます。固定 jdbc モードと jdbc モードの違いは、固定 jdbc モードは接続を占有せず、Hologres から JSONB 型または RoarinBitmap 型のデータの読み取りをサポートしていないことです。プライマリキーに基づくポイントクエリのみがサポートされています。Hologres ディメンションテーブルを別のテーブルと結合する場合、ディメンションテーブルのプライマリキーのすべてのフィールドを ON 句に指定する必要があります。このモードは、データマスキング機能が有効になっているデータベースのクエリをサポートしていません。

さまざまな VVR バージョンに推奨される値の詳細については、「注意事項」をご参照ください。

useRpcMode

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

ブール値

いいえ

false

有効な値:

  • true: Hologres コネクタは RPC を使用して接続されます。この設定の効果は、sdkMode オプションを rpc に設定した場合と同じです。RPC を使用すると、SQL 接続の数が削減されます。

  • false: Hologres コネクタは JDBC を使用して接続されます。

    JDBC ドライバーには SQL 接続が必要です。これにより、JDBC 接続の数が増加します。

説明

このオプションを true に設定すると、sdkMode オプションを rpc に設定した場合と同じ効果が得られます。推奨される操作の詳細については、「注意事項」をご参照ください。

connectionSize

ジョブで作成される JDBC 接続プールのサイズ。

整数

いいえ

3

ジョブのパフォーマンスが低い場合は、接続プールのサイズを増やすことをお勧めします。JDBC 接続プールのサイズは、データスループットに比例します。

connectionPoolName

接続プールの名前。同じ TaskManager では、同じ接続プールが構成されているテーブルは、接続プールを共有できます。

文字列

いいえ

デフォルト値なし

'default' 以外の任意の文字列にこのオプションを設定します。複数のテーブルに同じ接続プールを設定する場合は、これらのテーブルの connectionSize オプションも同じ値に設定する必要があります。

説明
  • VVR 8.0.3 以前: デフォルトでは、各テーブルは独自の接続プールを使用します。

  • VVR 8.0.4 以降: デフォルトでは、同じジョブで同じエンドポイントを使用するテーブルは、接続プールを共有します。ジョブ内のテーブルの数が多い場合、接続プール内の接続が不足し、ジョブのパフォーマンスに影響を与える可能性があります。この場合、異なるテーブルに対して connectionPoolName オプションを異なる値に設定することをお勧めします。

  • 必要に応じて、このオプションを指定します。ディメンションテーブル AB、およびシンクテーブル CDE を含むジョブを考えてみます。AB には接続プール pool1 を、CD には接続プール pool2 を、大量のデータが処理される E には接続プール pool3 を構成できます。

jdbcReadBatchSize

Hologres ディメンションテーブルのポイントクエリで同時に処理できるデータレコードの最大数。

整数

いいえ

128

jdbcReadBatchQueueSize

Hologres ディメンションテーブルでポイントクエリを実行するためにスレッドで許可されるキューに入れられたリクエストの最大数。

整数

いいえ

256

jdbcReadTimeoutMs

Hologres ディメンションテーブルでポイントクエリを実行するためのタイムアウト期間。

Long

いいえ

0

デフォルト値 0 は、タイムアウトが許可されていないことを意味します。

jdbcReadRetryCount

Hologres ディメンションテーブルで実行されたポイントクエリがタイムアウトした場合の再試行回数。

整数

いいえ

  • 8.0.5 より前の VVR バージョン: 1

  • VVR 8.0.5 以降: 10

このオプションは、jdbcRetryCount とは異なります。jdbcRetryCount オプションは、接続エラーが発生した場合にデータの読み取りと書き込みに許可される最大再試行回数を指定します。

jdbcScanFetchSize

1 対多のテーブル結合を実行するときに、スキャン操作を呼び出すことによって同時に処理できるデータレコードの数。1 対多のテーブル結合では、完全なプライマリキーは使用されません。

整数

いいえ

256

jdbcScanTimeoutSeconds

スキャン操作の最大タイムアウト期間。

整数

いいえ

60

単位: 秒。

cache

キャッシュポリシー。

文字列

いいえ

None

有効な値:

  • None

  • LRU

cacheSize

キャッシュできるデータ行の最大数。

整数

いいえ

10000

cacheLRU に設定した後に、このオプションを使用できます。単位: 行。

cacheTTLMs

システムがキャッシュをリフレッシュする間隔。

Long

いいえ

備考欄を参照してください。

単位: ミリ秒。cacheTTLMs オプションのデフォルト値は、cache パラメーターの値によって異なります。

  • cache オプションが LRU に設定されている場合、cacheTTLMs オプションはキャッシュのタイムアウト期間を指定します。デフォルトでは、キャッシュエントリは期限切れになりません。

  • cache オプションが None に設定されている場合、cacheTTLMs オプションを構成する必要はありません。これは、キャッシュがタイムアウトしないことを示します。

cacheEmpty

戻り結果が空の JOIN クエリをキャッシュするかどうかを指定します。

ブール値

いいえ

true

  • true: 戻り結果が空の JOIN クエリはキャッシュされます。

  • false: 戻り結果が空の JOIN クエリはキャッシュされません。

    JOIN 文で AND の前の条件が満たされていても、AND の後の条件が満たされていない場合、戻り結果が空の JOIN クエリもキャッシュされます。次のサンプルコードは例を示しています。

    LEFT JOIN latest_emergency FOR SYSTEM_TIME AS OF PROCTIME() AS t2
     ON t1.alarm_id = t2.alarm_id -- 動的アラートが構成されている場合は、一致中にアラート ID を追加します。
     AND CASE
     WHEN alarm_type = 2 THEN t1.dynamic_id = t2.dynamic_alarm_id
     ELSE true
     END

async

非同期モードでデータ同期を有効にするかどうかを指定します。

ブール値

いいえ

false

  • true

  • false

説明

非同期モードでデータを同期する場合、データはソートされません。

Realtime Compute for Apache Flink と Hologres のタイムゾーン

時間の型

サービス

説明

Flink

Flink TIMESTAMP

タイムゾーンのない日付と時刻。 TIMESTAMP 型のデータは、年、月、日、時、分、秒、および秒の小数部を表すタイムスタンプです。 TIMESTAMP 型のデータは、1970-01-01 00:00:04.001 などの文字列です。

Flink TIMESTAMP_LTZ

タイムライン上の絶対的な時点を表すために使用されます。 LONG 型のデータは、エポック時刻からの経過ミリ秒数を示します。 INT 型のデータは、ミリ秒単位のナノ秒数を示します。 エポック時刻とは、Java における 1970 年 1 月 1 日の UTC 00:00:00 を指します。 TIMESTAMP_LTZ 型のデータは、現在のセッションで設定されているタイムゾーンに基づいて、計算と可視化のために解釈されます。 TIMESTAMP_LTZ 型は、エポック時刻に基づいて異なるタイムゾーンで同じ絶対的な時点を表すため、タイムゾーンをまたいだ計算に使用できます。

同じ TIMESTAMP_LTZ 値が、異なるタイムゾーンで異なるローカル TIMESTAMP 値を反映する場合があります。 たとえば、TIMESTAMP_LTZ 値が 2024-03-19T04:00:00Z の場合、上海タイムゾーン(UTC + 08:00)のローカルタイムスタンプは 2024-03-19T12:00:00 と表示されますが、グリニッジタイムゾーン(UTC + 00:00)では 2024-03-19T04:00:00 と表示されます。

Hologres

TIMESTAMP

タイムゾーンのない日付と時刻。これは、Realtime Compute for Apache Flink の TIMESTAMP 型に似ています。 Hologres の TIMESTAMP 型のデータは、Hologres クライアントのタイムゾーンが変更されても変更されません。 たとえば、TIMESTAMP 型のデータは、2022-01-01 01:01:01.123456 として表現できます。

TIMESTAMP WITH TIME ZONE (TIMESTAMPTZ)

タイムゾーン付きの日付と時刻。これは、Realtime Compute for Apache Flink の TIMESTAMP_LTZ 型に似ています。 Hologres が TIMESTAMPTZ データを保存する場合、Hologres はデータを UTC のタイムゾーンの値に変換します。 データを照会すると、Hologres はクライアントのタイムゾーンパラメーターに基づいて、UTC のタイムゾーンの値をクライアントのタイムゾーンの値に変換します。

たとえば、北京(UTC + 08:00)のタイムゾーンのタイムスタンプが 2022-02-01 10:33:20.125+08 で、タイムスタンプが Hologres に TIMESTAMPTZ 型として保存されている場合、タイムスタンプは 2022-02-01 10:33:20.125+08 と表現されます。

タイムゾーンのマッピング

  • VVR 8.0.6 以後で type-mapping.timestamp-converting.legacy オプションを false に設定すると、Realtime Compute for Apache Flink と Hologres 間ですべての 時間の型 の変換を実行できます。

    Flink

    Hologres

    説明

    TIMESTAMP

    TIMESTAMP

    時間の型の変換は、タイムゾーンの変換なしで実行されます。 Hologres からデータを読み取ったり、Hologres にデータを書き込んだりする場合は、このタイプの時間の型の変換を使用することをお勧めします。

    TIMESTAMP LTZ

    TIMESTAMPTZ

    TIMESTAMP

    TIMESTAMPTZ

    時間の型の変換は、タイムゾーンの変換とともに行われます。 変換中の精度を維持するには、table.local-time-zone を使用して Flink タイムゾーンを設定する必要があります。 詳細については、「実行中のデプロイメントのカスタムパラメーターを設定するにはどうすればよいですか。」をご参照ください。

    たとえば、'table.local-time-zone': 'Asia/Shanghai' を指定して、Realtime Compute for Apache Flink のタイムゾーンを上海のタイムゾーン(UTC + 08:00)に設定します。 Realtime Compute for Apache Flink から Hologres に TIMESTAMP 型のデータ 2022-01-01 01:01:01.123456 を書き込むと、データは TIMESTAMPTZ 型の 2022-01-01 01:01:01:01.123456+8 に変換されます。

    TIMESTAMP LTZ

    TIMESTAMP

  • VVR 8.0.6 以降で type-mapping.timestamp-converting.legacy=true を指定した場合、または VVR 8.0.5 以前の場合、TIMESTAMP 型の変換を除き、時間の型の変換中にデータの偏差が発生する可能性があります。

    Flink

    Hologres

    注記

    TIMESTAMP

    TIMESTAMP

    時間の型の変換は、タイムゾーンの変換なしで実行されます。 Hologres からデータを読み取ったり、Hologres にデータを書き込んだりする場合は、このタイプの時間の型の変換を使用することをお勧めします。

    TIMESTAMP LTZ

    TIMESTAMPTZ

    Realtime Compute for Apache Flink が Hologres からデータを読み取ったり、Hologres にデータを書き込んだりする際に、TIMESTAMP LTZ 型と TIMESTAMPTZ 型のデータは、タイムゾーンのない時間として表現されます。 これにより、データの偏差が発生する可能性があります。

    たとえば、Realtime Compute for Apache Flink の TIMESTAMP_LTZ 型のデータが 2024-03-19T04:00:00Z の場合、上海(UTC + 08:00)のタイムゾーンのない時間は 2024-03-19T12:00:00 です。 ただし、Hologres にデータが書き込まれると、2024-03-19T04:00:00 がタイムゾーンのない時間として使用され、Hologres の TIMESTAMPTZ 型の 2024-03-19T04:00:00+08 に変換されます。 これにより、8 時間のデータの偏差が発生します。

    TIMESTAMP

    TIMESTAMPTZ

    タイムゾーンの変換は、Realtime Compute for Apache Flink のタイムゾーンではなく、ランタイム環境の JVM のタイムゾーンに基づいて実行されます。 これは、Realtime Compute for Apache Flink のタイムゾーンの変換とは異なります。 Realtime Compute for Apache Flink のタイムゾーンが JVM のタイムゾーンと異なる場合、データの偏差が発生する可能性があります。 Realtime Compute for Apache Flink のタイムゾーンに基づいて Hologres からデータを読み取ったり、Hologres にデータを書き込んだりすることをお勧めします。

    TIMESTAMP LTZ

    TIMESTAMP