如何看待yandex開源clickhouse這個列式文檔數(shù)據(jù)庫?
其實只是查詢支持下推到各個節(jié)點,并不是真正的分布式,我猜測先做好單機在考慮完善分布式,使用和維護純手動擋,成本略高,入坑需謹慎,數(shù)據(jù)副本確實需要zk來維護同步,數(shù)據(jù)寫入基本只能batch,并且大批量數(shù)據(jù)batch 插入,如果插入頻繁,容易導致數(shù)據(jù)合并功能異常,至于性能強,目前確實是單表查詢比較快,列式存儲,有索引相關支持,基本可以跳過大量無用數(shù)據(jù),快那是肯定的,聚合操作單機匯總,容易蹦,c++開發(fā)也有些性能優(yōu)勢。
而大數(shù)據(jù)相關引擎這塊做得較差,起初都是暴力掃描,近幾年開始關注索引和一些信息收集統(tǒng)計,由于存儲層用hdfs導致存儲層優(yōu)化有限,所以沒那么徹底在存儲層設計加速。
最后,任何技術都要理性看待,都有應用場景,不是萬能藥基本不存在,任何系統(tǒng)的誕生都有歷史緣故,解決某類具體問題而設計,都有邊界,最近社區(qū)吹的有些過了吧,對比大數(shù)據(jù)各種引擎,其實大數(shù)據(jù)數(shù)據(jù)庫引擎今天來看已經(jīng)比較完善,性能已經(jīng)今非昔比,多年研發(fā),那個系統(tǒng)引擎都在進步,都在解決難題。
ClickHouse 是 Yandex(俄羅斯最大的搜索引擎)開源的一個用于實時數(shù)據(jù)分析的基于列存儲的數(shù)據(jù)庫,其處理數(shù)據(jù)的速度比傳統(tǒng)方法快 100-1000 倍。ClickHouse 的性能超過了目前市場上可比的面向列的 DBMS,每秒鐘每臺服務器每秒處理數(shù)億至十億多行和數(shù)十千兆字節(jié)的數(shù)據(jù)。ClickHouse的一些特點:
快速:ClickHouse 會充分利用所有可用的硬件,以盡可能快地處理每個查詢。單個查詢的峰值處理性能超過每秒 2 TB(解壓縮后,僅使用的列)。在分布式設置中,讀取是在健康副本之間自動平衡的,以避免增加延遲。
容錯:ClickHouse 支持多主機異步復制,并且可以跨多個數(shù)據(jù)中心進行部署。所有節(jié)點都相等,這可以避免出現(xiàn)單點故障。單個節(jié)點或整個數(shù)據(jù)中心的停機時間不會影響系統(tǒng)的讀寫可用性。
可伸縮:ClickHouse 可以在垂直和水平方向上很好地縮放。ClickHouse 易于調(diào)整以在具有數(shù)百或數(shù)千個節(jié)點的群集上或在單個服務器上,甚至在小型虛擬機上執(zhí)行。當前,每個單節(jié)點安裝的數(shù)據(jù)量超過數(shù)萬億行或數(shù)百兆兆字節(jié)。
易用:ClickHouse 簡單易用,開箱即用。它簡化了所有數(shù)據(jù)處理:將所有結構化數(shù)據(jù)吸收到系統(tǒng)中,并且立即可用于構建報告。SQL 允許表達期望的結果,而無需涉及某些 DBMS 中可以找到的任何自定義非標準 API。
充分利用硬件:ClickHouse 與具有相同的可用 I/O 吞吐量和 CPU 容量的傳統(tǒng)的面向行的系統(tǒng)相比,其處理典型的分析查詢要快兩到三個數(shù)量級。列式存儲格式允許在 RAM 中容納更多熱數(shù)據(jù),從而縮短了響應時間。
提高 CPU 效率:向量化查詢執(zhí)行涉及相關的 SIMD 處理器指令和運行時代碼生成。處理列中的數(shù)據(jù)會提高 CPU 行緩存的命中率。
優(yōu)化磁盤訪問:ClickHouse 可以最大程度地減少范圍查詢的次數(shù),從而提高了使用旋轉磁盤驅動器的效率,因為它可以保持連續(xù)存儲數(shù)據(jù)。最小化數(shù)據(jù)傳輸:ClickHouse 使公司無需使用專門針對高性能計算的專用網(wǎng)絡即可管理其數(shù)據(jù)。