E-MapReduce(简称EMR)的EMR-5.8.0及之后版本的集群(对应StarRocks 2.3及之后的版本)支持查询元数据类型为DLF的外表。本文通过示例为您介绍如何访问DLF的外部表。

前提条件

已创建EMR-5.8.0及之后版本的数据分析(OLAP)或自定义场景(Custom)的集群,且选择了StarRocks服务,详情请参见创建集群

操作步骤

  1. 使用SSH方式登录StarRocks集群,详情请参见登录集群
  2. 执行以下命令,连接StarRocks集群。
    mysql -h127.0.0.1 -P 9030 -uroot
  3. 执行以下命令,创建External Catalog。
    CREATE EXTERNAL CATALOG hive_catalog0
    properties
    (
        "type" = "hive",
        "dlf.catalog.endpoint" = "dlf-vpc.cn-beijing.aliyuncs.com",
        "dlf.catalog.region" = "cn-beijing",
        "dlf.catalog.proxyMode" = "DLF_ONLY",
        "dlf.catalog.akMode" = "EMR_AUTO",
        "hive.metastore.type" = "DLF"
    );
    参数描述备注
    type数据源的类型。支持的数据源类型有hive、hudi、iceberg、deltalake。

    本示例为hive。

    dlf.catalog.regionDLF服务的地域名。详情请参见已开通的地域和访问域名
    说明 请和dlf.catalog.endpoint选择的地域保持一致。
    dlf.catalog.endpointDLF服务的Endpoint。详情请参见已开通的地域和访问域名
    推荐您设置dlf.catalog.endpoint参数为DLF的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则dlf.catalog.endpoint参数需要配置为dlf-vpc.cn-hangzhou.aliyuncs.com。
    说明 您也可以使用DLF的公网Endpoint,如果您选择的地域为cn-hangzhou地域,则dlf.catalog.endpoint参数需要配置为dlf.cn-hangzhou.aliyuncs.com。
    dlf.catalog.akModeDLF服务的AccessKey模式。建议配置为EMR_AUTO。
    dlf.catalog.proxyModeDLF服务的代理模式。建议配置为DLF_ONLY。
    dlf.catalog.id待读取的DLF Catalog ID。如果不添加该配置,则使用默认DLF Catalog。
    hive.metastore.type配置MetaStore类型。固定值为DLF。
  4. 查询数据。
    show databases from hive_catalog0;
    +----------+
    | Database |
    +----------+
    | default  |
    +----------+
    1 rows in set (1.86 sec)
    
    use hive_catalog0.default;
    Database changed
    
    show tables;
    +--------------------+
    | Tables_in_hive_oss |
    +--------------------+
    | t                  |
    +--------------------+
    1 row in set (0.04 sec)
    
    select * from t;
    +------+
    | id   |
    +------+
    |    2 |
    +------+
    1 row in set (0.07 sec)