全部产品
Search
文档中心

开源大数据平台E-MapReduce:使用DLF Catalog

更新时间:Sep 23, 2026

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的任何权限,因此您必须让访问DLF的StarRocks用户具备阿里云身份(RAM用户或RAM角色)并完成授权。如果未创建RAM用户,请参见创建RAM用户。

您可以通过以下两种方式让StarRocks用户具备阿里云身份,二者均可用于访问DLF Catalog,按需选择其一即可:

  • 方式一:新增用户时直接选择RAM用户来源。适用于为访问DLF专门新建一个StarRocks用户的场景。

  • 方式二:为已有用户关联RAM用户/RAM角色。适用于已有StarRocks用户(普通用户)需要访问DLF,或需要以RAM角色(含STS临时身份)访问DLF的场景。

进入用户管理页面

  1. 进入EMR Serverless StarRocks实例列表页面。

    1. 登录E-MapReduce控制台。

    2. 在左侧导航栏,选择EMR Serverless > StarRocks。

    3. 在顶部菜单栏处,根据实际情况选择地域。

  2. 在实例列表页面,单击已创建实例操作列的连接实例,详情请参见通过EMR StarRocks Manager连接StarRocks实例。

    您可以选择使用admin或StarRocks超级管理员权限,以连接StarRocks实例。

  3. 左侧菜单栏,选择安全中心 > 用户管理。

方式一:新增用户时选择RAM用户

  1. 在用户管理页面,单击添加用户。

  2. 在添加用户对话框中,配置以下信息,然后单击确定。

    • 用户来源:选择RAM用户。

    • 用户名:选择需要授权的RAM用户(dlf-test)。

    • 密码和确认密码:自定义。

    • 角色:默认public即可。

方式二:为已有用户关联RAM用户/RAM角色

  1. 在用户管理页面,找到目标StarRocks用户,单击操作列的关联RAM用户/角色。

  2. 在关联对话框中选择需要关联的RAM用户或RAM角色,然后单击确定。

    可选择的范围取决于您当前登录控制台所使用的身份:

    当前登录身份

    可关联的对象

    阿里云账号(主账号)

    该账号下任意RAM用户或任意RAM角色

    RAM用户(子账号)

    仅当前登录的这个RAM用户自身

    STS临时身份(扮演RAM角色)

    仅当前扮演的这个RAM角色自身

  3. 关联成功后,该用户在用户管理列表中的用户类型将自动变更为RAM用户或RAM角色。

说明

关联关系可随时解除。在用户管理页面单击该用户操作列的取消关联即可,取消后该用户的用户类型恢复为普通用户,同时失去通过该阿里云身份访问DLF等云服务的能力。

关联为RAM角色时,StarRocks将使用该角色的STS临时凭证访问DLF,因此需在DLF中对该RAM角色授权(而非对扮演者授权),详见步骤二。

步骤二:在DLF中为Catalog授权

  1. 登录数据湖构建控制台。

  2. 在数据目录页面,单击Catalog名称。

  3. 单击权限页签,单击授权。

  4. 在选择授权对象下拉列表中,选择步骤一中使用的阿里云身份:

    • 若StarRocks用户关联的是RAM用户,则选择该RAM用户(dlf-test)。

    • 若StarRocks用户关联的是RAM角色,则选择该RAM角色。

  5. 预置权限类型选择自定义,授权该用户当前数据目录及其下所有资源的ALL权限。

  6. 单击确定。

步骤三:在Serverless StarRocks中创建DLF Catalog

Paimon Catalog

  1. 连接实例。详情请参见通过EMR StarRocks Manager连接StarRocks实例。

    重要

    请使用步骤一中已具备阿里云身份的StarRocks用户(即用户类型为RAM用户或RAM角色的用户,如dlf-test),重新连接至StarRocks实例,并创建SQL查询,以便访问DLF外表。若使用普通用户连接,将因缺少RAM身份而无法访问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;

      查询结果包含 final_gender_code、age_level、pvalue_level、clicks、total_behaviors 共5列数据,表明通过DLF Catalog可成功查询到目标表中的用户行为分析数据。

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;

    查询返回结果包含 id 和 name 两列,共 3 条记录:(1, Alice)、(2, Bob)、(3, Charlie)。

使用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.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 Catalog详情,请参见Paimon Catalog。

相关文档

Paimon Catalog的更多介绍,请参见Paimon Catalog。