ClickHouse 詳解


1. 簡介

官方文檔:https://clickhouse.yandex/docs
ClickHouse 是一個采用列式存儲,用於聯機分析(OLAP)的數據庫管理系統(DBMS)

2.ClickHouse 的優點

2.1 "真正"的列式存儲

一個真正的列式存儲的數據庫管理系統中,除了數據本身之外不應該存在其他額外的數據。意味着為了避免在只旁邊存儲它們的長度 'number',必須支持固定長度的數值類型。ClickHouse 的數據類型都是固定長度。

2.2 實時的數據更新

ClcikHouse 數據是以增量的方式有序的存儲在 MergeTree 中。因此,數據可以持續不斷高效的寫入到表中,並且寫入的過程中不會存在任何加鎖的行為。

2.3 支持近似計算

ClickHouse 提供各種各樣在允許犧牲精度的情況下對查詢進行加速的方法

  1. 用於近似計算的各類聚合函數,如:distinct values, medians, quantiles
  2. 基於數據的部分樣本進行近似查詢。這時,僅會從磁盤檢索少部分比例的數據。
  3. 不使用全部的聚合條件,通過隨機選擇有限個數據聚合條件進行聚合。這在數據聚合條件滿足某些分布條件下,在提供相當准確的聚合結果的同時降低了計算資源的使用

2.4 支持數據復制和數據完整性

ClickHouse 使用異步的多住復制技術。當數據被寫入到任何一個可用副本后,系統在后台將數據分發給其他副本。

  1. 只有 MergeTree 系列里的表殼支持副本
  2. 副本是表級別的,不是整個服務器級的。
  3. 副本不依賴分片,每個分片有它的獨立副本
  4. 對於 InsertAlter 語句操作數據的會在壓縮的情況下被復制
  5. CREATE,DROP,DETACH,RENAME 語句只會在單個服務器上執行,不會被復制
    • CREATE TABLE 在運行此語句的服務器上創建一個新的可復制表。如果此表已存在其他服務器上,則給該表添加新副本。
    • DROP TABLE 刪除運行此查詢的服務器上的副本。
    • RENAME 重命名一個副本。換句話說,可復制表不同的副本可以有不同的名稱。

3. ClickHouse 的缺點

  1. 沒有完整的事務支持
  2. 缺少高頻率、低延遲的修改或刪除已存在數據的能力,僅能用於批量刪除或修改數據。


免責聲明!

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



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