paimon使用腾讯云cosn作为仓库存储的使用方式

背景

        paimon是flink推出的高性能流式数据湖平台,我们在业务应用中选型了paimon作为数据湖的落地框架。对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。

        我们在大数据存储使用的是腾讯云的cosn对象存储,因此我们需要两者进行结合使用,让cosn作为paimon的存储仓库。

paimon的使用

        我们需要用java对paimon进行基本的DDL操作,例如创建数据库,创建数据表等等。根据paimon的官方要求,我们得先构建catalog。

        先引入paimon的依赖包

<dependency>
  <groupId>org.apache.paimon</groupId>
  <artifactId>paimon-bundle</artifactId>
  <version>1.1-SNAPSHOT</version>
</dependency>
<dependency>
  <groupId>org.apache.paimon</groupId>
  <artifactId>paimon-flink-common</artifactId>
### Paimon 的数据处理与开发使用指南 Apache Paimon 是一个高效的流式数据湖平台,专为大数据处理而设计。它支持多种分布式文件系统和计算引擎,能够实现高效的数据写入、查询以及状态管理。以下是关于如何使用 Paimon 进行数据处理和开发的详细指南。 #### 1. 数据模型与表结构设计 Paimon 支持主键模型(Primary Key Table),该模型允许通过一组列来唯一标识每条记录。在主键表中,Paimon 通过对每个 bucket 中的主键进行排序来强制执行数据排序,从而允许用户通过对主键应用过滤条件来实现高性能查询。主键表是 Paimon 作为流式数据湖的核心特性之一,特别适用于接收来自数据库 CDC 或 Flink Streaming 产生的 changelog 数据(如 insert、update、delete 操作)[^4]。 创建主键表时,需使用以下关键字: ```sql CREATE TABLE paimon_table ( id INT PRIMARY KEY NOT ENFORCED, name STRING, age INT ); ``` #### 2. 数据写入与 Compaction 配置 Paimon 使用 LSM(Log-Structured Merge-Tree)结构来优化写入性能。LSM 结构能够在写入过程中保持较高的吞吐量,同时在后台自动进行 compaction(合并)操作以减少存储开销并提升读取性能。默认情况下,compaction 在 Flink Sink 中自动完成,但为了防止阻塞写操作,可以调整相关参数以启用异步 compaction: ```properties num-sorted-run.stop-trigger = 2147483647 sort-spill-threshold = 10 changelog-producer.lookup-wait = false ``` 这些配置有助于在写放大和读放大之间取得平衡,确保在高并发写入场景下仍能保持良好的性能表现 [^4]。 #### 3. 数据一致性保障 Paimon 通过简单的湖仓抽象设计、良好的状态管理机制以及严谨的测试用例,确保了数据的一致性。在实际使用过程中,几乎不会遇到数据丢失或一致性问题。这主要得益于其底层架构对状态管理的精细控制,避免了因现场安全、状态管理不当或数据写入顺序错误而导致的数据丢失问题 [^3]。 #### 4. 查询性能优化 Paimon 在查询性能方面表现出色,尤其是在全量 + 增量写入的场景中。相比 Hudi MOR(Merge on Read),Paimon 的摄入速度大约快 3 倍,查询速度则可达到 Hudi 的 7 倍左右,特别是在点查(point query)场景下更为明显。这种性能优势源于 Paimon 底层有序的数据组织方式,能够在查询时裁剪掉大部分不必要的数据,从而显著减少 I/O 开销 [^3]。 #### 5. 生态集成与扩展性 Paimon 具有丰富的生态系统支持,能够轻松集成多种分布式文件系统(如 HDFS、S3)和计算引擎(如 Flink、Spark)。其设计简洁明了,各个引擎的集成都非常自然且易于理解,这对维护者来说非常重要。此外,Paimon 的生态也在不断扩展,已支持 Doris、StarRocks 等新兴分析引擎的集成 [^3]。 #### 6. 实际应用场景 Paimon 可广泛应用于实时数据仓库、流式数据处理、湖仓一体架构等场景。例如,使用 Flink CDC 从业务库抽取数据到 Paimon,可以实现实时数据同步与变更捕获。具体流程如下: 1. 配置 Flink CDC 源连接器,连接到业务数据库。 2. 定义目标 Paimon 表结构,并设置主键约束。 3. 启动 Flink 作业,将变更数据写入 Paimon 表中。 示例 Flink SQL 代码如下: ```sql CREATE TABLE mysql_cdc_source ( id INT PRIMARY KEY NOT ENFORCED, name STRING, age INT ) WITH ( 'connector' = 'mysql-cdc', 'hostname' = 'localhost', 'port' = '3306', 'database-name' = 'test_db', 'table-name' = 'users', 'username' = 'root', 'password' = 'password' ); INSERT INTO paimon_table SELECT * FROM mysql_cdc_source; ``` 此流程能够实现实时数据同步,适用于需要快速响应业务变化的场景 [^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路边草随风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值