配置DLF Catalog後,您可以在Realtime Compute開發控制台直接存取DLF執行個體中的表,無需再手動註冊DLF表,提高作業開發的效率且保證資料的正確性。本文為您介紹如何建立、查看、使用及刪除DLF Catalog。
背景資訊
阿里雲資料湖構建(Data Lake Formation,簡稱DLF)是阿里雲官方提供的一款統一中繼資料管理的產品。您可以方便地藉助DLF產品來管理建立的表格,這些表格的格式可以是開源格式,例如Iceberg、Hudi、Delta、Parquet、ORC或Avro等。
本文將從以下方面為您介紹如何管理DLF Catalog:
前提條件
已開通阿里雲資料湖構建服務
使用限制
僅Flink計算引擎vvr-4.0.12-flink-1.13及以上版本支援配置DLF Catalog。
Flink在DLF Catalog下僅支援管理Iceberg和Hudi兩種資料湖格式。
建立DLF Catalog
支援UI與SQL命令兩種方式配置DLF Catalog,推薦使用UI方式配置DLF Catalog。
UI方式
進入中繼資料管理頁面。
單擊目標工作空間操作列下的控制台。
單擊中繼資料管理。
在中繼資料管理頁面,單擊建立Catalog。
單擊DLF後,單擊下一步。
建立DLF Catalog。
配置Catalog資訊。
配置項
說明
是否必填
備忘
catalogname
DLF Catalog名稱。
是
請填寫為自訂的英文名。
access.key.id
訪問OSS服務所需的阿里雲Access Key。
是
擷取方法請參見擷取AccessKey。
access.key.secret
訪問OSS服務所需的阿里雲Access Secret。
是
擷取方法請參見擷取AccessKey。
warehouse
DLF Catalog中表預設的OSS存放路徑,OSS服務中所指定的數倉目錄。
是
支援OSS和OSS-HDFS兩種服務。
OSS路徑格式為
oss://<bucket>/<object>
。OSS-HDFS路徑格式為
oss://<bucket>.<oss-hdfs-endpoint>/<object>
。
其中:
bucket:表示您建立的OSS Bucket名稱。您可以在OSS管理主控台上查看。
object:表示您存放資料的路徑。您可以在OSS管理主控台上查看。
oss-hdfs-endpoint:表示OSS-HDFS服務Endpoint。您可以在OSS管理主控台Bucket的概覽頁面的訪問連接埠中查看HDFS服務的Endpoint資訊。
說明僅Flink計算引擎VVR 8.0.3及以上版本支援該參數配置為OSS-HDFS路徑。
oss.endpoint
阿里雲Object Storage Service服務OSS的Endpoint。OSS的 endpoint 地址,例如
oss-cn-hangzhou-internal.aliyuncs.com
是
支援OSS和OSS-HDFS兩種服務。
OSS服務Endpoint,詳情參見訪問網域名稱和資料中心。
OSS-HDFS服務Endpoint,您可以在OSSBucket概覽頁面的訪問連接埠中查看HDFS服務的Endpoint資訊。
說明推薦您為oss.endpoint參數配置OSS的VPC Endpoint。例如,如果您選擇的地區為cn-hangzhou地區,則oss.endpoint需要配置為oss-cn-hangzhou-internal.aliyuncs.com。
如果您需要跨VPC訪問OSS,則請參見如何訪問跨VPC的其他服務?
dlf.endpoint
表示阿里雲DLF服務的Endpoint。
是
說明推薦您為dlf.endpoint參數配置DLF的VPC Endpoint。例如,如果您選擇的地區為cn-hangzhou地區,則dlf.endpoint參數需要配置為dlf-vpc.cn-hangzhou.aliyuncs.com。
如果您需要跨VPC訪問DLF,則請參見如何訪問跨VPC的其他服務?。
dlf.region-id
阿里雲DLF服務的地區名,DLF所在地區。
是
說明請和dlf.endpoint選擇的地區保持一致。
更多配置
設定其他DLF配置,例如指定多個DLF Catalog,配置多個DLF Catalog請換行分隔。
否
例如:
dlf.catalog.id:my_catalog
。單擊確定。
建立完成後,中繼資料地區下即可查看建立Catalog。
SQL方式
在查詢指令碼文本編輯地區,輸入配置DLF Catalog的命令。
CREATE CATALOG <yourcatalogname> WITH ( 'type' = 'dlf', 'access.key.id' = '<YourAliyunAccessKeyId>', 'access.key.secret' = '<YourAliyunAccessKeySecret>', 'warehouse' = '<YourAliyunOSSLocation>', 'oss.endpoint' = '<YourAliyunOSSEndpoint>', 'dlf.region-id' = '<YourAliyunDLFRegionId>', 'dlf.endpoint' = '<YourAliyunDLFEndpoint>' );
參數
說明
是否必填
備忘
yourcatalogname
自訂DLF Catalog名稱。
是
請填寫為自訂的英文名。
重要參數替換為您的Catalog名稱後,需要去掉角括弧(<>),否則語法檢查會報錯。
type
類型。
是
固定值為dlf。
access.key.id
阿里雲帳號的AccessKey ID。
是
擷取方法請參見擷取AccessKey。
access.key.secret
阿里雲帳號的AccessKey Secret。
是
擷取方法請參見擷取AccessKey。
warehouse
DLF Catalog中表預設的OSS存放路徑。
是
格式為oss://<bucket>/<object>。其中:
bucket:表示您建立的OSS Bucket名稱。
object:表示您存放資料的路徑。
說明請在OSS管理主控台上查看您的bucket和object名稱。
oss.endpoint
阿里雲Object Storage Service服務OSS的Endpoint。
是
請詳情參見訪問網域名稱和資料中心。
說明推薦您為oss.endpoint參數配置OSS的VPC Endpoint。例如,如果您選擇的地區為cn-hangzhou地區,則oss.endpoint需要配置為oss-cn-hangzhou-internal.aliyuncs.com。
如果您需要跨VPC訪問OSS,則請參見如何訪問跨VPC的其他服務?
dlf.endpoint
阿里雲DLF服務的Endpoint。
是
說明推薦您為dlf.endpoint參數配置DLF的VPC Endpoint。例如,如果您選擇的地區為cn-hangzhou地區,則dlf.endpoint參數需要配置為dlf-vpc.cn-hangzhou.aliyuncs.com。
如果您需要跨VPC訪問DLF,則請參見如何訪問跨VPC的其他服務?。
dlf.region-id
阿里雲DLF服務的地區名。
是
說明請和dlf.endpoint選擇的地區保持一致。
選中建立Catalog的代碼後,單擊左側程式碼數上的運行。
在左側中繼資料地區,查看建立的Catalog。
查看DLF Catalog
DLF Catalog建立成功後,您可以通過以下步驟查看DLF中繼資料。
進入中繼資料管理頁面。
單擊目標工作空間操作列下的控制台。
單擊中繼資料管理。
在Catalog列表頁面,查看Catalog名稱和類型。
說明如果您需要查看目標Catalog下的資料庫和表,請單擊查看。
使用DLF Catalog
管理DLF資料庫
在查詢指令碼文本編輯地區,輸入如下語句,選中代碼後單擊運行。建立或者刪除完成後,你可以在SQL開發頁面左側,單擊中繼資料進行確認。
建立資料庫
CREATE DATABASE dlf.dlf_testdb;
刪除資料庫
DROP DATABASE dlf.dlf_testdb;
管理DLF表
建立表
通過連接器建立
SQL方式
在查詢指令碼文本編輯地區,輸入如下語句,選中代碼後單擊運行。建立完成後,你可以在SQL開發頁面左側,單擊中繼資料,就可以查看到您建立的表。
CREATE TABLE dlf.dlf_testdb.iceberg ( id BIGINT, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'iceberg' ); CREATE TABLE dlf.dlf_testdb.hudi ( id BIGINT PRIMARY KEY NOT ENFORCED, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'hudi' );
UI方式
進入中繼資料管理頁面。
單擊目標工作空間操作列下的控制台。
單擊中繼資料管理。
單擊目標Catalog名稱對應操作列的查看。
單擊目標資料庫名稱對應操作列的查看。
單擊建立表。
在使用內建連接器串連頁簽,單擊串連方式,選擇表類型。
單擊下一步。
填寫建表語句並配置相關參數資訊。程式碼範例如下。
CREATE TABLE dlf.dlf_testdb.iceberg ( id BIGINT, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'iceberg' ); CREATE TABLE dlf.dlf_testdb.hudi ( id BIGINT PRIMARY KEY NOT ENFORCED, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'hudi' );
單擊確定。
快速建立相同表結構的表(該方式僅Iceberg表支援)
在查詢指令碼文本編輯地區,輸入如下語句,選中代碼後單擊運行。
CREATE TABLE iceberg_table_like LIKE iceberg_table;
刪除表
DROP TABLE iceberg_table;
修改Iceberg表結構
在查詢指令碼文本編輯地區輸入如下命令,選中代碼後單擊運行。
操作 | 程式碼範例 |
更改表屬性 |
|
重新命名 |
|
更改列名字 |
說明 僅Realtime Compute引擎VVR 8.0.7及以上版本支援。 |
更改資料類型 |
更改列的類型需要符合以下規則:
說明 僅Realtime Compute引擎VVR 8.0.7及以上版本支援。 |
寫入資料
INSERT INTO dlf.dlf_testdb.iceberg VALUES (1, 'AAA', '2022-02-01'), (2, 'BBB', '2022-02-01');
INSERT INTO dlf.dlf_testdb.hudi VALUES (1, 'AAA', '2022-02-01'), (2, 'BBB', '2022-02-01');
讀取資料
SELECT * FROM dlf.dlf_testdb.iceberg LIMIT 2;
SELECT * FROM dlf.dlf_testdb.hudi LIMIT 2;
刪除DLF Catalog
刪除DLF Catalog不會影響已啟動並執行作業,但會導致使用該Catalog下表的作業,在上線或重啟時報無法找到該表的錯誤,請您謹慎操作。
支援UI與SQL命令兩種方式刪除DLF Catalog,推薦使用UI方式刪除DLF Catalog。
UI方式
進入中繼資料管理頁面。
單擊目標工作空間操作列下的控制台。
單擊中繼資料管理。
在Catalog列表頁面,單擊目標Catalog名稱對應操作列的刪除。
在彈出的提示頁面中,單擊刪除。
在左側中繼資料下,查看目標Catalog是否已被刪除。
SQL方式
在查詢指令碼文本編輯地區,輸入以下命令。
DROP CATALOG ${catalog_name}
其中,catalog_name為您要刪除的在Realtime Compute開發控制台上顯示的DLF Catalog名稱。
選中刪除Catalog的命令,滑鼠右鍵選擇運行。
在左側中繼資料地區,查看目標Catalog是否已刪除。
相關文檔
Iceberg連接器的使用方法,詳情請參見Iceberg。
Hudi連接器的使用方法,詳情請參見Hudi。
如果內建的Catalog無法滿足您的業務需求,您可以使用自訂Catalog,詳情請參見管理自訂Catalog。