Data Lake Formation (DLF) は、Paimon のメタデータとデータを格納および管理するためのフルマネージドサービスです。複数のストレージ最適化ポリシーをサポートし、安全でパフォーマンスの高いデータレイク管理を提供します。このトピックでは、EMR Serverless StarRocks で Alibaba Cloud DLF カタログを使用する方法について説明します。
背景情報
Alibaba Cloud Data Lake Formation (DLF) は、統合されたメタデータ、データストレージ、および管理サービスを提供するフルマネージドプラットフォームです。
DLF の使用
前提条件
Serverless StarRocks インスタンスが作成済みであること。詳細については、「インスタンスの作成」をご参照ください。
インスタンスのバージョンは 3.3 以降、マイナーバージョンは 3.3.8-1.99 以降である必要があります。
説明マイナーバージョンは、 [バージョン情報] セクションの [インスタンス詳細] ページで確認できます。マイナーバージョンが 3.3.8-1.99 より前の場合は、更新する必要があります。詳細については、「マイナーバージョンの更新」をご参照ください。
DLF でデータカタログが作成済みであること。
例:DLF カタログの使用
ステップ 1:Serverless StarRocks でのユーザー追加
DLF は Resource Access Management (RAM) を使用してアクセスの制御を行います。デフォルトでは、StarRocks ユーザーは DLF リソースに対する権限を持っていません。既存の RAM ユーザーを追加し、そのユーザーに必要な権限を付与する必要があります。RAM ユーザーを作成していない場合は、「RAM ユーザーの作成」をご参照ください。
EMR Serverless StarRocks のインスタンスリストページに移動します。
E-MapReduce コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のメニューバーで、目的のリージョンを選択します。
[インスタンスリスト] ページで、インスタンスを見つけ、[操作] 列の [インスタンスに接続] をクリックします。 詳細については、「EMR StarRocks Manager を使用して StarRocks インスタンスに接続する」をご参照ください。
admin ユーザーまたは StarRocks のスーパー管理者アカウントを使用して StarRocks インスタンスに接続できます。
左側のメニューで、を選択し、[ユーザーの追加] をクリックします。
[ユーザーの追加] ダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。
ユーザーソース: [RAM ユーザー] を選択します。
ユーザー名:前のステップの RAM ユーザー (dlf-test) を選択します。
パスワード と パスワードの確認:カスタムパスワードを入力します。
ロール:デフォルト値は [public] のままにします。
ステップ 2:DLF でのカタログへの権限付与
Data Lake Formation コンソールにログインします。
[データカタログ] ページで、カタログ名をクリックします。
[権限] タブをクリックし、次に [許可] をクリックします。
[承認対象の選択] ドロップダウンリストから、RAM ユーザー (dlf-test) を選択します。
プリセット権限タイプを[カスタム]に設定し、ユーザーに現在のデータカタログおよびそのすべてのリソースに対する[すべて]の権限を付与します。
[OK] をクリックします。
ステップ 3:Serverless StarRocks での DLF カタログの作成
Paimon カタログ
インスタンスに接続します。詳細については、「EMR StarRocks Manager を使用した StarRocks インスタンスへの接続」をご参照ください。
重要ステップ 1 で追加した RAM ユーザー (dlf-test) を使用して StarRocks インスタンスに再接続します。このユーザーを使用して、DLF 外部テーブルにアクセスするための SQL クエリを作成します。
SQL クエリを作成するには、[SQL エディタ] の [クエリリスト] ページに移動し、
アイコンをクリックします。Paimon カタログを作成します。次の SQL 文を入力し、[実行]をクリックします。CREATE EXTERNAL CATALOG `dlf_catalog` PROPERTIES ( 'type' = 'paimon', 'uri' = 'http://cn-hangzhou-vpc.dlf.aliyuncs.com', 'paimon.catalog.type' = 'rest', 'paimon.catalog.warehouse' = 'StarRocks_test', 'token.provider' = 'dlf' );データの読み取りと書き込み。
データベースの作成。
CREATE DATABASE IF NOT EXISTS dlf_catalog.sr_dlf_db;データテーブルの作成。
CREATE TABLE dlf_catalog.sr_dlf_db.ads_age_pvalue_analytics( final_gender_code STRING COMMENT '性別', age_level STRING COMMENT '年齢層', pvalue_level STRING COMMENT '消費レベル', clicks INT COMMENT 'クリック数', total_behaviors INT COMMENT '総行動数' );データの挿入。
INSERT INTO dlf_catalog.sr_dlf_db.ads_age_pvalue_analytics (final_gender_code, age_level, pvalue_level, clicks, total_behaviors) VALUES ('M', '18-24', 'Low', 1500, 2500), ('F', '25-34', 'Medium', 2200, 3300), ('M', '35-44', 'High', 2800, 4000);データのクエリ。
SELECT * FROM dlf_catalog.sr_dlf_db.ads_age_pvalue_analytics;次の図にクエリ結果を示します。

Iceberg カタログ
インスタンスに接続します。詳細については、「EMR StarRocks Manager を使用した StarRocks インスタンスへの接続」をご参照ください。
重要ステップ 1 で追加した RAM ユーザー (dlf-test) を使用して StarRocks インスタンスに再接続します。このユーザーを使用して、DLF 外部テーブルにアクセスするための SQL クエリを作成します。
[SQLエディタ] の [クエリリスト] ページで、
アイコンをクリックして SQL クエリを作成します。Iceberg カタログを作成します。次の SQL 文を入力して[実行]をクリックします。CREATE EXTERNAL CATALOG `iceberg_catalog` PROPERTIES ( 'type' = 'iceberg', 'iceberg.catalog.type' = 'dlf_rest', 'uri' = 'http://cn-hangzhou-vpc.dlf.aliyuncs.com/iceberg', 'warehouse' = 'iceberg_test', 'rest.signing-region' = 'cn-hangzhou' );データのクエリ。
説明StarRocks では、Iceberg 外部テーブルは読み取り専用です。
SELECTクエリを実行できますが、StarRocks から Iceberg テーブルにデータを書き込むことはできません。select * from iceberg_catalog.`default`.test_iceberg;次の図にクエリ結果を示します。

DLF 1.0 (レガシー) の使用
前提条件
カタログの作成
Hive カタログの作成
構文
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "paimon",
CatalogParams,
StorageCredentialParams
);パラメーター
catalog_name:Hive カタログの名前。このパラメーターは必須です。名前は次の要件を満たす必要があります:先頭は英字である必要があります。英字 (a-z または A-Z)、数字 (0-9)、アンダースコア (_) のみ使用できます。
全体の長さは 64 文字を超えることはできません。
comment:Hive カタログの説明。このパラメーターはオプションです。type:データソースのタイプ。これをhiveに設定します。GeneralParams:一般設定のパラメーターセット。GeneralParamsには次のパラメーターが含まれます。パラメーター
必須
説明
enable_recursive_listing
いいえ
StarRocks がテーブルまたはパーティションディレクトリ内のファイル (サブディレクトリを含む) からデータを再帰的に読み取るかどうかを指定します。有効な値:
true (デフォルト):ディレクトリを再帰的に走査します。
false:テーブルまたはパーティションディレクトリの現在のレベルのファイルからのみデータを読み取ります。
MetastoreParams:StarRocks が Hive クラスターのメタデータにアクセスする方法に関するパラメーター。プロパティ
説明
hive.metastore.type
Hive が使用するメタデータサービスのタイプ。これを
dlfに設定します。dlf.catalog.id
DLF 1.0 内の既存のデータカタログの ID。このパラメーターは、
hive.metastore.typeがdlfに設定されている場合にのみ必須です。dlf.catalog.idパラメーターが指定されていない場合、システムはデフォルトの DLF カタログを使用します。
例
CREATE EXTERNAL CATALOG hive_catalog
PROPERTIES
(
"type" = "hive",
"hive.metastore.type" = "dlf",
"dlf.catalog.id" = "sr_dlf"
);Hive カタログの詳細については、「Hive カタログ」をご参照ください。
Iceberg カタログの作成
構文
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "iceberg",
MetastoreParams
)パラメーター
catalog_name:Iceberg カタログの名前。このパラメーターは必須です。名前は次の要件を満たす必要があります:英字 (a-z または A-Z)、数字 (0-9)、またはアンダースコア (_) で構成され、先頭は英字である必要があります。
全体の長さは 64 文字を超えることはできません。
カタログ名では大文字と小文字が区別されます。
comment:Iceberg カタログの説明。このパラメーターはオプションです。type:データソースのタイプ。これをicebergに設定します。MetastoreParams:StarRocks が Iceberg クラスターのメタデータサービスにアクセスするためのパラメーター。プロパティ
説明
iceberg.catalog.type
Iceberg のカタログのタイプ。値は
dlfである必要があります。dlf.catalog.id
DLF 内の既存のデータカタログの ID。
dlf.catalog.idパラメーターを設定しない場合、システムはデフォルトの DLF カタログを使用します。
例
CREATE EXTERNAL CATALOG iceberg_catalog_hms
PROPERTIES
(
"type" = "iceberg",
"iceberg.catalog.type" = "dlf",
"dlf.catalog.id" = "sr_dlf"
);Iceberg カタログの詳細については、「Iceberg カタログ」をご参照ください。
Paimon カタログの作成
構文
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "paimon",
CatalogParams,
StorageCredentialParams
);パラメーター
catalog_name:Paimon カタログの名前。このパラメーターは必須です。名前は次の要件を満たす必要があります:先頭は英字である必要があります。英字 (a-z または A-Z)、数字 (0-9)、アンダースコア (_) のみ使用できます。
全体の長さは 64 文字を超えることはできません。
comment:Paimon カタログの説明。このパラメーターはオプションです。type:データソースのタイプ。このパラメーターをpaimonに設定します。CatalogParams:StarRocks が Paimon クラスターのメタデータにアクセスするためのパラメーター。プロパティ
必須
説明
paimon.catalog.type
はい
データソースのタイプ。値は
dlfです。paimon.catalog.warehouse
はい
Paimon データが格納されているウェアハウスのストレージパス。HDFS、OSS、および OSS-HDFS がサポートされています。OSS または OSS-HDFS のフォーマットは
oss://<yourBucketName>/<yourPath>です。重要OSS または OSS-HDFS をウェアハウスとして使用する場合は、aliyun.oss.endpoint パラメーターを設定する必要があります。詳細については、「StorageCredentialParams: StarRocks が Paimon クラスターのファイルストレージにアクセスするためのパラメーター。」をご参照ください。
dlf.catalog.id
いいえ
DLF 内の既存のデータカタログの ID。
dlf.catalog.idパラメーターを設定しない場合、システムはデフォルトの DLF カタログを使用します。StorageCredentialParams:StarRocks が Paimon クラスターのファイルストレージにアクセスするためのパラメーター。HDFS をストレージシステムとして使用する場合、
StorageCredentialParamsを設定する必要はありません。OSS または OSS-HDFS を使用する場合、
StorageCredentialParamsを設定する必要があります。"aliyun.oss.endpoint" = "<YourAliyunOSSEndpoint>"パラメーターを次の表に示します。
プロパティ
説明
aliyun.oss.endpoint
OSS または OSS-HDFS のエンドポイント情報は次のとおりです:
OSS:ご利用のバケットの [概要] ページに移動し、[アクセスポート] セクションでエンドポイントを確認します。また、「OSS のリージョンとエンドポイント」を参照して、対応するリージョンのエンドポイントを確認することもできます。例:
oss-cn-hangzhou.aliyuncs.comOSS-HDFS:ご利用のバケットの [概要] ページに移動し、[アクセスポート] セクションで [HDFS サービス] のエンドポイントを確認します。たとえば、中国 (杭州) リージョンのエンドポイントは
cn-hangzhou.oss-dls.aliyuncs.comです。重要このパラメーターを設定した後、EMR Serverless StarRocks コンソールの [インスタンス設定] ページに移動する必要もあります。次に、
core-site.xmlおよびjindosdk.cfg内の fs.oss.endpoint パラメーターを aliyun.oss.endpoint の値と一致するように変更します。
例
CREATE EXTERNAL CATALOG paimon_catalog
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "dlf",
"paimon.catalog.warehouse" = "oss://<yourBucketName>/<yourPath>",
"dlf.catalog.id" = "paimon_dlf_test"
);Paimon カタログの詳細については、「Paimon カタログ」をご参照ください。
関連ドキュメント
Paimon カタログの詳細については、「Paimon カタログ」をご参照ください。