全部產品
Search
文件中心

E-MapReduce:使用DLF Catalog

更新時間:Nov 27, 2025

DLF提供全託管Paimon中繼資料和資料的儲存及管理服務,支援多種儲存最佳化策略,可以提供更加安全和更高效能的湖管理。本文將介紹如何在EMR Serverless StarRocks中使用阿里雲DLF Catalog。

背景資訊

阿里雲資料湖構建(Data Lake Formation,簡稱DLF)是一款全託管的統一中繼資料和資料存放區及管理平台。

使用DLF

前提條件

  • 已建立Serverless StarRocks執行個體,詳情請參見建立執行個體

    執行個體版本須為3.3且小版本須為3.3.8-1.99及以上。

    說明

    您可以在執行個體詳情頁面的版本資訊地區查看小版本資訊。如果小版本低於3.3.8-1.99,請升級小版本,詳情請參見升級小版本

  • 已建立DLF及以上的資料目錄。

使用DLF Catalog樣本

步驟一:在Serverless StarRocks中添加使用者

重要

DLF的存取控制是RAM層級的。預設情況下所有StarRocks使用者均不具備DLF的任何許可權,因此您必須添加一個已存在的RAM使用者並進行授權。如果未建立RAM使用者,請參見建立RAM使用者

  1. 進入EMR Serverless StarRocks執行個體列表頁面。

    1. 登入E-MapReduce控制台

    2. 在左側導覽列,選擇EMR Serverless > StarRocks

    3. 在頂部功能表列處,根據實際情況選擇地區。

  2. 執行個體列表頁面,單擊已建立執行個體操作列的串連執行個體,詳情請參見通過EMR StarRocks Manager串連StarRocks執行個體

    您可以選擇使用admin或StarRocks超級管理員權限,以串連StarRocks執行個體。

  3. 左側功能表列,選擇資訊安全中心 > 使用者管理,然後單擊添加使用者

  4. 添加使用者對話方塊中,配置以下資訊,然後單擊確定

    • 使用者來源:選擇RAM使用者

    • 使用者名稱:選擇上一步授權的RAM使用者(dlf-test)。

    • 密碼確認密碼:自訂。

    • 角色:預設public即可。

步驟二:在DLF中為Catalog授權

  1. 登入資料湖構建控制台

  2. 資料目錄頁面,單擊Catalog名稱。

  3. 單擊許可權頁簽,單擊授權

  4. 在選擇授權對象下拉式清單中,選擇已有的RAM使用者(dlf-test)。

  5. 預置權限類別型選擇自訂,授權該使用者當前資料目錄及其下所有資源的ALL許可權。

  6. 單擊確定

步驟三:在Serverless StarRocks中建立DLF Catalog

Paimon Catalog

  1. 串連執行個體。詳情請參見通過EMR StarRocks Manager串連StarRocks執行個體

    重要

    請使用步驟一中添加的RAM使用者(dlf-test),重新串連至StarRocks執行個體,並建立SQL查詢,以便訪問DLF外表。

  2. 建立SQL查詢。在SQL Editor查詢列表頁面,單擊image表徵圖,建立SQL查詢。

  3. 建立Paimon Catalog。輸入以下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'
    );
  4. 讀寫資料。

    1. 建立資料庫。

      CREATE DATABASE IF NOT EXISTS dlf_catalog.sr_dlf_db;
    2. 建立資料表。

      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 '總行為次數'
      );
    3. 插入資料。

      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);
    4. 查詢資料。

      SELECT * FROM dlf_catalog.sr_dlf_db.ads_age_pvalue_analytics;

      返回資訊如下圖所示。

      image

Iceberg Catalog

  1. 串連執行個體。詳情請參見通過EMR StarRocks Manager串連StarRocks執行個體

    重要

    請使用步驟一中添加的RAM使用者(dlf-test),重新串連至StarRocks執行個體,並建立SQL查詢,以便訪問DLF外表。

  2. 建立SQL查詢。在SQL Editor查詢列表頁面,單擊image表徵圖,建立SQL查詢。

  3. 建立Iceberg Catalog。輸入以下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'
    );
  4. 查詢資料。

    說明

    Iceberg 外部表格在 StarRocks 中為唯讀模式,您可執行 SELECT 查詢,但無法通過 StarRocks 向 Iceberg 表寫入資料。

    select * from  iceberg_catalog.`default`.test_iceberg;

    返回資訊如下圖所示。

    image

使用DLF 1.0(舊版)

前提條件

  • 已建立Serverless StarRocks執行個體,詳情請參見建立執行個體

  • 已建立DLF 1.0(舊版)的資料目錄,詳情請參見資料目錄

建立Catalog

建立Hive Catalog

文法

CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
    "type" = "hive",
    GeneralParams,
    MetastoreParams
)

參數說明

  • catalog_name:Hive Catalog的名稱,必選參數。命名要求如下:

    • 必須由字母(a~z或A~Z)、數字(0~9)或底線(_)組成,並且只能以字母開頭。

    • 總長度不能超過64個字元。

  • comment:Hive Catalog的描述。此參數為可選。

  • 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 Catalog。

使用樣本

CREATE EXTERNAL CATALOG hive_catalog
PROPERTIES
(
    "type" = "hive",
    "hive.metastore.type" = "dlf",
    "dlf.catalog.id" = "sr_dlf"
);

更多Hive Catalog詳情,請參見Hive Catalog

建立Iceberg Catalog

文法

CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
    "type" = "iceberg",
    MetastoreParams
)

參數說明

  • catalog_name:Iceberg Catalog的名稱,必選參數。命名要求如下:

    • 必須由字母(a~z或A~Z)、數字(0~9)或底線(_)組成,並且只能以字母開頭。

    • 總長度不能超過64個字元。

    • Catalog名稱大小寫敏感。

  • comment:Iceberg Catalog的描述,此參數為可選。

  • type:資料來源的類型,設定為iceberg

  • MetastoreParams:StarRocks訪問Iceberg叢集中繼資料服務的相關參數配置。

    屬性

    說明

    iceberg.catalog.type

    Iceberg中Catalog的類型,取值為dlf

    dlf.catalog.id

    DLF中已有的資料目錄ID。如果未配置dlf.catalog.id參數的值,則系統將使用預設的DLF Catalog。

使用樣本

CREATE EXTERNAL CATALOG iceberg_catalog_hms
PROPERTIES
(
    "type" = "iceberg",
    "iceberg.catalog.type" = "dlf",
    "dlf.catalog.id" = "sr_dlf"
);

更多Iceberg Catalog詳情,請參見Iceberg Catalog

建立Paimon Catalog

文法

CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
    "type" = "paimon",
    CatalogParams,
    StorageCredentialParams
);

參數說明

  • catalog_name:Paimon Catalog的名稱,必選參數。命名要求如下:

    • 必須由字母(a~z或A~Z)、數字(0~9)或底線(_)組成,並且只能以字母開頭。

    • 總長度不能超過64個字元。

  • comment:Paimon Catalog的描述。此參數為可選。

  • type:資料來源的類型。設定為paimon

  • CatalogParams:StarRocks訪問Paimon叢集中繼資料的相關參數配置。Paimon叢集使用的中繼資料類型不同,參數的配置也不同。

    屬性

    是否必須

    說明

    paimon.catalog.type

    資料來源類型,取值為dlf

    paimon.catalog.warehouse

    Paimon資料所在的Warehouse儲存路徑,支援HDFS、OSS和OSS-HDFS。OSS或OSS-HDFS格式為:oss://<yourBucketName>/<yourPath>

    重要

    若使用OSS或OSS-HDFS作為warehouse,須配置參數aliyun.oss.endpoint。詳情請參見StorageCredentialParams:StarRocks訪問Paimon叢集檔案儲存體的相關參數配置。

    dlf.catalog.id

    DLF中已有的資料目錄的ID。如果未配置dlf.catalog.id參數的值,則系統將使用預設的DLF Catalog。

  • StorageCredentialParams:StarRocks訪問Paimon叢集檔案儲存體的相關參數配置。

    • 如果您使用HDFS作為儲存系統,則不需要配置StorageCredentialParams

    • 如果您使用OSS或OSS-HDFS,則必須配置StorageCredentialParams

      "aliyun.oss.endpoint" = "<YourAliyunOSSEndpoint>" 

      涉及參數說明如下表所示。

      屬性

      說明

      aliyun.oss.endpoint

      使用OSS或OSS-HDFS,相應的Endpoint資訊如下:

      • OSS:您可以前往Bucket的概覽頁的訪問連接埠地區獲Endpoint,也可以參見地區和Endpoint查看對應Region的Endpoint資訊。如oss-cn-hangzhou.aliyuncs.com

      • OSS-HDFS:您可以前往Bucket的概覽頁的訪問連接埠地區擷取HDFS服務的Endpoint。以杭州地區為例,樣本值為cn-hangzhou.oss-dls.aliyuncs.com

        重要

        使用該方式配置該參數後,您還需要在EMR Serverless StarRocks控制台的執行個體配置頁面,修改core-site.xmljindosdk.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 Catalog詳情,請參見Paimon Catalog

相關文檔

Paimon Catalog的更多介紹,請參見Paimon Catalog