このトピックでは、Flink 排他モードで Hologres ソーステーブルを作成する方法について説明します。
使用上の注意
デフォルトでは、Hologres ソーステーブルはテーブル全体を一度スキャンすることで、バッチモードでデータを読み取ります。スキャンが完了すると、データ消費は停止します。ソーステーブルは、スキャン後に書き込まれたデータを読み取りません。Hologres からリアルタイムでデータを消費するには、「Hologres バイナリログのサブスクライブ」をご参照ください。
制限事項
Holo-blink コネクタを使用して Hologres ソーステーブルからデータを読み取り、ディメンションテーブルと結合できます。次の制限事項が適用されます。
-
デフォルトでは、行ストアフォーマットのテーブルからのみデータを読み取ることができます。列ストアフォーマットのテーブルからデータを読み取るには、
bulkread='true'パラメーターを設定します。 -
プライマリキーを持つ行ストアテーブルを作成する場合、プライマリキーをクラスタリングキーとしても設定する必要があります。次の例は、Hologres ソーステーブルを作成するための文を示しています。
begin; create table test(a int primary key, b text, c text[], d float8, e int8); call set_table_property('test', 'orientation', 'row'); call set_table_property('test', 'clustering_key', 'a'); commit; -
3.6 より前のバージョンの Flink 排他モードは、データソースとして Hologres をサポートしていません。ジョブを実行するには、Hologres コネクタを使用し、関連する JAR ファイルを参照する必要があります。JAR ファイルを入手するには、Hologres の交換用 DingTalk グループに参加してテクニカルサポートにご連絡ください。その後、ジョブで次のデータ定義言語 (DDL) 文を使用して、Hologres ソーステーブルを作成します。詳細については、「オンラインサポートの利用方法」をご参照ください。
DDL 定義
-
Flink 排他モード 3.6 以降は、データソースとして Hologres をサポートしています。Hologres ソーステーブルを作成するための DDL 文は次のとおりです。
CREATE TABLE holo_dim_table ( pk VARCHAR ,seller_id VARCHAR ,seller_bc_type VARCHAR ,seller_tag VARCHAR ,PRIMARY KEY (pk) ) with ( type = 'hologres', `endpoint` = '<yourEndpoint>', --Hologres インスタンスの VPC ネットワークのエンドポイント。 `username` = '<yourUsername>', --ご利用の Alibaba Cloud アカウントの AccessKey ID。 `password` = '<yourPassword>', --ご利用の Alibaba Cloud アカウントの AccessKey Secret。 `dbname` = '<yourDbname>', --Hologres データベースの名前。 `tablename` = '<yourTablename>', --データを受信する Hologres テーブルの名前。 `bulkread`='true' );
次の表に、WITH 句のパラメーターを示します。
パラメーター | 説明 | 必須 |
type | データソースのタイプ。 デフォルト値: hologres。 | はい |
dbname |
Hologres データベースの名前。 |
はい |
tablename |
データを受信する Hologres テーブルの名前。 |
はい |
username |
ご利用の Alibaba Cloud アカウントの AccessKey ID。 AccessKey 管理コンソールにログインして AccessKey ID を取得します。 |
はい |
password |
ご利用の Alibaba Cloud アカウントの AccessKey Secret。 AccessKey 管理コンソールにログインして AccessKey Secret を取得します。 |
はい |
endpoint |
Hologres インスタンスの VPC ネットワークアドレス。 Hologres コンソールにログインします。宛先インスタンスの製品ページに移動し、Network Information セクションでエンドポイントを見つけます。エンドポイントには、ip:port 形式でポート番号を含める必要があります。 |
はい |
bulkread |
有効な値:
説明
ジョブのソーステーブルとして Hologres 列ストアテーブルを使用する場合は、このパラメーターを true に設定します。 |
はい |
データ型のマッピング
Flink 排他モードと Hologres 間のデータ型のマッピングの詳細については、「データ型」をご参照ください。
Flink を使用した Hologres バイナリログのリアルタイム消費
Real-time Computing for Flink バージョン 3.7 以降では、Hologres コネクタを使用したバイナリログのリアルタイム消費がサポートされています。詳細については、「Flink/Blink を使用した Hologres バイナリログのリアルタイム消費」をご参照ください。