自学内容网 自学内容网

【Apache Paimon】-- 5 -- Flink 向 Paimon 表写入数据

目录

1、通过CTAS/CDAS语句同步数据及表结构变更

2、通过INSERT INTO语句插入或更新数据

3、通过INSERT OVERWRITE语句覆写数据

3.1、my_table_1 表是非分区表,覆写整张my_table表

3.2、my_table_1 表是分区表

3.3、my_table_1 表是分区表,动态覆写 my_table表中的分区

3.4、my_table_1 表是分区表,覆写整张 my_table_1 表


1、通过CTAS/CDAS语句同步数据及表结构变更

以 OSS 为例,DDL 

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类型时填写。

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

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

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

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

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

fs.oss.endpointOSS服务的连接地址。
  • 如果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。

详细参考:Filesystems | Apache Paimon

2、通过INSERT INTO语句插入或更新数据

  • Paimon主键表可以接受所有类型(INSERT、UPDATE_BEFORE、UPDATE_AFTER、DELETE)的消息,相同主键的数据在写入后会根据数据合并机制进行合并。
  • Paimon Append Only表(非主键表)只能接受INSERT类型的消息。

3、通过INSERT OVERWRITE语句覆写数据

     这里所提的覆写是指清空并重新写入数据。我们可通过 INSERT OVERWRITE 语句覆写整张Paimon 表或覆写特定分区,SQL语句示例如下。

****** 特别注意 *******
(1)仅批作业支持 INSERT OVERWRITE 语句。

(2)默认情况下,INSERT OVERWRITE 操作不会产生变更数据,删除与导入的数据无法被下游流式消费。
     如果用户需要消费此类数据,请参考流式消费 INSERT OVERWRITE 语句的结果。

3.1、my_table_1 表是非分区表,覆写整张my_table表

INSERT OVERWRITE my_table_1 SELECT ...;

3.2、my_table_1 表是分区表

  覆写 my_table_1 表中的dt=20241108,hh=06 分区。

INSERT OVERWRITE my_table_1 PARTITION (`dt` = '20241108', `hh` = '06') 

SELECT ...;

3.3、my_table_1 表是分区表,动态覆写 my_table表中的分区

INSERT OVERWRITE my_table_1 SELECT ...;

3.4、my_table_1 表是分区表,覆写整张 my_table_1 表

INSERT OVERWRITE my_table_1 /*+ OPTIONS('dynamic-partition-overwrite' = 'false') */ SELECT ...;

参考:SQL Write | Apache Paimon


原文地址:https://blog.csdn.net/high2011/article/details/143907190

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!