官宣|Apache Paimon 0.6.0 发布公告

简介: 官宣|Apache Paimon 0.6.0 发布公告

Apache Paimon PPMC 正式发布 Apache Paimon 0.6.0 孵化版本。共有 58 人参与了该版本的开发,并完成了 400 多条提交。感谢所有贡献者的支持!


一些突出的进展如下:

  1. Flink Paimon CDC 支持目前大部分的主流数据源。
  2. Flink 1.18 和 Paimon 支持 CALL 过程,这将使表管理变得更容易。
  3. 跨分区更新可用于生产!
  4. 引入了读优化表 (T$ro),以提高查询性能。
  5. Append 表生产可用!
  6. Paimon Presto 模块生产可用!
  7. Metrics 系统与 Flink Metrics 集成
  8. Spark Paimon 取得巨大进步

详情请参考下文。


Flink


Paimon CDC


Paimon CDC 集成了 Flink CDC、Kafka、Pulsar 等,并在 0.6 版本中提供了全面的支持:

  1. Kafka CDC 支持的格式 Canal Json、Debezium Json、Maxwell 和 OGG。
  2. 新增 Pulsar CDC,包括表同步和整库同步。
  3. Mongo CDC 可用于生产!


Flink Batch Source


默认情况下,批量读取的并行性与 Split 数相同,而流读取的并行性与桶数相同,但不会大于 scan.infer-parallelism.max(默认为 1024)。


Flink Streaming Source


Consumer-id 可用于生产!


当流式读表记录消耗 Paimon 中的快照 id 时,可以指定 consumer-id,新启动的作业可以继续消耗之前的进度,而无需从状态中恢复。你也可以将 consumer.mode 设为 at-least-once 以获得更好的 Checkpoint 顺滑度。


Flink Time Travel


Flink 1.18 SQL 支持时间旅行查询(也可使用 dynamic option):



SELECT * FROM t FOR SYSTEM_TIME AS OF TIMESTAMP '2023-01-01 00:00:00';


Flink Call Procedures


Flink 1.18 SQL 支持以下 Call Procedures:

Procedure Name

Example

compact

CALL sys.compact('default.T', 'p=0', 'zorder', 'a,b', 'sink.parallelism=4')

compact_database

CALL sys.compact_database('db1|db2', 'combined', 'table_.*', 'ignore', 'sink.parallelism=4')

create_tag

CALL sys.create_tag('default.T', 'my_tag', 10)

delete_tag

CALL sys.delete_tag('default.T', 'my_tag')

merge_into

CALL sys.merge_into('default.T', '', '', 'default.S', 'T.id=S.order_id', '', 'price=T.price+20', '', '*')

remove_orphan_files

CALL remove_orphan_files('default.T', '2023-10-31 12:00:00')

reset_consumer

CALL sys.reset_consumer('default.T', 'myid', 10)

rollback_to

CALL sys.rollback_to('default.T', 10)

Flink 1.19 将支持 "命名参数"(Named Arguments),这将使其在有多个参数时更易于使用。


Committer Improvement


Committer 负责提交元数据,有时可能会遇到瓶颈,导致反压操作。在 0.6 中,我们进行了以下优化:

  1. 默认情况下,paimon 会同步删除过期快照。用户可以通过将 snapshot.expire.execution-mode 设置为 async 来使用异步过期模式,以提高性能。
  2. 可以使用 Flink 的细粒度资源管理(fine-grained-resource-management)功能,只增加 Committer 的堆内存和 CPU。


Primary Key Table


Cross Partition Update


跨分区更新可用于生产!


目前支持 Flink 批量和流式写入,企业已将其应用于生产环境!如何使用跨分区更新:

  1. 主键不包含所有分区字段。
  2. 使用动态 Bucket 模式,即 bucket 为-1。


该模式直接维护 Key 到分区和桶的映射,使用本地磁盘,并在开始写任务时通过读取表中的所有现有 Keys 来初始化索引。虽然维护索引是必要的,但这种模式也能保持较高的吞吐量性能。


Read Optimized


对于主键表,这是一种 "MergeOnRead "技术。读取数据时,多层 LSM 数据会被合并,并行数量会受到数据桶数量的限制。如果想在某些情况下快速查询,但只能找到较早的数据,可以从读优化表中查询:SELECT * FROM T$ro。


但这无法保证数据的新鲜度,因此可以在写入数据时配置 "full-compaction.delta-commits",以确保读取的数据具有确定的延迟。


StarRocks 和其他 OLAP 系统将在 Paimon 0.6 的基础上发布一个版本,以大大提高读优化表的查询性能。


Partial-Update


在 0.6 中,你可以为带有 Sequence-Group 的 Partial-Update 合并引擎定义聚合函数。这样就可以在特定条件下对某些字段执行特殊的聚合,如计数、求和等。


Compaction


我们引入了一些异步技术,以进一步提高 Compaction 的性能!20%+


0.6 引入了整库 Compaction 功能,您可以运行命令为多个数据库提交 Compaction 作业。如果提交的是流式作业,作业会持续监控表的新变化,并在需要时执行 Compaction。


Append Table


Append Table 模式生产可用!


通过为非主键表定义 "bucket"="-1",可以为该表分配一种 Append 可扩展模式。这种表是 Hive 格式的升级版。你可以使用它:

1. Spark、Flink 批量读写,包括 INSERT OVERWRITE 支持。

2. Flink、Spark 流读写,Flink 会对小文件进行压缩。

3. 你还可以对该表进行排序(z-order),这将大大加快查询性能,尤其是当存在与排序键相关的过滤条件时。


你可以为 append-only 表设置 write-buffer-for-append 选项,以适用于同时流式写入大量分区的情况。


0.6 还引入了 Hive 表迁移,Apache Hive 支持 ORC、Parquet 文件格式,这些格式可以迁移到 Paimon。当数据迁移到 paimon 表时,原表将永久消失。因此,如果还需要原始表,请备份数据。迁移后的表将成为 Append 表。你可以使用 Flink Spark CALL 存储过程来迁移 Hive 表。


StarRocks 和其他 OLAP 系统将在 Paimon 0.6 的基础上发布一个版本,以大大提高 Append 表的查询性能。


Tag Management


Upsert To Partitioned


Tag 将维护 Snapshot 的 Manifest 和数据文件。离线数据仓库每天都需要一个不可变的视图,以确保计算的幂等性。因此,我们创建了一个 Tag 机制来产生这些视图。


但是,传统的 Hive 数据仓库更习惯于使用分区来指定查询的 Tag,更习惯于使用 Hive 计算引擎。


因此,我们引入了 metastore.tag-to-partition 和 metastore.tag-to-partition.preview,将非分区主键表映射到 Hive 元存储中的分区表,并将分区字段映射为 Tag 的名称,以便与 Hive 完全兼容。


Tag with Flink Savepoint


你无法从很老的 Flink 保存点恢复写作业,这可能会导致 Paimon 表出现问题。在 0.6 中,我们避免了这种情况,即当数据异常时会抛出异常,让作业无法启动。


如果想从老的保存点恢复,建议将 sink.savepoint.auto-tag 设置为 true,以启用自动为 Flink 保存点创建 Tag 的功能,并在重新恢复时 rollback 到此 Tag。


Formats


0.6 将 ORC 版本升级到 1.8.3,Parquet 版本升级到 1.13.1。在此版本中,ORC 原生支持 ZSTD,这是一种压缩率更高的压缩算法。我们建议在需要高压缩率时使用它。


Metrics


在 0.6 中,Paimon 构建了一个 Metrics 系统来衡量读写行为,Paimon 支持内置 Metrics 来衡量提交、扫描、写入和 Plan 等操作,这些 Metrics 可以桥接到 Flink 等计算引擎。对于流式读取来说,最重要的是 currentFetchEventTimeLag。


Paimon Spark


  1. 支持Spark3.5
  2. Structured Streaming:支持作为Streaming Source,支持通过自定义read trigger进行源端流量控制,支持流读changelog
  3. Row level op:DELETE 优化,支持UPDATE、MERGE INTO
  4. Call Procedure:新增compact、migrate_table、migrate_file、remove_orphan_files、create_tag、delete_tag、rollback
  5. 查询优化:Push down filter 优化、支持 Push down limit、Runtime filter(DPP)
  6. 其它:Truncate Table 优化、支持 CTAS、支持 Truncate Partition


Paimon Trino


Paimon Trino 模块主要有以下工作来加速查询:

  1. 优化转换 Page 的问题,避免 Page 太大导致内存溢出
  2. 实现了 Limit Pushdown,并且能结合分区的过滤条件


Paimon Presto


Paimon Presto 模块正式进入生产可用,增加了以下的能力:

  1. 实现了 Filter Pushdown,这让 Paimon Presto 进入正式可用
  2. 使用 Inject 模式,这可以让 Paimon Catalog 常驻进程中,提高查询的速度


关于 Paimon


  1. 微信公众号:Apache Paimon ,了解行业实践与最新动态
  2. 官网:https://paimon.apache.org/ 查询文档和关注项目
相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
SQL 关系型数据库 MySQL
385 0
|
5月前
|
存储 分布式计算 Apache
湖仓一体:小米集团基于 Apache Doris + Apache Paimon 实现 6 倍性能飞跃
小米通过将 Apache Doris(数据库)与 Apache Paimon(数据湖)深度融合,不仅解决了数据湖分析的性能瓶颈,更实现了 “1+1>2” 的协同效应。在这些实践下,小米在湖仓数据分析场景下获得了可观的业务收益。
1040 9
湖仓一体:小米集团基于 Apache Doris + Apache Paimon 实现 6 倍性能飞跃
|
10月前
|
SQL 分布式计算 流计算
官宣|Apache Paimon 1.0 发布公告
官宣|Apache Paimon 1.0 发布公告
722 8
|
10月前
|
存储 分布式数据库 Apache
小米基于 Apache Paimon 的流式湖仓实践
小米基于 Apache Paimon 的流式湖仓实践
285 0
小米基于 Apache Paimon 的流式湖仓实践
|
11月前
|
存储 分布式数据库 Apache
小米基于 Apache Paimon 的流式湖仓实践
本文整理自Flink Forward Asia 2024流式湖仓专场分享,由计算平台软件研发工程师钟宇江主讲。内容涵盖三部分:1)背景介绍,分析当前实时湖仓架构(如Flink + Talos + Iceberg)的痛点,包括高成本、复杂性和存储冗余;2)基于Paimon构建近实时数据湖仓,介绍其LSM存储结构及应用场景,如Partial-Update和Streaming Upsert,显著降低计算和存储成本,简化架构;3)未来展望,探讨Paimon在流计算中的进一步应用及自动化维护服务的建设。
696 0
小米基于 Apache Paimon 的流式湖仓实践
|
分布式计算 大数据 Apache
Apache Spark & Paimon Meetup · 北京站,助力 LakeHouse 架构生产落地
2024年11月15日13:30北京市朝阳区阿里中心-望京A座-05F,阿里云 EMR 技术团队联合 Apache Paimon 社区举办 Apache Spark & Paimon meetup,助力企业 LakeHouse 架构生产落地”线下 meetup,欢迎报名参加!
440 59
|
存储 数据挖掘 数据处理
巴别时代使用 Apache Paimon 构建 Streaming Lakehouse 的实践
随着数据湖技术的发展,企业纷纷探索其优化潜力。本文分享了巴别时代使用 Apache Paimon 构建 Streaming Lakehouse 的实践。Paimon 支持流式和批处理,提供高性能、统一的数据访问和流批一体的优势。通过示例代码和实践经验,展示了如何高效处理实时数据,解决了数据一致性和故障恢复等挑战。
334 61
|
存储 数据挖掘 数据处理
Apache Paimon 是一款高性能的数据湖框架,支持流式和批处理,适用于实时数据分析
【10月更文挑战第8天】随着数据湖技术的发展,越来越多企业开始利用这一技术优化数据处理。Apache Paimon 是一款高性能的数据湖框架,支持流式和批处理,适用于实时数据分析。本文分享了巴别时代在构建基于 Paimon 的 Streaming Lakehouse 的探索和实践经验,包括示例代码和实际应用中的优势与挑战。
683 1
|
3月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
639 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来

推荐镜像

更多