Alibaba Cloud DLF Rest Catalogの統合
Alibaba Cloud Data Lake Formation (DLF)は、クラウドネイティブデータレークアーキテクチャの中核コンポーネントとして、ユーザーがクラウドネイティブデータレークソリューションを迅速に構築することを支援します。DLFは、データレーク上での統一メタデータ管理、エンタープライズレベルの権限制御、複数のコンピュートエンジンとのシームレスな統合を提供し、データサイロを解消してビジネスインサイトを実現します。
-
統一メタデータとストレージ
ビッグデータコンピュートエンジンが単一のレークメタデータとストレージのセットを共有し、レーク製品間でデータがシームレスに流れます。
-
統一権限管理
ビッグデータコンピュートエンジンが単一のレークテーブル権限設定のセットを共有し、一度の設定で全体に効果が及びます。
-
ストレージ最適化
小さなファイルのコンパクション、期限切れスナップショットのクリーンアップ、パーティションの再編成、不要なファイルのクリーンアップなどの最適化戦略を提供し、ストレージ効率を向上させます。
-
包括的なCloudエコシステムサポート
ストリーミングおよびバッチコンピュートエンジンを含むAlibaba Cloud製品との深い統合により、すぐに使える機能と向上したユーザーエクスペリエンスを提供します。
Dorisはバージョン4.1.0からDLF Iceberg Rest Catalogとの統合をサポートし、DLFへのシームレスな接続を可能にしてIcebergテーブルデータのアクセスと分析を実現します。この記事では、Apache DorisをDLFに接続し、Icebergテーブルデータにアクセスする方法を説明します。
この機能はDorisバージョン4.1.0以降でサポートされています。
使用ガイド
01 DLFサービスを有効にする
DLFサービスを有効にし、対応するCatalog、Database、Tableを作成するには、DLF公式ドキュメントを参照してください。
02 EMR Spark SQLを使用してDLFにアクセスする
-
接続
spark-sql --master yarn \
--conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
--conf spark.sql.catalog.iceberg=org.apache.iceberg.spark.SparkCatalog \
--conf spark.sql.catalog.iceberg.catalog-impl=org.apache.iceberg.rest.RESTCatalog \
--conf spark.sql.catalog.iceberg.uri=http://<region>-vpc.dlf.aliyuncs.com/iceberg \
--conf spark.sql.catalog.iceberg.warehouse=<your-catalog-name> \
--conf spark.sql.catalog.iceberg.credential=<ak>:<sk>
対応する
<region>、warehouse、<ak>、<sk>を置き換えてください。
-
データの書き込み
USE iceberg.<your-catalog-name>;
CREATE TABLE users_samples
(
user_id INT,
age_level STRING,
final_gender_code STRING,
clk BOOLEAN
) USING iceberg;
INSERT INTO users_samples VALUES
(1, '25-34', 'M', true),
(2, '18-24', 'F', false);
INSERT INTO users_samples VALUES
(3, '25-34', 'M', true),
(4, '18-24', 'F', false);
INSERT INTO users_samples VALUES
(5, '25-34', 'M', true),
(6, '18-24', 'F', false);
03 Dorisを使用してDLFに接続
-
Iceberg Catalogを作成
CREATE CATALOG ice PROPERTIES (
'type' = 'iceberg',
'iceberg.catalog.type' = 'rest',
'iceberg.rest.uri' = 'http://<region>-vpc.dlf.aliyuncs.com/iceberg',
'warehouse' = '<your-catalog-name>',
'iceberg.rest.sigv4-enabled' = 'true',
'iceberg.rest.signing-name' = 'DlfNext',
'iceberg.rest.access-key-id' = '<ak>',
'iceberg.rest.secret-access-key' = '<sk>',
'iceberg.rest.signing-region' = '<region>',
'iceberg.rest.vended-credentials-enabled' = 'true',
'io-impl' = 'org.apache.iceberg.rest.DlfFileIO',
'fs.oss.support' = 'true'
); -
Dorisは、DLFによって返される一時的な認証情報を使用してOSSオブジェクトストレージにアクセスするため、追加のOSS認証情報は必要ありません。
- DLFは同じVPC内でのみアクセス可能です。正しいURIアドレスを提供することを確認してください。
- DLF Iceberg REST catalogは、DLF
DlfNextの特定の署名名でSigV4署名を有効にする必要があります。
-
データのクエリ
SELECT * FROM users_samples ORDER BY user_id;
+---------+-----------+-------------------+------+
| user_id | age_level | final_gender_code | clk |
+---------+-----------+-------------------+------+
| 1 | 25-34 | M | 1 |
| 2 | 18-24 | F | 0 |
| 3 | 25-34 | M | 1 |
| 4 | 18-24 | F | 0 |
| 5 | 25-34 | M | 1 |
| 6 | 18-24 | F | 0 |
+---------+-----------+-------------------+------+