云數據庫ClickHouse中涉及多個專業術語,在本頁面進行詳細解釋。
集群(Cluster)
在物理構成上,云數據庫ClickHouse集群是由多個云數據庫ClickHouse服務器節點組成的分布式數據庫。這些節點協同工作,共同處理和存儲數據,提供高可用性和擴展性。
分片(Shard)
云數據庫ClickHouse集群將數據分散存儲到多臺服務器上,每臺服務器存儲和處理數據的一個子集,稱為分片。每個分片可以包含單個或多個服務器,通過水平分割數據負載,實現并行處理和高性能查詢。
副本(Replica)
云數據庫ClickHouse提供副本機制,將數據冗余存儲至2臺或多臺服務器上,以提高數據的可靠性和冗余容錯能力。副本保證了數據的備份和故障恢復,當一個節點出現故障時,可以切換到其他副本節點,確保數據的持久性和可用性。
數據庫(DataBase)
云數據庫ClickHouse集群邏輯上包含多個數據庫,每個數據庫是一個獨立的命名空間,用于組織和管理表、列、視圖、函數等相關對象。每個數據庫可以擁有自己的數據結構和訪問權限,實現數據的邏輯隔離和管理。
表(Table)
表是云數據庫ClickHouse中數據的組織形式,用于存儲和管理具有相同結構的數據。根據數據分布方式,表可以是本地表或分布式表;根據存儲引擎,表可以是單機表或復制表。
本地表(Local Table)
本地表的數據只會存儲在當前寫入的節點上,不會被分散到多臺機器。本地表適用于對單個節點的資源進行有效利用的場景,但缺乏橫向擴展能力。
分布式表(Distributed Table)
分布式表是云數據庫ClickHouse中本地表的集合,將多個本地表抽象為一張統一的表,對外提供寫入和查詢功能。當寫入分布式表時,數據會被自動分發到集合中的各個本地表中;當查詢分布式表時,集合中的各個本地表都會被分別查詢,最終結果會被匯總后返回。分布式表具備良好的橫向擴展能力,可以利用多臺服務器的存儲和計算資源來處理大規模數據。
表引擎
表引擎即表類型,決定數據的存儲方式和位置、支持的查詢以及訪問、索引、主備復制等特性。云數據庫ClickHouse提供了多種表引擎,主要為以下4個系列。MergeTree系列:核心存儲引擎,最通用和功能最強大的表引擎,支持數據Replicated和Distributed。Log系列:功能相對簡單,主要用于快速寫入小表(1百萬行左右的表),然后全部讀出的場景。Integration系列:主要用于將外部數據如Kafka、HDFS、Mysql導入到云數據庫ClickHouse中,或者在云數據庫ClickHouse中直接操作外部數據源。Special系列:為特定場景而定制,如數據內存存儲、為目標表配置buffer、數據存本地文件等。
單機表
單機表的數據只會存儲在當前機器上,不會被復制到其他機器。單機表適用于對數據的冗余存儲要求較低的場景,適合小規模數據集的處理和分析。
復制表
復制表的數據會被自動復制到多臺機器上,形成多個副本。復制表通過數據冗余和備份提高數據的可靠性和容錯能力。當其中一個副本節點出現故障時,系統可以切換到其他副本節點,確保數據的持久性和可用性。復制表適用于對數據可靠性和冗余要求較高的場景,確保數據的安全性和高可用性。