Apache Paimon(incubating)是一个流式数据湖平台,支持高速数据摄取、变更数据跟踪和高效的实时分析。
读取/写入:Paimon 支持多种方式读取/写入数据并执行 OLAP 查询。
生态系统:除了 Apache Flink,Paimon 还支持其他计算引擎(如 Apache Hive、Apache Spark 和 Presto)进行读取。
内部:在内部,Paimon 将列文件存储在文件系统/对象存储上,并使用 LSM 树结构来支持大量数据更新和高性能查询。
对于像 Apache Flink 这样的流式引擎,通常有三种类型的连接器:
INSERT OVERWRITE
。Paimon 提供了表格抽象。它的使用方式与传统数据库没有区别:
批处理
执行模式下,它就像一个 Hive 表,并支持批处理 SQL 的各种操作。查询它以查看最新快照。流式
执行模式下,它就像一个消息队列。查询它就像从消息队列中查询一个流式变更日志,其中历史数据永不过期。Primary Key 表 (主键表)
创建表时,默认的表格类型是 changelog 表 (Primary Key 表)。用户可以在表中插入、更新或删除记录。
主键由一组列组成,每个记录包含唯一的值。Paimon 通过在每个存储桶中对主键进行排序来强制数据排序,允许用户通过对主键应用过滤条件来实现高性能。
Append Only 表 (非主键表)
如果一个表没有定义主键,那么它默认是一个Append Only 表。根据桶的定义,我们有两种不同的只追加模式:“用于可扩展表的追加”和“用于队列的追加”。
您只能将完整的记录插入到表中。不支持删除或更新,也不能定义主键。这种类型的表适用于不需要更新的用例(例如日志数据同步)。
在创建表时,指定'bucket'='-1'
且不指定主键即可创建 Append Only 表,如:
CREATE TABLE MyTable ( product_id BIGINT, price DOUBLE, sales BIGINT ) WITH ('bucket' = '-1');