认识Apache Paimon
Paimon是什么?这个问题困扰我良久,郁郁不得其解。
随着我不断尝试、重复思考,直到完全跑通了入门案例才终于有种豁然开朗的感觉(这感觉真好),感叹Paimon未来大有可为。
后续我将出一个系列教程,为大家逐步讲解Paimon的用法,带你轻松入门。本文则是Paimon系列教程的第一篇,为大家介绍什么是Paimon。
什么是Paimon
首先我们来看看Paimon的前世今生吧。
Paimon原名是Flink Table Store(简称FTS),最初是Flink社区孵化的一个子项目,该项目的本意是想提供一个 Flink 完全内置的存储,解决实时、近实时、Queue、Table Format 的所有问题,结合 Flink + 这个内置存储,提供 Materialized View 的自动流处理,直接提供查询服务,打造一个完整的 Streaming DB。好事多磨,经过长达近2年的打磨,最终形成了湖 + LSM的方案,并于2023年3月12日进入ASF孵化器,才正式更名为Apache Paimon。
简而言之,Apache Paimon是一种流批统一的湖存储格式,支持高吞吐的写入和低延迟的查询。
Paimon的核心能力
基于HDFS或者对象存储构建低成本的轻量级数据湖存储服务。
支持在流模式与批模式下读写大规模数据集。
支持分钟级到秒级数据新鲜度的批查询和OLAP查询。
支持消费与产生增量数据,可作为传统数仓与流式数仓的各级存储。
支持预聚合数据,降低存储成本与下游计算压力。
支持历史版本回溯。
支持高效的数据过滤。
支持表结构变更。
基于Paimon的优秀能力,Paimon有望成为未来流数据湖平台架构的最佳选择。
Paimon支持的文件系统
- 本地文件系统
使用本地文件系统可以很方便地上手体验Paimon,适合学习阶段。具体配置如下:
create catalog my_catalog with (
'type'='paimon',
'warehouse'='file:/home/yuma/paimon' # 此处可以用绝对路径,避免找不到文件
);
- HDFS
使用HDFS文件系统则需要有部署Hadoop,有Hadoop使用经验的同学会更容易上手。具体配置如下:
create catalog my_catalog with (
'type'='paimon',
'warehouse' = 'hdfs://<namenode>:<port>/<path>'
);
- OSS
OSS是阿里云的对象存储服务,使用OSS文件系统则需要在阿里云的OSS服务,学习阶段可能会产生一点点费用(基本可以忽略)。该方式对于很多生产级用户应该是首选。具体配置如下:
create catalog my_catalog with (
'type'='paimon',
'warehouse' = 'oss://<bucket>/<path>',
'fs.oss.endpoint' = 'oss-cn-hangzhou.aliyuncs.com',
'fs.oss.accessKeyId' = 'xxx',
'fs.oss.accessKeySecret' = 'yyy'
)
- S3
S3是亚马逊的对象存储服务,类似于OSS。具体配置如下:
create catalog my_catalog with (
'type'='paimon',
'warehouse' = 's3://<bucket>/<path>',
's3.endpoint' = 'your-endpoint-hostname',
's3.access-key' = 'xxx',
's3.secret-key' = 'yyy'
)
Paimon支持的计算引擎
- Flink
- Spark
- Doris
- Hive
- StarRocks
- Trino
- Presto
- ……
Paimon几乎与常见的计算引擎都有着良好的集成度。一份数据,我们可以使用任何我们熟悉的引擎来完成计算,岂不乐哉。
进阶
Paimon作为一种流批统一的湖存储格式,正在被越来越多的人认可。想要学习大数据开发相关内容的同学可以行动起来了。想要了解更多有关Paimon的内容,可以关注:遇码,回复Paimon,获取官方文档。