Apache Paimon(孵化中)是一个流式数据湖平台,支持高速数据摄取、变化数据跟踪和高效的实时分析。

架构

Paimon架构

如上面的架构图所示:

读/写:Paimon 支持以多种方式读/写数据和执行 OLAP 查询。

  • 对于读取,它支持消费
    • 历史快照(批处理模式)的数据,
    • 从最新偏移量(流处理模式)读取数据,或者
    • 以混合方式读取增量快照。
  • 对于写入,它支持从数据库的变化日志(CDC)中进行流式同步,或从离线数据中批量插入/覆盖。

生态系统:除了 Apache Flink 之外,Paimon 还支持其他计算引擎的读取,如 Apache Hive、Apache Spark 和 Trino。

内部原理:Paimon 在文件系统/对象存储中存储列式文件,并使用 LSM 树结构来支持大量数据更新和高性能查询。

统一存储

对于像 Apache Flink 这样的流引擎,通常有三种类型的连接器:

  • 消息队列,如 Apache Kafka,用于管道的源头和中间阶段,以确保延迟在秒级内。
  • OLAP 系统,如 Clickhouse,以流的方式接收处理后的数据,并为用户的临时查询提供服务。
  • 批量存储,如 Apache Hive,支持传统批处理的各种操作,包括 INSERT OVERWRITE

Paimon 提供了表的抽象化。它的使用方式与传统数据库没有区别:

  • 在批处理执行模式下,它就像一个 Hive 表,支持 Batch SQL 的各种操作。查询它可以看到最新的快照。
  • 在流式执行模式下,它的行为就像一个消息队列。查询它的行为就像从一个历史数据永不过期的消息队列中查询一个流变化日志。

(END)