概念 - 基本概念

基本概念

文件布局

一個(gè)表的所有文件都存儲(chǔ)在一個(gè)基礎(chǔ)目錄下。Paimon 文件采用分層方式組織。以下圖片展示了文件布局。從快照文件開(kāi)始,Paimon 讀取器可以遞歸地訪問(wèn)表中的所有記錄。


image.png

快照

所有快照文件都存儲(chǔ)在快照目錄中。

快照文件是一個(gè) JSON 格式的文件,其中包含了關(guān)于此快照的相關(guān)信息,包括

  • 正在使用的schema文件
  • 包含此快照所有變更內(nèi)容的清單 manifest list

快照能夠捕捉到某個(gè)時(shí)間點(diǎn)上表的狀況。用戶可以通過(guò)最新的快照訪問(wèn)表的最新數(shù)據(jù)。通過(guò)時(shí)間旅行,用戶還可以通過(guò)較早的快照訪問(wèn)表的先前狀態(tài)。

清單文件

所有清單列表和清單文件都存儲(chǔ)在清單目錄中。

清單列表意為清單文件名列表。

一個(gè)清單文件是一個(gè)包含有關(guān) LSM 數(shù)據(jù)文件和變更日志文件變更信息的文件。例如,在相應(yīng)的快照中創(chuàng)建了哪個(gè) LSM 數(shù)據(jù)文件以及刪除了哪個(gè)文件。

數(shù)據(jù)文件

數(shù)據(jù)文件是按照分區(qū)進(jìn)行分組的。目前,Paimon 支持使用 parquet(默認(rèn)格式)、orc 和 avro 作為數(shù)據(jù)文件的格式。

分區(qū)

Paimon 采用了與 Apache Hive 相同的數(shù)據(jù)分區(qū)概念來(lái)對(duì)數(shù)據(jù)進(jìn)行劃分。

分區(qū)是一種可選的方式,用于根據(jù)特定列(如日期、城市和部門(mén))的值將表劃分為相關(guān)部分。每個(gè)表可以有一個(gè)或多個(gè)分區(qū)鍵來(lái)標(biāo)識(shí)特定的分區(qū)。

通過(guò)分區(qū)操作,用戶能夠高效地對(duì)表中的某一部分記錄進(jìn)行處理。

一致性保證

Paimon 寫(xiě)入器使用兩階段提交協(xié)議來(lái)原子性地將一批記錄提交到表中。每次提交最多會(huì)產(chǎn)生兩個(gè)快照,快照是在提交時(shí)生成的。這取決于增量寫(xiě)入和壓縮策略。如果僅執(zhí)行增量寫(xiě)入而未觸發(fā)壓縮操作,則只會(huì)創(chuàng)建一個(gè)增量快照。如果觸發(fā)了壓縮操作,則會(huì)創(chuàng)建一個(gè)增量快照和一個(gè)壓縮快照。

對(duì)于任何同時(shí)修改同一張表的兩個(gè)寫(xiě)入者而言,只要他們不修改相同的分區(qū),他們的提交就可以并行進(jìn)行。如果他們修改了相同的分區(qū),那么僅能保證實(shí)現(xiàn)快照隔離。也就是說(shuō),最終的表狀態(tài)可能會(huì)是兩個(gè)提交的混合體,但不會(huì)丟失任何更改。有關(guān)更多信息,請(qǐng)參閱專門(mén)的合并任務(wù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容