概述
apache paimin的架構(gòu)

image.png
如上圖所示架構(gòu):
讀/寫: Paimon支持多種讀取/寫入數(shù)據(jù)和OLAP查詢的方式.
- 對于讀,支持消費(fèi)數(shù)據(jù)
- 從歷史快照(批量模式下)獲取
- 從最新的偏移量(在流模式下)開始,或者
- 以一種混合的方式讀取增量快照。
- 對于寫,支持
- 從數(shù)據(jù)庫變更日志(CDC)獲取流式同步數(shù)據(jù)
- 從離線數(shù)據(jù)進(jìn)行批量插入/覆蓋操作。
生態(tài):除了 Apache Flink 之外,Paimon 還支持通過諸如 Apache Hive、Apache Spark 和 Trino 等其他計(jì)算引擎進(jìn)行讀取操作。
內(nèi)在:
- 在內(nèi)部實(shí)現(xiàn)層面,Paimon 將列式文件存儲在文件系統(tǒng)/對象存儲中。
- 該文件的元數(shù)據(jù)保存在清單文件中,從而實(shí)現(xiàn)了大規(guī)模存儲和跳數(shù)功能。
- 對于主鍵表而言,采用 LSM 樹結(jié)構(gòu)來支持大量的數(shù)據(jù)更新以及高性能查詢。
統(tǒng)一存儲
對于像 Apache Flink 這樣的流處理引擎而言,通常會有三種類型的連接器:
- 消息隊(duì)列,例如 Apache Kafka,它在該流水線的源階段和中間階段均有應(yīng)用,以確保延遲保持在數(shù)秒以內(nèi)。
- OLAP 系統(tǒng),例如 ClickHouse,它以流式方式接收處理后的數(shù)據(jù),并為用戶的即席查詢提供服務(wù)。
- 批處理存儲(例如 Apache Hive),它支持傳統(tǒng)批處理的各種操作,包括 INSERT OVERWRITE 操作。
Paimon 提供了表抽象功能。其使用方式與傳統(tǒng)數(shù)據(jù)庫并無不同:
- 在批處理執(zhí)行模式下,它類似于一個(gè) Hive 表,并支持批處理 SQL 的各種操作。查詢它以查看最新的快照。
- 在流式執(zhí)行模式下,它就像一個(gè)消息隊(duì)列。查詢它就像查詢消息隊(duì)列中的流變更日志,其中歷史數(shù)據(jù)永遠(yuǎn)不會過期。