文档

管理Paimon Catalog

更新时间:

配置Paimon Catalog后,您就可以在Flink全托管控制台直接访问阿里云对象存储OSS中的Paimon表。本文为您介绍如何在Flink全托管模式下创建、查看、使用和删除Paimon Catalog。

重要

由于平台正在逐步灰度中,如果在使用过程中无法找到运行按钮或元数据管理按钮,说明灰度升级尚未完成,您可以联系客服或销售代表安排服务灰度升级。

背景信息

Apache Paimon是一种流批统一的湖存储格式,支持高吞吐的写入和低延迟的查询。目前阿里云开源大数据平台E-MapReduce常见的计算引擎(例如Flink、Spark、Hive或Trino)都与Paimon有着较为完善的集成度。您可以借助Apache Paimon快速地在HDFS或者云端OSS上构建自己的数据湖存储服务,并接入上述计算引擎实现数据湖的分析,详情请参见Apache Paimon

通过Paimon Catalog,您可以管理阿里云对象存储OSS中的Paimon表,所创建的表后续也可以通过其他计算引擎访问。本文将从以下方面为您介绍如何管理Paimon Catalog:

前提条件

已开通阿里云对象存储OSS服务。

重要

虽然您也可以使用开通实时计算Flink版服务时指定的OSS Bucket,但为了更好地区分数据并防止误操作,建议您额外创建并使用位于同一地域的OSS Bucket。

使用限制

  • 仅Flink计算引擎vvr-6.0.6-flink-1.15及以上版本支持配置Paimon Catalog。

  • Paimon Catalog使用的OSS Bucket必须与实时计算Flink版位于同一地域,且开通实时计算Flink版服务的账号必须有权限读写该OSS Bucket。

注意事项

目前由于Flink全托管相关缓存机制,通过SQL方式进行Catalog、Database和table的增删,无法立刻从元数据界面看到变化,需要单击元数据的刷新按钮才可以看到。

image..png

创建Paimon Catalog

Paimon Catalog目前支持filesystem和dlf两种元数据存储类型。filesystem类型仅将元数据存储在OSS中,而dlf类型除了将元数据存储在OSS上外,还会将元数据同步到阿里云数据湖构建服务DLF中。您可以根据需要,选择相应的元数据存储类型。

UI方式(推荐)

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

    1. 登录实时计算控制台

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

    3. 单击元数据管理

  2. 单击创建Catalog

  3. 单击Apache Paimon后,单击下一步

  4. 创建Paimon Catalog。

    1. 选择元数据存储类型。您可以单击metastore项目的下拉框,选择filesystem或dlf类型的元数据存储。

      image

    2. 配置Catalog信息。

      • 如果您选择filesystem元数据存储,需要配置以下信息。

        配置项

        说明

        是否必填

        备注

        catalog name

        您自定义的Paimon Catalog名称。

        填写为自定义的英文名。

        metastore

        元数据存储类型。

        此处选择为filesystem。这两个选项的区别:

        filesystem:仅将元数据存储在OSS中。

        dlf:除了将元数据存储在OSS上外,还会将元数据同步到阿里云数据湖构建服务DLF中。

        warehouse

        OSS服务中所指定的数仓目录。

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

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

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

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

      • 如果您选择dlf元数据存储,需要配置以下信息。

        配置项

        说明

        是否必填

        备注

        catalog name

        您自定义的Paimon Catalog名称。

        填写为自定义的英文名。

        metastore

        元数据存储类型。

        此处选择为dlf。

        warehouse

        OSS服务中所指定的数仓目录。

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

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

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

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

        dlf.catalog.id

        DLF数据目录ID。

        请在数据湖构建控制台上查看数据目录对应的ID,具体操作请参见数据目录

        dlf.catalog.accessKeyId

        访问DLF服务所需的Access Key ID。

        获取方法请参见创建AccessKey

        dlf.catalog.accessKeySecret

        访问DLF服务所需的Access Key Secret。

        获取方法请参见创建AccessKey

        dlf.catalog.endpoint

        DLF服务的Endpoint。

        详情请参见已开通的地域和访问域名

        dlf.catalog.region

        DLF所在区域。

        详情请参见已开通的地域和访问域名

        说明

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

    3. 单击确定

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

SQL方式

  1. 查询脚本文本编辑区域,输入以下创建Paimon Catalog的命令。

    • 如果您选择filesystem元数据存储,输入以下SQL语句。

      CREATE CATALOG <yourcatalogname> WITH (
        'type' = 'paimon',
        'metastore' = 'filesystem',
        'warehouse' = '<warehouse>'
      );

      配置项

      说明

      是否必填

      备注

      yourcatalogname

      您自定义的Paimon Catalog名称。

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

      重要

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

      type

      Catalog类型。

      固定值为paimon。

      metastore

      元数据存储类型。

      此处选择为filesystem。

      warehouse

      OSS服务中所指定的数仓目录。

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

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

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

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

    • 如果您选择dlf元数据存储,输入以下SQL语句。

      CREATE CATALOG <yourcatalogname> WITH (
        'type' = 'paimon',
        'metastore' = 'dlf',
        'warehouse' = '<warehouse>',
        'dlf.catalog.id' = '<dlf.catalog.id>',
        'dlf.catalog.accessKeyId' = '<dlf.catalog.accessKeyId>',
        'dlf.catalog.accessKeySecret' = '<dlf.catalog.accessKeySecret>',
        'dlf.catalog.endpoint' = '<dlf.catalog.endpoint>',
        'dlf.catalog.region' = '<dlf.catalog.region>'
      );

      配置项

      说明

      是否必填

      备注

      yourcatalogname

      您自定义的Paimon Catalog名称。

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

      重要

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

      type

      Catalog类型。

      固定值为paimon。

      metastore

      元数据存储类型。

      此处选择为dlf。

      warehouse

      OSS服务中所指定的数仓目录。

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

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

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

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

      dlf.catalog.id

      DLF数据目录ID。

      请在数据湖构建控制台上查看数据目录对应的ID,具体操作请参见数据目录

      dlf.catalog.accessKeyId

      访问DLF服务所需的Access Key ID。

      获取方法请参见创建AccessKey

      dlf.catalog.accessKeySecret

      访问DLF服务所需的Access Key Secret。

      获取方法请参见创建AccessKey

      dlf.catalog.endpoint

      DLF服务的Endpoint。

      详情请参见已开通的地域和访问域名

      dlf.catalog.region

      DLF所在区域。

      详情请参见已开通的地域和访问域名

      说明

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

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

    image..png

查看Paimon Catalog

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

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

    1. 登录实时计算控制台

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

    3. 单击元数据管理

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

    说明

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

使用Paimon Catalog

创建数据库和表

Paimon Catalog配置完成后,您就可以在作业中引用Paimon Catalog表信息,作为结果表和维表,无需声明表的DDL。

在SQL命令方式中,您可以直接使用Paimon Catalog表名称的完整格式${Paimon-catalog-name}.${Paimon-db-name}.${Paimon-table-name},也可以用use catalog ${Paimon-catalog-name}use ${Paimon-db-name}语句先声明catalog名称和数据库名称,后面的SQL里只写表名称${Paimon-table-name}即可 。

UI方式

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

    1. 登录实时计算控制台

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

    3. 单击元数据管理

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

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

  4. 单击创建表

  5. 使用内置连接器连接页签,单击Apache Paimon,单击下一步

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

    CREATE TABLE <catalog name>.test_db.test_tbl (
        dt STRING,
        id BIGINT,
        data STRING,
        PRIMARY KEY (dt, id) NOT ENFORCED
    ) PARTITIONED BY (dt);
  7. 单击确定

SQL命令方式

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

    CREATE DATABASE paimoncatalog.test_db;
    
    CREATE TABLE paimoncatalog.test_db.test_tbl (
        dt STRING,
        id BIGINT,
        data STRING,
        PRIMARY KEY (dt, id) NOT ENFORCED
    ) PARTITIONED BY (dt);
  2. 选中建表语句,单击左侧代码行数上的运行

    image..png

说明

关于Paimon表的更多参数与使用方式,详情请参见Paimon

读取数据

SELECT * FROM `<catalog name>`.test_db.test_tbl;

写入数据

INSERT INTO `<catalog name>`.test_db.test_tbl VALUES ('2023-04-21', 1, 'AAA'), ('2023-04-21', 2, 'BBB');

作为CTAS的目标端Catalog

Flink计算引擎VVR 6.0.7-Flink 1.15及以上版本支持将Paimon Catalog作为CTAS的目标端。

CREATE TABLE IF NOT EXISTS `<catalog name>`.`<db name>`.`<table name>`
WITH (
  'bucket' = '4' -- 设置结果表的分桶数量
) AS TABLE `<source table>`;

CTAS支持在WITH参数中设置物理表属性,在创建目标表时,同时在表上设置对应的属性。具体支持的表属性参数详情,请参见流式数据湖仓Paimon

在CTAS场景中,可能需要调整已有字段数据类型的精度(例如从VARCHAR(10)VARCHAR(20))。Paimon Catalog支持在WITH参数中设置'enableTypeNormalization' = 'true'使用类型宽容模式。在上游发生数据类型修改事件时,只要所修改类型与原类型的归一化类型相同,都视作修改成功。

目前类型归一化规则如下:

  • TINYINT、SMALLINT、INT和BIGINT归一化为BIGINT。

  • CHAR、VARCHAR和STRING归一化为STRING。

  • FLOAT和DOUBLE归一化为DOUBLE。

  • 其他数据类型不进行归一化。

例如:

  • SMALLINT修改为INT,两者的归一化类型都是BIGINT,视为修改成功,CTAS作业正常运行。

  • 从FLOAT改为BIGINT,两者的归一化类型分别为DOUBLE和BIGINT,属于不兼容的情况,会抛出异常。

作为CDAS的目标端Catalog

Flink计算引擎VVR 6.0.7-Flink 1.15及以上版本支持将Paimon Catalog作为CDAS的目标端。

CREATE DATABASE IF NOT EXISTS `<catalog name>`.`<db name>`
WITH (
 'bucket' = '4' -- 设置每张结果表的分桶数量
) AS DATABASE `<source database>`;

CDAS支持在WITH参数中设置物理表属性。当作业启动时,这些参数将被应用到需要同步的下游表中。具体支持的表属性参数详情,请参见流式数据湖仓Paimon

在CDAS场景中,Paimon Catalog也支持在WITH参数中设置'enableTypeNormalization' = 'true'使用类型宽容模式。

删除Paimon Catalog

UI方式

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

    1. 登录实时计算控制台

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

    3. 单击元数据管理

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

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

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

SQL命令方式

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

    DROP CATALOG <catalog name>;
    说明

    引擎版本需要选择vvr-6.0.6-flink-1.15及以上版本。

    其中,<catalog name>是您自定义的Paimon Catalog的名称。

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

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

  • 本页导读 (1)
文档反馈