叢集包含五種類型的表格。 每種類型在節點上以不同方式儲存資料,並服務不同的功能。
分散式資料表
第一個類型和最常見的類型是分散式資料表。 對 SQL 陳述式來說,它們看起來就像一般的資料表,但會在各個工作節點之間進行水平分割。 這種分割意味著資料表的列會儲存在不同的節點中,稱為分片(shards)。
彈性叢集不僅執行 SQL,還會在叢集中執行 DDL(資料定義語言)語句。 當您變更分散式資料表的結構描述時,該變更會連帶套用到各個工作者的所有資料表分區。 你需要透過埠 5432 進行這類操作。
分散式資料行
彈性叢集會使用演算法分區化,將數據列指派給分區。 指派會根據稱為散發資料行的資料表資料行值,以決定性方式進行。 叢集管理員必須在散發資料表時指定此資料行。 對於效能和功能而言,做出正確的選擇很重要。
參考資料表
參考資料表是一種分散式資料表,其所有內容都集中在單一分片中。 叢集會將這個分區複寫在每個工作者上。 任何背景工作角色的查詢都可以在本機存取參考資訊,而不需要向另一個節點要求資料列的網路額外負荷。 參考表沒有分布欄位,因為不需要每列區分不同的碎片。
參考資料表通常體積較小,儲存與在任何工作節點上執行的查詢相關的資料。 例如,列舉值 (如訂單狀態或產品類別)。
區域資料表
使用彈性叢集時,每個節點都是一般的 PostgreSQL 資料庫。 您可以在其上建立一般資料表,並選擇不要將這些資料表分區化。
本機資料表的良好候選項目是不參與聯結查詢的小型管理資料表。 例如,應用程式登入和驗證的 users 資料表。 只有在您不打算使用連接埠 7432 或 8432 於彈性叢集中進行連線的負載平衡時,這種類型的資料表才會有用。
本機受控資料表
如果本機數據表與參考數據表之間存在外鍵參考,彈性叢集可能會自動將本機數據表新增至元數據。 此外,你也可以在一般本地資料表上執行 citus_add_local_table_to_metadata 這個函式,手動建立本地管理的資料表。 中繼資料中存在的資料表會被視為受控資料表,而且可以從任何節點進行查詢。 Citus 知道要路由至節點,以從本機受控資料表取得資料。 這些資料表會在 citus_tables 檢視中以本機形式顯示。
結構描述資料表
當你使用 基於結構的分片時,系統會自動將分散式結構與個別的共置群組關聯起來。 當你在這些結構中建立資料表時,系統會自動將它們轉換成沒有分片金鑰的共置分散式資料表。 這些資料表是結構表,在檢視中 citus_tables 會以結構形式呈現。