このトピックでは、排他モードのBlinkを使用してHologresソーステーブルを作成する方法について説明します。
使用上の注意
デフォルトでは、HologresソーステーブルはバッチモードでHologresテーブルからデータを読み取ります。この場合、Hologresテーブルのすべてのデータは1回だけスキャンされます。 Hologresソーステーブルは、スキャン後にHologresテーブルにインポートされたデータを読み取りません。 Hologresのデータをリアルタイムで消費する場合は、Hologresバイナリログをサブスクライブする必要があります。 詳細については、「Hologresバイナリログのサブスクライブ」をご参照ください。
制限事項
Hologresでは、Holo-blinkコネクタを使用して、Hologresソーステーブルからデータを読み取り、ディメンションテーブルを結合できます。 Holo-blinkコネクタには、次の制限があります。
デフォルトでは、Holo-blinkコネクタを使用して、[行指向] テーブルからのみデータを読み取ることができます。 列指向テーブルからデータを読み取る場合は、コードに
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;
Hologres接続は、 V3.6より前のバージョンの排他モードのBlinkではサポートされていません。 Holo-blinkコネクタを使用し、関連するJARファイルを参照して、Hologresソーステーブルを作成する必要があります。 JARファイルを取得し、データ定義言語(DDL)ステートメントを実行してHologresソーステーブルを作成するには、DingTalkグループのテクニカルサポートにお問い合わせください。 オンラインテクニカルサポートの入手方法の詳細については、「Hologresのオンラインサポートの入手」をご参照ください。
DDL構文
Hologres接続は、 V3.6以降の排他モードのBlinkでサポートされています。 たとえば、次のステートメントを実行して、Hologresソーステーブルを作成できます。
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シークレット。 `dbname` = '<yourDbname>', -- 接続先のHologresデータベースの名前。 `tablename` = '<yourTablename>', -- データを読み取るHologresテーブルの名前。 `bulkread`='true' );
次の表に、withオブジェクトのパラメーターを示します。
パラメーター | 説明 | 必須 |
type | データソースのタイプ。 デフォルト値:[hologres]。 | はい |
dbname | 接続先のHologresデータベースの名前。 | はい |
tablename | データを読み取るHologresテーブルの名前。 | はい |
username | Alibaba CloudアカウントのAccessKey ID。 [アクセスキーペア] ページでAccessKey IDを取得できます。 | はい |
password | Alibaba CloudアカウントのAccessKeyシークレット。 [アクセスキーペア] ページでAccessKeyシークレットを取得できます。 | はい |
endpoint | HologresインスタンスのVPCエンドポイント。 [Hologresコンソール] のインスタンス詳細ページの [ネットワーク情報] セクションで、Hologresインスタンスのエンドポイントを表示できます。 VPCエンドポイントにはポート番号を含める必要があり、IPアドレス:ポート番号の形式に従う必要があります。 | はい |
bulkread | 有効な値:
説明 列指向テーブルをHologresソーステーブルとして使用する必要がある場合は、このパラメーターを [true] に設定します。 | はい |
データ型のマッピング
排他モードのBlinkでサポートされているデータ型とHologresでサポートされているデータ型のマッピングについては、「データ型」をご参照ください。
排他モードのBlinkを使用してHologresバイナリログをリアルタイムで消費する
BlinkベースのRealtime Compute V3.7以降では、Holo-blinkコネクタを使用してバイナリログをリアルタイムで消費できます。 詳細については、「Realtime Compute for Apache FlinkまたはBlinkを使用してHologresバイナリログをリアルタイムで消費する」をご参照ください。