clickhouse數據存儲


表由按主鍵排序的數據部分組成

  1.將數據插入表中時,會創建單獨的數據部分,並且每個部分都按主鍵按字典順序排序。例如,如果主鍵是(CounterID, Date),則部分中的數據按 排序CounterID,每個中的數據按CounterID排序Date

  2.屬於不同分區的數據被分成不同的部分。ClickHouse 在后台合並數據部分以提高存儲效率。屬於不同分區的部分不會合並。合並機制不保證具有相同主鍵的所有行都在同一個數據部分中。

  3.數據部分可以存儲WideCompact格式化。Wide格式中,每一列都存儲在文件系統中的單獨文件中,在Compact格式中,所有列都存儲在一個文件中。Compact格式可用於提高小而頻繁插入的性能。

  4.數據存儲格式由表引擎的min_bytes_for_wide_part和設置控制。min_rows_for_wide_part如果數據部分中的字節數或行數少於相應設置的值,則該部分以Compact格式存儲。否則以Wide格式存儲。如果未設置這些設置,則數據部分以Wide格式存儲。

  5.每個數據部分在邏輯上被划分為顆粒。顆粒是 ClickHouse 在選擇數據時讀取的最小的不可分割數據集。ClickHouse 不會拆分行或值,因此每個顆粒始終包含整數行。顆粒的第一行標有該行的主鍵值。對於每個數據部分,ClickHouse 創建一個存儲標記的索引文件。對於每一列,無論是否在主鍵中,ClickHouse 也存儲相同的標記。這些標記讓您可以直接在列文件中查找數據。粒度大小受表引擎的index_granularity和設置限制。index_granularity_bytes顆粒中的行數位於[1, index_granularity]范圍內,具體取決於行的大小。index_granularity_bytes如果單行的大小大於設置的值,則顆粒的大小可能會超出。在這種情況下,顆粒的大小等於行的大小。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM