全部产品
Search
文档中心

实时计算Flink版:管理DLF Catalog

更新时间:Jan 26, 2024

配置DLF Catalog后,您可以在Flink全托管控制台直接访问DLF实例中的表,无需再手动注册DLF表,提高作业开发的效率且保证数据的正确性。本文为您介绍如何在Flink全托管模式下创建、查看、使用及删除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. Flink全托管页签,单击目标工作空间操作列下的控制台

    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. Flink全托管页签,单击目标工作空间操作列下的控制台

    3. 单击元数据管理

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

    说明

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

使用DLF Catalog

创建DLF数据库和表

UI方式

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

    1. 登录实时计算控制台

    2. Flink全托管页签,单击目标工作空间操作列下的控制台

    3. 单击元数据管理

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

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

  4. 单击创建表

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

  6. 单击下一步

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

    CREATE DATABASE dlf.dlf_testdb;
    
    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. 单击确定

SQL命令方式

  1. 查询脚本文本编辑区域,输入建表语句。

    CREATE DATABASE dlf.dlf_testdb;
    
    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'
    );
  2. 依次选中三条DDL语句,单击左侧代码行数上运行

    image

    完成dlf数据库、dlf_testdb.iceberg表、dlf_testdb.hudi表的创建后,在SQL开发页面左侧,单击元数据,就可以查看到上述创建的数据库和表。

说明

您可以在您创建的Flink Session集群上执行数据库和表的创建操作,这样能更快地完成执行操作。

写入数据

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. Flink全托管页签,单击目标工作空间操作列下的控制台

    3. 单击元数据管理

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

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

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

SQL方式

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

    DROP CATALOG ${catalog_name}

    其中,catalog_name为您要删除的在Flink全托管开发控制台上显示的DLF Catalog名称。

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

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