管理Paimon Catalog

配置Paimon Catalog后,您可以通过实时计算Flink版直接访问阿里云对象存储OSS中的Paimon表。本文为您介绍如何在实时计算开发控制台创建、查看与删除Paimon Catalog,以及管理Paimon数据库和Paimon表。

背景信息

通过Paimon Catalog可以方便地管理同一个目录下的所有Paimon表,并与其它阿里云产品连通。目前支持以下4种元数据存储类型,您可以根据需要选择相应的元数据存储类型。元数据存储类型详情如下表所示。

元数据存储类型

说明

可访问Paimon Catalog中Paimon表的其它阿里云产品

filesystem

仅将元数据存储于OSS的指定路径中。

开源大数据平台EMR中的Spark、Hive和Trino等计算引擎,详情请参见EMR的Paimon

dlf

除了将元数据存储于OSS的指定路径中,还会将元数据同步到阿里云数据湖构建DLF中。

maxcompute

除了将元数据存储于OSS的指定路径中,还会在创建、修改、删除Catalog表时,在指定的MaxCompute项目中同步创建、修改、删除MaxCompute外表,方便您在MaxCompute中查询Paimon表的数据。

云原生大数据计算服务MaxCompute,详情请参见Paimon外部表

sync

合并了Paimon DLF Catalog与Paimon MaxCompute Catalog的功能,方便您通过同一个Catalog连通Hologres、MaxCompute等产品。

说明

Paimon Sync Catalog的元数据以DLF中的元数据为准,请勿在MaxCompute中自行修改或删除Paimon外表,防止与元数据出现差异。

注意事项

  • 仅实时计算引擎VVR 8.0.5及以上版本支持创建和配置Paimon Catalog和Paimon表。其中,仅VVR 8.0.7及以上版本支持元数据存储类型设置为DLF 2.0版本。

  • OSS用于存储Paimon表的相关文件,包括数据文件与元数据文件等。请确保已开通阿里云对象存储OSS服务,且OSS Bucket的存储类型需要为标准存储,详情请参见控制台快速入门存储类型概述

    重要

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

  • 创建Paimon Catalog时指定的OSS Bucket和MaxCompute项目必须位于同一地域,且创建Calalog时填写的AccessKey必须对OSS Bucket、MaxCompute项目和DLF目录有读写权限。

  • 通过SQL方式创建或删除Catalog、Database和table后,您可以单击刷新image按钮以更新元数据页面显示。

  • Paimon与VVR版本对应关系详情如下表所示。

    Paimon社区版本

    实时计算Flink版引擎版本(VVR )

    0.9

    8.0.7、8.0.8、8.0.9

    0.8

    8.0.6

    0.7

    8.0.5

    0.6

    8.0.4

    0.6

    8.0.3

创建Paimon Catalog

四种元数据存储类型都支持SQL命令方式,而仅filesystem和dlf支持UI方式。下文将为您介绍各个存储类型所需的配置参数说明。

创建Paimon Filesystem Catalog

UI方式

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

    1. 登录实时计算控制台,单击目标工作空间操作列下的控制台

    2. 单击元数据管理

  2. 单击创建Catalog,选择Apache Paimon,单击下一步

  3. 填写参数配置信息。

SQL方式

数据查询文本编辑区域,输入以下命令。

CREATE CATALOG `my-catalog` WITH (
  'type' = 'paimon',
  'metastore' = 'filesystem',
  'warehouse' = '<warehouse>',
  'fs.oss.endpoint' = '<fs.oss.endpoint>',
  'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
  'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
);

配置项参数说明如下。

  • 通用

    配置项

    说明

    是否必填

    备注

    my-catalog

    Paimon Catalog名称。

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

    type

    Catalog类型。

    固定值为paimon。

    metastore

    元数据存储类型。

    参数取值如下:

    • filesystem:配置为Paimon Filesystem Catalog类型时填写。

    • dlf:配置为Paimon DLF Catalog类型时填写。

    • maxcompute:配置为Paimon MaxCompute Catalog类型时填写。

    • sync:配置为Paimon Sync Catalog类型时填写。

  • OSS

    配置项

    说明

    是否必填

    备注

    warehouse

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

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

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

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

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

    fs.oss.endpoint

    OSS服务的连接地址。

    • 如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。

    • 当warehouse指定的OSS Bucket与Flink工作空间不在同一地域,或使用其它账号下的OSS Bucket时需要填写。

    获取方法请参见OSS地域和访问域名创建AccessKey

    fs.oss.accessKeyId

    拥有读写OSS权限的阿里云账号或RAM账号的Accesskey ID。

    fs.oss.accessKeySecret

    拥有读写OSS权限的阿里云账号或RAM账号的Accesskey secret。

创建Paimon DLF Catalog

重要
  • DLF 2.0版本与DLF 1.0版本创建方式和参数有较大差异,仅VVR 8.0.7及以上版本支持DLF 2.0版本,请您确认使用的DLF版本,根据对应的版本使用相应的方式创建Catalog。

  • ARM架构暂不支持DLF 2.0版本。

DLF 2.0版本

UI方式

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

    1. 登录实时计算控制台,单击目标工作空间操作列下的控制台

    2. 单击元数据管理

  2. 单击创建Catalog,选择Apache Paimon,单击下一步

  3. 填写参数配置信息。

    image

    配置项

    说明

    是否必填

    备注

    metastore

    元数据存储类型

    dlf:配置为Paimon DLF Catalog类型时填写。

    catalog name

    数据目录名称

    UI创建元数据时,如果DLF Catalog目录已经创建,可以从下拉菜单进行选择。

SQL命令

数据查询文本编辑区域,输入以下命令。

CREATE CATALOG `my-catalog` WITH(
'metastore'='dlf-paimon',
'type'='paimon',
'dlf.endpoint'='<dlf.endpoint>',
'dlf.region'='<dlf.region>',
'dlf.catalog.instance.id'='<dlf.catalog.instance.id>'
);

配置项参数说明如下。

配置项

说明

是否必填

备注

my-catalog

Paimon Catalog名称。

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

metastore

元数据存储类型。

固定值为dlf-paimon。

type

Catalog类型。

固定值为paimon。

dlf.endpoint

DLF服务的Endpoint。

跨域(oxs区):dlfnext-share.[regionId].aliyuncs.com。

vpc 区 :dlfnext-vpc.[regionId].aliyuncs.com。

公网: dlfnext.[regionId].aliyuncs.com。

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

例如:dlfnext-vpc.cn-hangzhou.aliyuncs.com。

dlf.region

DLF所在区域

详情请参见已开通的地域和访问域名。例如:cn-hangzhou

说明

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

dlf.catalog.instance.id

DLF数据目录ID。

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

DLF 1.0版本

UI方式

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

    1. 登录实时计算控制台,单击目标工作空间操作列下的控制台

    2. 单击元数据管理

  2. 单击创建Catalog,选择Apache Paimon,单击下一步

  3. 填写参数配置(所需参数与SQL方式一致)。

SQL命令

数据查询文本编辑区域,输入以下命令。

CREATE CATALOG `my-catalog` 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>',
  'fs.oss.endpoint' = '<fs.oss.endpoint>',
  'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
  'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
);

配置项参数说明如下。

  • 通用

    配置项

    说明

    是否必填

    备注

    my-catalog

    Paimon Catalog名称。

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

    type

    Catalog类型。

    固定值为paimon。

    metastore

    元数据存储类型。

    固定值为dlf。

  • OSS

    配置项

    说明

    是否必填

    备注

    warehouse

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

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

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

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

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

    fs.oss.endpoint

    OSS服务的连接地址。

    • 如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。

    • 如果需要将Paimon表存储在OSS-HDFS中,则fs.oss.endpoint的值为cn-<region>.oss-dls.aliyuncs.com,例如cn-hangzhou.oss-dls.aliyuncs.com

    fs.oss.accessKeyId

    拥有读写OSS权限的阿里云账号或RAM账号的Accesskey ID。

    获取方法请参见OSS地域和访问域名创建AccessKey

    fs.oss.accessKeySecret

    拥有读写OSS权限的阿里云账号或RAM账号的Accesskey secret。

  • DLF

    配置项

    说明

    是否必填

    备注

    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。

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

    说明

    如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。

    dlf.catalog.region

    DLF所在区域。

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

    说明

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

创建Paimon MaxCompute Catalog

  • 前提条件

    需要在对应的MaxCompute 项目中上传paimon插件。您可以通过以下任何一种方式上传:

  • SQL命令

    CREATE CATALOG `my-catalog` WITH (
      'type' = 'paimon',
      'metastore' = 'maxcompute',
      'warehouse' = '<warehouse>',
      'maxcompute.endpoint' = '<maxcompute.endpoint>',
      'maxcompute.project' = '<maxcompute.project>',
      'maxcompute.accessid' = '<maxcompute.accessid>',
      'maxcompute.accesskey' = '<maxcompute.accesskey>',
      'maxcompute.oss.endpoint' = '<maxcompute.oss.endpoint>',
      'fs.oss.endpoint' = '<fs.oss.endpoint>',
      'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
      'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
    );
    说明

    在Paimon MaxCompute Catalog中创建Paimon表时,会在MaxCompute项目中同步创建Paimon外表。在MaxCompute中查询Paimon外表时,需要先在MaxCompute执行如下SET语句后,再执行SELECT语句。详情请参见步骤四:通过MaxCompute读取Paimon外部表

    SET odps.sql.common.table.planner.ext.hive.bridge = true;
    SET odps.sql.hive.compatible = true;
  • 配置参数说明

    • 通用

      配置项

      说明

      是否必填

      备注

      my-catalog

      Paimon Catalog名称。

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

      type

      Catalog类型。

      固定值为paimon。

      metastore

      元数据存储类型。

      参数取值如下:

      • filesystem:配置为Paimon Filesystem Catalog类型时填写。

      • dlf:配置为Paimon DLF Catalog类型时填写。

      • maxcompute:配置为Paimon MaxCompute Catalog类型时填写。

      • sync:配置为Paimon Sync Catalog类型时填写。

    • OSS

      配置项

      说明

      是否必填

      备注

      warehouse

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

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

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

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

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

      fs.oss.endpoint

      OSS服务的连接地址。

      • 如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。

      • 当warehouse指定的OSS Bucket与Flink工作空间不在同一地域,或使用其它账号下的OSS Bucket时需要填写。

      获取方法请参见OSS地域和访问域名创建AccessKey

      fs.oss.accessKeyId

      拥有读写OSS权限的阿里云账号或RAM账号的Accesskey ID。

      fs.oss.accessKeySecret

      拥有读写OSS权限的阿里云账号或RAM账号的Accesskey secret。

    • MaxCompute

      配置项

      说明

      是否必填

      备注

      maxcompute.endpoint

      MaxCompute服务的访问域名。

      详情请参见Endpoint

      maxcompute.project

      需要操作的MaxCompute项目名称。

      暂时不支持开启了Schema操作的MaxCompute项目。

      maxcompute.accessid

      拥有MaxCompute权限的阿里云账号的AccessKey。

      获取方法请参见创建AccessKey

      maxcompute.accesskey

      拥有MaxCompute权限的阿里云账号的AccessKey Secret。

      获取方法请参见创建AccessKey

      maxcompute.oss.endpoint

      从MaxCompute访问OSS服务的访问域名。

      如果不填写,则默认使用fs.oss.endpoint的值。详情请参见OSS地域和访问域名

      说明

      由于OSS Bucket与MaxCompute项目处于同一地域,此处应填写内网endpoint。

      maxcompute.life-cycle

      MaxCompute外表的生命周期。

      单位是天。

创建Paimon Sync Catalog

CREATE CATALOG `my-catalog` WITH (
  'type' = 'paimon',
  'metastore' = 'sync',
  'source' = 'dlf',
  'target' = 'maxcompute',
  '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>',
  'maxcompute.endpoint' = '<maxcompute.endpoint>',
  'maxcompute.project' = '<maxcompute.project>',
  'maxcompute.accessid' = '<maxcompute.accessid>',
  'maxcompute.accesskey' = '<maxcompute.accesskey>',
  'maxcompute.oss.endpoint' = '<maxcompute.oss.endpoint>',
  'fs.oss.endpoint' = '<fs.oss.endpoint>',
  'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
  'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
);

配置项参数说明如下。

  • 通用

    配置项

    说明

    是否必填

    备注

    my-catalog

    Paimon Catalog名称。

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

    type

    Catalog类型。

    固定值为paimon。

    metastore

    元数据存储类型。

    参数取值如下:

    • filesystem:配置为Paimon Filesystem Catalog类型时填写。

    • dlf:配置为Paimon DLF Catalog类型时填写。

    • maxcompute:配置为Paimon MaxCompute Catalog类型时填写。

    • sync:配置为Paimon Sync Catalog类型时填写。

  • snyc独有

    配置项

    说明

    是否必填

    备注

    source

    元数据同步的来源。

    此处填写为dlf。

    target

    元数据同步的目标。

    此处填写为maxcompute。

  • OSS

    配置项

    说明

    是否必填

    备注

    warehouse

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

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

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

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

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

    fs.oss.endpoint

    OSS服务的连接地址。

    • 如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。

    • 当warehouse指定的OSS Bucket与Flink工作空间不在同一地域,或使用其它账号下的OSS Bucket时需要填写。

    获取方法请参见OSS地域和访问域名创建AccessKey

    fs.oss.accessKeyId

    拥有读写OSS权限的阿里云账号或RAM账号的Accesskey ID。

    fs.oss.accessKeySecret

    拥有读写OSS权限的阿里云账号或RAM账号的Accesskey secret。

  • DLF

    配置项

    说明

    是否必填

    备注

    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。

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

    说明

    如果Flink与DLF位于同一地域,则使用VPC网络Endpoint,否则使用公网Endpoint。

    dlf.catalog.region

    DLF所在区域。

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

    说明

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

  • maxcompute

    配置项

    说明

    是否必填

    备注

    maxcompute.endpoint

    MaxCompute服务的访问域名。

    详情请参见Endpoint

    maxcompute.project

    需要操作的MaxCompute项目名称。

    暂时不支持开启了Schema操作的MaxCompute项目。

    maxcompute.accessid

    拥有MaxCompute权限的阿里云账号的AccessKey。

    获取方法请参见创建AccessKey

    maxcompute.accesskey

    拥有MaxCompute权限的阿里云账号的AccessKey Secret。

    获取方法请参见创建AccessKey

    maxcompute.oss.endpoint

    从MaxCompute访问OSS服务的访问域名。

    如果不填写,则默认使用fs.oss.endpoint的值。详情请参见OSS地域和访问域名

    说明

    由于OSS Bucket与MaxCompute项目处于同一地域,此处应填写内网endpoint。

    maxcompute.life-cycle

    MaxCompute外表的生命周期。

    单位是天。

管理Paimon数据库

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

  • 创建数据库

    创建Paimon Catalog后,Catalog中会自动创建名为default的数据库。

    --my-catalog需要替换为您创建的Paimon Catalog名称。
    USE CATALOG `my-catalog`;
    
    --my_db需要替换为自定义的database英文名称。
    CREATE DATABASE `my_db`;
  • 删除数据库

    重要

    无法删除DLF、MaxCompute和Sync类型Catalog下的default数据库,允许删除Filesystem类型Catalog下的default数据库。

    --my-catalog需要替换为您创建的Paimon Catalog名称。
    USE CATALOG `my-catalog`;
    
    --my_db需要替换为您想要删除的数据库名称。
    DROP DATABASE `my_db`; --只需要删除内部没有任何表的数据库。
    DROP DATABASE `my_db` CASCADE; --删除数据库且同时删除数据库下的所有表。
    

管理Paimon表

创建表

说明

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}即可。

  • 通过CREATE TABLE语句创建表

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

    在名为my-catalog的Catalog下的my_db的数据库中,创建一张分区表,其中分区键为dt,主键为dt、shop_id和user_id,分桶数固定为4。代码示例如下。

    --my-catalog需要替换为您创建的Paimon Catalog名称。
    --my_db需要替换为您想要使用的database名称。
    --my_tbl也可以改为自定义的英文名称。
    CREATE TABLE `my-catalog`.`my_db`.`my_tbl` (
      dt STRING,
      shop_id BIGINT,
      user_id BIGINT,
      num_orders INT,
      total_amount INT,
      PRIMARY KEY (dt, shop_id, user_id) NOT ENFORCED
    ) PARTITIONED BY (dt) WITH (
      'bucket' = '4'
    );

    关于Paimon表的更多参数与使用方式,详情请参见流式数据湖仓PaimonPaimon主键表和Append Only表

  • 通过CREATE TABLE AS(CTAS)语句CREATE DATABASE AS(CDAS)语句创建表

    CTAS与CDAS语句不仅会自动同步数据,还会同步表结构的变更。通过CTAS与CDAS语句,您可以方便地将MySQL、Kafka等数据源中的表同步至Paimon Catalog中。

    由于CTAS与CDAS语句涉及数据的同步,您需要部署启动作业,具体操作请参见SQL作业开发作业启动

    说明
    • 通过CTAS与CDAS语句创建的Paimon表时,暂不支持设置'bucket' = '-1'以使用动态分桶的Paimon主键表Paimon Append Only表(非主键表)

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

    • 创建指定表并同步表中的数据

      例如,根据mysql.tpcds.web_sales表的结构,自动创建`my-catalog`.`my_db`.`web_sales`Paimon表,并同步表中的数据。另外指定Paimon表的分桶数为4,以及使用input变更数据产生机制。

      CREATE TABLE IF NOT EXISTS `<catalog name>`.`<db name>`.`<table name>`
      WITH (
        'bucket' = '4',
        'changelog-producer' = 'input'
      ) AS TABLE mysql.tpcds.web_sales;
    • 创建整个数据库的表

      例如,根据mysql.tpcds数据库中每张表的结构,自动在`my-catalog`.`my_db`中创建对应的Paimon表,并同步表中的数据。另外指定Paimon表使用input变更数据产生机制。

      CREATE DATABASE IF NOT EXISTS `<catalog name>`.`<db name>`
      WITH (
        'changelog-producer' = 'input'
      ) AS DATABASE mysql.tpcds INCLUDING ALL TABLES;
    • 同步列类型变更

      通过CTAS/CDAS语句创建的Paimon表不仅支持列的增加,还支持特定的列类型变更。您可以根据需要,选择是否使用字段类型宽容模式。

      • 默认情况下

        通过CTAS/CDAS语句创建的Paimon表的列类型与源表的列类型一致,并支持以下列类型变更:

        • 支持整数类型TINYINT、SMALLINT、INT、BIGINT变更为精度相同或更高的整数类型,其中TINYINT精度最低,BIGINT精度最高。

        • 支持浮点类型FLOAT、DOUBLE变更为精度相同或更高的浮点类型,其中FLOAT精度最低,DOUBLE精度最高。

        • 支持字符串类型CHAR、VARCHAR和STRING变更为精度相同或更高的字符串类型。

      • 使用字段类型宽容模式

        在CTAS与CDAS场景中,Paimon Catalog支持在WITH参数中设置'enableTypeNormalization' = 'true'后,将使用字段类型宽容模式。在上游发生数据类型修改事件时,只要所修改的类型与原类型的归一化类型相同,都视作修改成功。目前类型归一化规则如下:

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

        • FLOAT和DOUBLE归一化为DOUBLE。

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

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

        例如:

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

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

        Paimon表中存储的数据类型将统一为归一化后的类型。例如,MySQL中类型分别为SMALLINT和INT的两列,在Paimon表中均存储为BIGINT类型。

修改表结构

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

操作

代码示例

添加或修改表参数

将表的write-buffer-size参数值修改为256 MB,并将write-buffer-spillable参数值修改为true。

ALTER TABLE my_table SET (
  'write-buffer-size' = '256 MB',
  'write-buffer-spillable' = 'true'
);

临时修改表参数

您可以通过在表名后添加SQL Hint的方式,在写入表时临时修改表参数。临时修改的表参数仅对当前SQL作业生效。

  • 在写入my_table表时,临时将write-buffer-size设为256 MB,将write-buffer-spillable设为true。

    INSERT INTO my_table /*+ OPTIONS('write-buffer-size' = '256 MB', 'write-buffer-spillable' = 'true') */
    SELECT ...;
  • 在消费my_table表时,临时将scan.mode设为latest,将scan.parallelism设为10。

    SELECT * FROM t /*+ OPTIONS('scan.mode' = 'latest', 'scan.parallelism' = '10') */;

重命名表

将表的名称从my_table修改为my_table_new。

ALTER TABLE my_table RENAME TO my_table_new;
重要

由于对象存储的重命名操作不具有原子性,因此如果您使用对象存储OSS保存Paimon表文件,请谨慎进行重命名表操作。推荐您使用OSS-HDFS服务以保证文件操作的原子性。

添加新列

  • 将类型为INT的c1列和类型为STRING的c2列添加在my_table表的末尾。

    ALTER TABLE my_table ADD (c1 INT, c2 STRING);
  • 将类型为STRING的c2列添加在my_table表中c1的列后面。

    ALTER TABLE my_table ADD c2 STRING AFTER c1;
  • 将类型为INT的c1列添加在my_table表的开头。

    ALTER TABLE my_table ADD c1 INT FIRST;

重命名列

将my_table表中名称为c0的列重命名为c1。

ALTER TABLE my_table RENAME c0 TO c1;

删除列

将my_table表中c1和c2两列删除。

ALTER TABLE my_table DROP (c1, c2);

删除分区

将my_table表中dt=20240108,hh=06dt=20240109,hh=07两个分区删除。

ALTER TABLE my_table DROP PARTITION (`dt` = '20240108', `hh` = '08'), PARTITION (`dt` = '20240109', `hh` = '07');

修改列注释

将my_table表中buy_count列的注释改为this is buy count。

ALTER TABLE my_table MODIFY buy_count BIGINT COMMENT 'this is buy count';

修改列顺序

  • 将my_table表中名称为col_a,类型为DOUBLE的列移动到开头。

    ALTER TABLE my_table MODIFY col_a DOUBLE FIRST;
  • 将my_table表中名称为col_a,类型为DOUBLE的列移动到col_b列的后面。

    ALTER TABLE my_table MODIFY col_a DOUBLE AFTER col_b;

修改列类型

将my_table表中的col_a列类型改为DOUBLE。

ALTER TABLE my_table MODIFY col_a DOUBLE;

Paimon表支持的列类型修改情况请参见下表。下图中的〇表示支持类型转换,空单元格代表不支持类型转换。

image

删除表

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

--my-catalog需要替换为您创建的Paimon Catalog名称。
--my_db需要替换为您想要使用的database名称。
--my_tbl需要替换为您创建的Paimon Catalog表名称。
DROP TABLE `my-catalog`.`my_db`.`my_tbl`;

出现The following statement has been executed successfully!的提示信息说明Paimon表删除成功。

查看或删除Paimon Catalog

  1. 实时计算控制台,单击目标工作空间操作列的控制台

  2. 元数据管理页面,查看或删除Paimon Catalog。

    • 查看:在Catalog列表页面,查看Catalog名称类型。如果您需要查看Catalog下的数据库和表,请单击查看

    • 删除:在Catalog列表页面,单击目标Catalog名称对应操作列的删除

      说明

      删除Paimon Catalog只会删除Flink项目空间数据管理中的记录,不会影响Paimon表的数据文件。删除Catalog后,只需要重新执行创建Paimon Catalog,即可重新使用Catalog中的Paimon表。

      您也可以在数据查询文本编辑区域输入DROP CATALOG <catalog name>;,选中代码后单击运行

相关文档

  • 创建Paimon表后,您可以从Paimon表中消费数据或向Paimon表中写入数据,详情请参见Paimon表数据写入和消费

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

  • 不同场景下Paimon主键表和Append Scalable表的常用优化,详情请参见Paimon性能优化