Delta Lake カタログは、StarRocks がバージョン 2.5 からサポートする外部カタログの一種です。
背景
Delta Lake カタログを使用すると、次のことができます。
データをインポートせずに Delta Lake のデータを直接クエリする。
INSERT INTO 文を使用して Delta Lake のデータを処理およびモデル化し、StarRocks にインポートする。
Delta Lake のデータに正常にアクセスできるようにするには、StarRocks クラスターが Delta Lake クラスターのストレージシステムとメタデータサービスにアクセスできる必要があります。 現在、StarRocks は次のストレージシステムとメタデータサービスをサポートしています。
分散ファイルシステム (HDFS) または Alibaba Cloud Object Storage Service (OSS)。
メタデータサービス。 現在サポートされているメタデータサービスには、Hive Metastore (HMS) と Data Lake Formation (DLF) があります。
使用上の注意
StarRocks が Delta Lake データをクエリする場合、Parquet ファイル形式をサポートします。 Parquet ファイルは、SNAPPY、LZ4、ZSTD、GZIP、および NO_COMPRESSION 圧縮形式をサポートします。
StarRocks が Delta Lake データをクエリする場合、MAP および STRUCT データの型はサポートされません。
Delta Lake カタログの作成
構文
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "deltalake",
MetastoreParams
)パラメーター
catalog_name: Delta Lake カタログの名前。 このパラメーターは必須です。 名前は次の要件を満たす必要があります。名前に使用できるのは、文字、数字、アンダースコア (_) です。 文字で始まる必要があります。
名前の長さは 1〜64 文字である必要があります。
名前では大文字と小文字が区別されます。
comment: Delta Lake カタログの説明。 このパラメーターはオプションです。type: データソースのタイプ。 このパラメーターをDelta Lakeに設定します。MetastoreParams: StarRocks が Delta Lake クラスターのメタデータサービスにアクセスするためのパラメーター。 パラメーター構成は、Delta Lake で使用されるメタデータサービスによって異なります。HMS の使用
プロパティ
説明
hive.metastore.type
Delta Lake クラスターで使用されるメタデータサービスのタイプ。 このパラメーターを
hiveに設定します。hive.metastore.uris
Hive Metastore サービスの Uniform Resource Identifier (URI)。 フォーマットは
thrift://<Hive MetaStore の IP アドレス>:<ポート番号>です。 デフォルトのポート番号は 9083 です。DLF の使用
プロパティ
説明
hive.metastore.type
Delta Lake クラスターで使用されるメタデータサービスのタイプ。 このパラメーターを
dlfに設定します。dlf.catalog.id
DLF 内の既存のデータカタログの ID。
dlf.catalog.idパラメーターを構成しない場合、システムはデフォルトの DLF カタログを使用します。
例
次の例では、Delta Lake_catalog_hms という名前の Delta Lake カタログを作成します。
CREATE EXTERNAL CATALOG deltalake_catalog_hms
PROPERTIES
(
"type" = "deltalake",
"hive.metastore.type" = "hive",
"hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083"
);Delta Lake カタログの表示
SHOW CATALOGS を使用して、現在の StarRocks インスタンス内のすべてのカタログをクエリできます。
SHOW CATALOGS;また、SHOW CREATE CATALOG を使用して、特定の外部カタログの作成文をクエリすることもできます。 たとえば、次のコマンドを使用して、Delta Lake カタログ deltalake_catalog_hms の作成文をクエリします。
SHOW CREATE CATALOG deltalake_catalog_hms;Delta Lake カタログとデータベースの切り替え
次のメソッドを使用して、ターゲットの Delta Lake カタログとデータベースに切り替えることができます。
まず、
SET CATALOGを使用して現在のセッションの Delta Lake カタログを指定し、次に USE を使用してデータベースを指定します。-- 現在のセッションのカタログを切り替えます。 SET CATALOG <catalog_name>; -- 現在のセッションのデータベースを指定します。 USE <db_name>;USE 文を使用して、セッションをターゲットの Delta Lake カタログ下の指定されたデータベースに直接切り替えます。
USE <catalog_name>.<db_name>;
Delta Lake カタログの削除
DROP 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 を使用して、指定されたカタログに関連付けられている Delta Lake クラスター内のデータベースを表示します。
SHOW DATABASES FROM <catalog_name>;ターゲットの Delta Lake カタログとデータベースに切り替えます。
SELECT を使用して、ターゲットデータベース内のターゲットテーブルをクエリします。
SELECT count(*) FROM <table_name> LIMIT 10;
Delta Lake データのインポート
StarRocks に olap_tbl という名前の内部 OLAP テーブルがあるとします。 このテーブルのデータを変換して、次のように StarRocks にインポートできます。
INSERT INTO default_catalog.olap_db.olap_tbl SELECT * FROM deltalake_table;参照
Delta Lake の詳細については、「DeltaLake」をご参照ください。