Delta Lake Catalog是一種External Catalog,StarRocks從2.5版本開始支援。
背景資訊
通過Delta Lake Catalog,您可以:
不需要執行資料匯入就可以直接查詢Delta Lake裡的資料。
通過INSERT INTO將Delta Lake內的資料進行加工建模,並匯入至StarRocks。
為保證正常訪問Delta Lake內的資料,StarRocks叢集必須能夠訪問Delta Lake叢集的儲存系統和中繼資料服務。目前StarRocks支援以下儲存系統和中繼資料服務:
Distributed File System(HDFS)或阿里雲Object Storage Service。
中繼資料服務。當前支援的中繼資料服務包括Hive Metastore(以下簡稱HMS)、資料湖構建(DLF)。
使用說明
StarRocks查詢Delta Lake資料時,支援Parquet檔案格式。Parquet檔案支援SNAPPY、LZ4、ZSTD、GZIP和NO_COMPRESSION壓縮格式。
StarRocks查詢Delta Lake資料時,不支援MAP和STRUCT資料類型。
建立Delta Lake Catalog
文法
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "deltalake",
MetastoreParams
)參數說明
catalog_name:Delta Lake Catalog的名稱,必選參數。命名要求如下:必須由字母(a~z或A~Z)、數字(0~9)或底線(_)組成,並且只能以字母開頭。
總長度不能超過64個字元。
Catalog名稱大小寫敏感。
comment:Delta Lake Catalog的描述,此參數為可選。type:資料來源的類型,設定為Delta Lake。MetastoreParams:StarRocks訪問Delta Lake叢集中繼資料服務的相關參數配置。Delta Lake使用的中繼資料服務不同,參數的配置也不同。使用HMS
屬性
說明
hive.metastore.type
Delta Lake叢集所使用的中繼資料服務的類型,設定為
hive。hive.metastore.uris
Hive MetaStore的URI。格式為
thrift://<Hive MetaStore的IP地址>:<連接埠號碼>,連接埠號碼預設為9083。使用DLF
屬性
說明
hive.metastore.type
Delta Lake叢集所使用的中繼資料服務的類型,設定為
dlf。dlf.catalog.id
DLF中已有的資料目錄ID。如果未配置
dlf.catalog.id參數的值,則系統將使用預設的DLF Catalog。
樣本
以下樣本建立了一個名為Delta Lake_catalog_hms的Delta Lake Catalog。
CREATE EXTERNAL CATALOG deltalake_catalog_hms
PROPERTIES
(
"type" = "deltalake",
"hive.metastore.type" = "hive",
"hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083"
);查看Delta Lake Catalog
您可以通過SHOW CATALOGS查詢當前所在StarRocks裡所有Catalog。
SHOW CATALOGS;您也可以通過SHOW CREATE CATALOG查詢某個External Catalog的建立語句。例如,通過如下命令查詢Delta Lake Catalogdeltalake_catalog_hms的建立語句。
SHOW CREATE CATALOG deltalake_catalog_hms;切換Delta Lake Catalog和資料庫
您可以通過如下方法切換至目標Delta Lake Catalog和資料庫:
先通過
SET CATALOG指定當前會話生效的Delta Lake Catalog,然後再通過USE指定資料庫。-- 切換當前會話生效的Catalog。 SET CATALOG <catalog_name>; -- 指定當前會話生效的資料庫。 USE <db_name>;通過USE直接將會話切換到目標Delta Lake Catalog下的指定資料庫。
USE <catalog_name>.<db_name>;
刪除Delta Lake Catalog
您可以通過DROP CATALOG刪除某個External Catalog。
例如,通過以下命令刪除deltalake_catalog_hms。
DROP Catalog deltalake_catalog_hms;查看Delta Lake表結構
您可以通過如下方法查看Delta Lake表的表結構。
查看錶結構
DESC[RIBE] <catalog_name>.<database_name>.<table_name>;從CREATE命令查看錶結構和表檔案存放位置
SHOW CREATE TABLE <catalog_name>.<database_name>.<table_name>;
查詢Delta Lake表資料
通過SHOW DATABASES查看指定Catalog所屬的Delta Lake叢集中的資料庫。
SHOW DATABASES FROM <catalog_name>;切換至目標Delta Lake Catalog和資料庫。
通過SELECT查詢目標資料庫中的目標表。
SELECT count(*) FROM <table_name> LIMIT 10;
匯入Delta Lake資料
假設StarRocks的內部資料有一張OLAP表,表名為olap_tbl。您可以這樣來轉換該表中的資料,並把資料匯入到StarRocks中。
INSERT INTO default_catalog.olap_db.olap_tbl SELECT * FROM deltalake_table;相關文檔
Delta Lake更多介紹,請參見Delta Lake概述。