メインコンテンツまでスキップ
バージョン: 4.x

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 |
    +---------+-----------+-------------------+------+