官宣|Apache Paimon 0.6.0 发布公告

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 官宣|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轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
4天前
|
存储 数据挖掘 数据处理
巴别时代使用 Apache Paimon 构建 Streaming Lakehouse 的实践
随着数据湖技术的发展,企业纷纷探索其优化潜力。本文分享了巴别时代使用 Apache Paimon 构建 Streaming Lakehouse 的实践。Paimon 支持流式和批处理,提供高性能、统一的数据访问和流批一体的优势。通过示例代码和实践经验,展示了如何高效处理实时数据,解决了数据一致性和故障恢复等挑战。
85 61
|
4天前
|
分布式计算 大数据 Apache
Apache Spark & Paimon Meetup · 北京站,助力 LakeHouse 架构生产落地
2024年11月15日13:30北京市朝阳区阿里中心-望京A座-05F,阿里云 EMR 技术团队联合 Apache Paimon 社区举办 Apache Spark & Paimon meetup,助力企业 LakeHouse 架构生产落地”线下 meetup,欢迎报名参加!
27 3
|
21天前
|
存储 数据挖掘 数据处理
Apache Paimon 是一款高性能的数据湖框架,支持流式和批处理,适用于实时数据分析
【10月更文挑战第8天】随着数据湖技术的发展,越来越多企业开始利用这一技术优化数据处理。Apache Paimon 是一款高性能的数据湖框架,支持流式和批处理,适用于实时数据分析。本文分享了巴别时代在构建基于 Paimon 的 Streaming Lakehouse 的探索和实践经验,包括示例代码和实际应用中的优势与挑战。
41 1
|
3月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17604 13
Apache Paimon V0.9最新进展
|
3月前
|
SQL API Apache
官宣|Apache Flink 1.20 发布公告
Apache Flink 1.20.0 已发布,这是迈向 Flink 2.0 的最后一个小版本,后者预计年底发布。此版本包含多项改进和新功能,涉及 13 个 FLIPs 和 300 多个问题解决。亮点包括引入物化表简化 ETL 管道开发,统一检查点文件合并机制减轻文件系统压力,以及 SQL 语法增强如支持 `DISTRIBUTED BY` 语句。此外,还进行了大量的配置项清理工作,为 Flink 2.0 铺平道路。这一版本得益于 142 位贡献者的共同努力,其中包括来自中国多家知名企业的开发者。
896 7
官宣|Apache Flink 1.20 发布公告
|
4月前
|
存储 运维 关系型数据库
探索 Apache Paimon 在阿里智能引擎的应用场景
本文整理自Apache Yarn && Flink Contributor,阿里巴巴智能引擎事业部技术专家王伟骏(鸿历)老师在 5月16日 Streaming Lakehouse Meetup · Online 上的分享。
25059 34
探索 Apache Paimon 在阿里智能引擎的应用场景
|
4月前
|
存储 缓存 Apache
Apache Paimon 在蚂蚁的应用
本文整理自 Apache Paimon Committer 闵文俊老师在5月16日 Streaming Lakehouse Meetup · Online 上的分享。Apache Paimon 是一种实时数据湖格式,设计用于流批一体处理,支持实时更新和OLAP查询。它采用LSM Tree结构,提供多种Changelog Producer和Merge Engine,支持高效的数据合并。Paimon适用于流读、批读及时间旅行查询,与多种查询引擎兼容。在蚂蚁集团的应用中,Paimon降低了资源开销,提升了查询性能,简化了研发流程,特别是在去重、核对场景和离线查询加速方面表现突出。
556 7
Apache Paimon 在蚂蚁的应用
|
3月前
|
存储 数据挖掘 数据处理
【破晓数据湖新时代!】巴别时代揭秘:Apache Paimon 打造 Streaming Lakehouse 的神奇之旅!
【8月更文挑战第9天】随着数据湖技术的发展,企业积极探索优化数据处理的新途径。Apache Paimon 作为一款高性能数据湖框架,支持流式与批处理,适用于实时数据分析。本文分享巴别时代使用 Paimon 构建 Streaming Lakehouse 的实践经验。Paimon 统一了数据存储与查询方式,对构建实时数据管道极具价值。
212 3
|
3月前
|
存储 运维 数据处理
Apache Paimon:重塑阿里智能引擎数据处理新纪元,解锁高效存储与实时分析潜能!
【8月更文挑战第2天】探索 Apache Paimon 在阿里智能引擎的应用场景
202 2
|
4月前
|
SQL Apache 流计算
Apache Doris + Paimon 快速搭建指南|Lakehouse 使用手册(二)
为大家介绍 Lakehouse 使用手册(二)之 Apache Doris + Apache Paimon 搭建指南。

推荐镜像

更多