全部产品
Search
文档中心

实时计算Flink版:管理DLF Catalog

更新时间:May 30, 2024

配置DLF Catalog后,您可以在实时计算开发控制台直接访问DLF实例中的表,无需再手动注册DLF表,提高作业开发的效率且保证数据的正确性。本文为您介绍如何创建、查看、使用及删除DLF Catalog。

背景信息

阿里云数据湖构建(Data Lake Formation,简称DLF)是阿里云官方提供的一款统一元数据管理的产品。您可以方便地借助DLF产品来管理创建的表格,这些表格的格式可以是开源格式,例如Iceberg、Hudi、Delta、Parquet、ORC或Avro等。

本文将从以下方面为您介绍如何管理DLF Catalog:

前提条件

已开通阿里云数据湖构建服务

使用限制

  • 仅Flink计算引擎vvr-4.0.12-flink-1.13及以上版本支持配置DLF Catalog。

  • Flink在DLF Catalog下仅支持管理Iceberg和Hudi两种数据湖格式。

创建DLF Catalog

支持UI与SQL命令两种方式配置DLF Catalog,推荐使用UI方式配置DLF Catalog。

UI方式

  1. 进入元数据管理页面。

    1. 登录实时计算控制台

    2. 单击目标工作空间操作列下的控制台

    3. 单击元数据管理

  2. 元数据管理页面,单击创建Catalog

  3. 单击DLF后,单击下一步

  4. 创建DLF Catalog。

    1. 配置Catalog信息。

      DLF Catalog

      配置项

      说明

      是否必填

      备注

      catalogname

      DLF Catalog名称。

      请填写为自定义的英文名。

      access.key.id

      访问OSS服务所需的阿里云Access Key。

      获取方法请参见获取AccessKey

      access.key.secret

      访问OSS服务所需的阿里云Access Secret。

      获取方法请参见获取AccessKey

      warehouse

      DLF Catalog中表默认的OSS存放路径,OSS服务中所指定的数仓目录。

      支持OSS和OSS-HDFS两种服务。

      • OSS路径格式为oss://<bucket>/<object>

      • OSS-HDFS路径格式为oss://<bucket>.<oss-hdfs-endpoint>/<object>

      其中:

      • bucket:表示您创建的OSS Bucket名称。您可以在OSS管理控制台上查看。

      • object:表示您存放数据的路径。您可以在OSS管理控制台上查看。

      • oss-hdfs-endpoint:表示OSS-HDFS服务Endpoint。您可以在OSS管理控制台Bucket的概览页面的访问端口中查看HDFS服务Endpoint信息。

      说明

      仅Flink计算引擎VVR 8.0.3及以上版本支持该参数配置为OSS-HDFS路径。

      oss.endpoint

      阿里云对象存储服务OSS的Endpoint。OSS的 endpoint 地址,例如oss-cn-hangzhou-internal.aliyuncs.com

      支持OSS和OSS-HDFS两种服务。

      • OSS服务Endpoint,详情参见访问域名和数据中心

      • OSS-HDFS服务Endpoint,您可以在OSSBucket概览页面的访问端口中查看HDFS服务Endpoint信息。

      说明
      • 推荐您为oss.endpoint参数配置OSS的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则oss.endpoint需要配置为oss-cn-hangzhou-internal.aliyuncs.com。

      • 如果您需要跨VPC访问OSS,则请参见如何访问跨VPC的其他服务?

      dlf.endpoint

      表示阿里云DLF服务的Endpoint。

      说明
      • 推荐您为dlf.endpoint参数配置DLF的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则dlf.endpoint参数需要配置为dlf-vpc.cn-hangzhou.aliyuncs.com。

      • 如果您需要跨VPC访问DLF,则请参见如何访问跨VPC的其他服务?

      dlf.region-id

      阿里云DLF服务的地域名,DLF所在区域。

      说明

      请和dlf.endpoint选择的地域保持一致。

      更多配置

      设置其他DLF配置,例如指定多个DLF Catalog,配置多个DLF Catalog请换行分隔。

      例如:dlf.catalog.id:my_catalog

    2. 单击确定

  5. 创建完成后,元数据区域下即可查看新建Catalog。

SQL方式

  1. 查询脚本文本编辑区域,输入配置DLF Catalog的命令。

    CREATE CATALOG <yourcatalogname> WITH (
       'type' = 'dlf',
       'access.key.id' = '<YourAliyunAccessKeyId>',
       'access.key.secret' = '<YourAliyunAccessKeySecret>',
       'warehouse' = '<YourAliyunOSSLocation>',
       'oss.endpoint' = '<YourAliyunOSSEndpoint>',
       'dlf.region-id' = '<YourAliyunDLFRegionId>',
       'dlf.endpoint' = '<YourAliyunDLFEndpoint>'
    );

    参数

    说明

    是否必填

    备注

    yourcatalogname

    自定义DLF Catalog名称。

    请填写为自定义的英文名。

    重要

    参数替换为您的Catalog名称后,需要去掉尖括号(<>),否则语法检查会报错。

    type

    类型。

    固定值为dlf。

    access.key.id

    阿里云账号的AccessKey ID。

    获取方法请参见获取AccessKey

    access.key.secret

    阿里云账号的AccessKey Secret。

    获取方法请参见获取AccessKey

    warehouse

    DLF Catalog中表默认的OSS存放路径。

    格式为oss://<bucket>/<object>。其中:

    • bucket:表示您创建的OSS Bucket名称。

    • object:表示您存放数据的路径。

    说明

    请在OSS管理控制台上查看您的bucket和object名称。

    oss.endpoint

    阿里云对象存储服务OSS的Endpoint。

    请详情参见访问域名和数据中心

    说明
    • 推荐您为oss.endpoint参数配置OSS的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则oss.endpoint需要配置为oss-cn-hangzhou-internal.aliyuncs.com。

    • 如果您需要跨VPC访问OSS,则请参见如何访问跨VPC的其他服务?

    dlf.endpoint

    阿里云DLF服务的Endpoint。

    说明
    • 推荐您为dlf.endpoint参数配置DLF的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则dlf.endpoint参数需要配置为dlf-vpc.cn-hangzhou.aliyuncs.com。

    • 如果您需要跨VPC访问DLF,则请参见如何访问跨VPC的其他服务?

    dlf.region-id

    阿里云DLF服务的地域名。

    说明

    请和dlf.endpoint选择的地域保持一致。

  2. 选中创建Catalog的代码后,单击左侧代码行数上的运行

  3. 在左侧元数据区域,查看创建的Catalog。

查看DLF Catalog

DLF Catalog创建成功后,您可以通过以下步骤查看DLF元数据。

  1. 进入元数据管理页面。

    1. 登录实时计算控制台

    2. 单击目标工作空间操作列下的控制台

    3. 单击元数据管理

  2. Catalog列表页面,查看Catalog名称类型

    说明

    如果您需要查看目标Catalog下的数据库和表,请单击查看

使用DLF Catalog

管理DLF数据库

查询脚本文本编辑区域,输入如下语句,选中代码后单击运行。创建或者删除完成后,你可以在SQL开发页面左侧,单击元数据进行确认。

  • 创建数据库

    CREATE DATABASE dlf.dlf_testdb;
  • 删除数据库

    DROP DATABASE dlf.dlf_testdb;

管理DLF

  • 创建表

    • 通过连接器创建

      SQL方式

      查询脚本文本编辑区域,输入如下语句,选中代码后单击运行。创建完成后,你可以在SQL开发页面左侧,单击元数据,就可以查看到您创建的表。

      CREATE TABLE dlf.dlf_testdb.iceberg (
        id    BIGINT,
        data  STRING,
        dt    STRING
      ) PARTITIONED BY (dt) WITH(
        'connector' = 'iceberg'
      );
      
      CREATE TABLE dlf.dlf_testdb.hudi (
        id    BIGINT PRIMARY KEY NOT ENFORCED,
        data  STRING,
        dt    STRING
      ) PARTITIONED BY (dt) WITH(
        'connector' = 'hudi'
      );

      UI方式

      1. 进入元数据管理页面。

        1. 登录实时计算控制台

        2. 单击目标工作空间操作列下的控制台

        3. 单击元数据管理

      2. 单击目标Catalog名称对应操作列的查看

      3. 单击目标数据库名称对应操作列的查看

      4. 单击创建表

      5. 使用内置连接器连接页签,单击连接方式,选择表类型。

      6. 单击下一步

      7. 填写建表语句并配置相关参数信息。代码示例如下。

        CREATE TABLE dlf.dlf_testdb.iceberg (
          id    BIGINT,
          data  STRING,
          dt    STRING
        ) PARTITIONED BY (dt) WITH(
          'connector' = 'iceberg'
        );
        
        CREATE TABLE dlf.dlf_testdb.hudi (
          id    BIGINT PRIMARY KEY NOT ENFORCED,
          data  STRING,
          dt    STRING
        ) PARTITIONED BY (dt) WITH(
          'connector' = 'hudi'
        );
      8. 单击确定

    • 快速创建相同表结构的表(该方式仅Iceberg表支持)

      查询脚本文本编辑区域,输入如下语句,选中代码后单击运行

      CREATE TABLE iceberg_table_like LIKE iceberg_table;
  • 删除表

    DROP TABLE iceberg_table;

修改Iceberg表结构

查询脚本文本编辑区域输入如下命令,选中代码后单击运行

操作

代码示例

更改表属性

ALTER TABLE iceberg_table SET ('write.format.default'='avro');

重命名

ALTER TABLE iceberg_table RENAME TO new_iceberg_table;

更改列名字

ALTER TABLE iceberg_table RENAME id TO index;
说明

仅实时计算引擎VVR 8.0.7及以上版本支持。

更改数据类型

ALTER TABLE iceberg_talbe MODIFY (id, BIGINT)

更改列的类型需要符合以下规则:

  • INT -> BIGINT

  • Float -> Double

  • Decimal -> Decimal

说明

仅实时计算引擎VVR 8.0.7及以上版本支持。

写入数据

INSERT INTO dlf.dlf_testdb.iceberg VALUES (1, 'AAA', '2022-02-01'), (2, 'BBB', '2022-02-01');
INSERT INTO dlf.dlf_testdb.hudi VALUES (1, 'AAA', '2022-02-01'), (2, 'BBB', '2022-02-01');

读取数据

SELECT * FROM dlf.dlf_testdb.iceberg LIMIT 2;
SELECT * FROM dlf.dlf_testdb.hudi LIMIT 2;

删除DLF Catalog

警告

删除DLF Catalog不会影响已运行的作业,但会导致使用该Catalog下表的作业,在上线或重启时报无法找到该表的错误,请您谨慎操作。

支持UI与SQL命令两种方式删除DLF Catalog,推荐使用UI方式删除DLF Catalog。

UI方式

  1. 进入元数据管理页面。

    1. 登录实时计算控制台

    2. 单击目标工作空间操作列下的控制台

    3. 单击元数据管理

  2. Catalog列表页面,单击目标Catalog名称对应操作列的删除

  3. 在弹出的提示页面中,单击删除

  4. 在左侧元数据下,查看目标Catalog是否已被删除。

SQL方式

  1. 查询脚本文本编辑区域,输入以下命令。

    DROP CATALOG ${catalog_name}

    其中,catalog_name为您要删除的在实时计算开发控制台上显示的DLF Catalog名称。

  2. 选中删除Catalog的命令,鼠标右键选择运行

  3. 在左侧元数据区域,查看目标Catalog是否已删除。

相关文档

  • Iceberg连接器的使用方法,详情请参见Iceberg

  • Hudi连接器的使用方法,详情请参见Hudi

  • 如果内置的Catalog无法满足您的业务需求,您可以使用自定义Catalog,详情请参见管理自定义Catalog