本文為您介紹在獨享Blink中如何建立即時數倉Hologres源表。
使用說明
Hologres源表預設使用批模式讀取資料,即對全表資料僅掃描一次。掃描結束,消費即結束,掃描結束後輸入的資料將不會被Hologres源表讀取。如果您需要使用即時消費Hologres的資料,請參見訂閱Hologres Binlog。
使用限制
Hologres支援使用Holo-blink Connector將Hologres表作為源表讀取資料並進行維表Join,其使用限制如下:
-
預設只能讀取行儲存格式的表資料。如果要讀取列儲存格式表的資料,需要配置
bulkread='true'。 -
建立行儲存表時,如果該表設定了主鍵,必須將主鍵配置為clustering key才能工作。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; -
Blink獨享模式3.6以下的版本未支援Hologres資料來源,您需要使用Hologres Connector,並引用相關JAR檔案,才可以進行作業。請您加入即時數倉Hologres交流群聯絡對應的支援人員擷取JAR檔案,並在作業中使用如下DDL語句建立Hologres源表,詳情請參見如何擷取更多的線上支援?。
DDL定義
-
Blink獨享模式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網路的Endpoint。 `username` = '<yourUsername>', --當前阿里雲帳號的AccessKey ID。 `password` = '<yourPassword>', --當前阿里雲帳號的AccessKey Secret。 `dbname` = '<yourDbname>', --Hologres的資料庫名稱。 `tablename` = '<yourTablename>', --Hologres用於接收資料的表名稱。 `bulkread`='true' );
With參數的描述如下表所示。
|
參數 |
描述 |
是否必填 |
|
type |
資料來源類型。 預設為hologres。 |
是 |
|
dbname |
Hologres的資料庫名稱。 |
是 |
|
tablename |
Hologres用於接收資料的表名稱。 |
是 |
|
username |
當前阿里雲帳號的AccessKey ID。 您可以登入AccessKey 管理,擷取AccessKey ID。 |
是 |
|
password |
當前阿里雲帳號的AccessKey Secret。 您可以登入AccessKey 管理,擷取AccessKey Secret。 |
是 |
|
endpoint |
Hologres的VPC網路地址。 您可以登入Hologres管控台,進入目標執行個體的詳情頁,在網絡資訊中擷取Endpoint。Endpoint需包含連接埠號碼,格式為ip:port。 |
是 |
|
bulkread |
參數取值如下:
說明
如果您需要使用Hologres的列儲存表作為源表進行作業,則需要配置該參數為true。 |
是 |
資料類型映射
Blink獨享的資料類型與Hologres的資料類型映射,請參見資料類型匯總。
Blink即時消費Hologres Binlog
Realtime ComputeBlink 3.7及以上版本,支援Hologres Connector即時消費Binlog,請參見Flink/Blink即時消費Hologres Binlog。