02.02 為什麼ClickHouse開源列式數據庫在互聯網大廠得到大量應用?

ClickHouse是近年來備受關注的開源列式數據庫,主要用於數據分析(OLAP)領域。於2016年開源,採用C++開發。憑藉優秀的性能,市場反應非常熱烈。

ClickHouse來自哪裡?俄羅斯最大的搜索公司Yandex。

目前國內社區火熱,各個大廠紛紛跟進,並大規模使用:

  • 今日頭條 內部用ClickHouse來做用戶行為分析,內部一共幾千個ClickHouse節點,單集群最大1200節點,總數據量幾十PB,日增原始數據300TB左右。
  • 騰訊內部用ClickHouse做遊戲數據分析,並且為之建立了一整套監控運維體系。
  • 攜程內部從18年7月份開始接入試用,目前80%的業務都跑在ClickHouse上。每天數據增量十多億,近百萬次查詢請求。
  • 快手內部也在使用ClickHouse,存儲總量大約10PB, 每天新增200TB, 90%查詢小於3S。

在DB-engines排名上,如下圖中曲線所示。ClickHouse開源時間雖短,但是增勢迅猛。


一、OLAP場景的特點

  • 讀多寫少;
  • 大寬表,讀大量行但是少量行,結果集較小;
  • 數據批量寫入,且數據不更新或少更新;
  • 無需事務,數據一致性要求低;
  • 需求靈活多變,不適合預先建模;


二、ClickHouse存儲層

ClickHouse從OLAP場景需求出發,定製開發了一套全新的高效列式存儲引擎,並且實現了數據有序存儲、主鍵索引、稀疏索引、數據Sharding、數據Partitioning、TTL、主備複製等豐富功能。以上功能共同為ClickHouse極速的分析性能奠定了基礎。


ClickHouse實現了大多數當前主流的數據分析技術,具有明顯的技術優勢:

  • 提供了極致的查詢性能:開源公開benchmark顯示比傳統方法快100~1000倍,提供50MB~200MB/s的高吞吐實時導入能力)
  • 以極低的成本存儲海量數據:藉助於精心設計的列存、高效的數據壓縮算法,提供高達10倍的壓縮比,大幅提升單機數據存儲和計算能力,大幅降低使用成本,是構建海量數據倉庫的絕佳方案。
  • 簡單靈活又不失強大:提供完善SQL支持,上手十分簡單;提供json、map、array等靈活數據類型適配業務快速變化;同時支持近似計算、概率數據結構等應對海量數據處理。


三、ClickHouse計算層

ClickHouse在計算層做了非常細緻的工作,竭盡所能榨乾硬件能力,提升查詢速度。它實現了單機多核並行、分佈式計算、向量化執行與SIMD指令、代碼生成等多種重要技術。


四、和其他開源技術比較

相比於開源社區的其他幾項分析型技術,如Druid、Presto、Impala、Kylin、ElasticSearch等,ClickHouse更是一整套完善的解決方案,它自包含了存儲和計算能力(無需額外依賴其他存儲組件),完全自主實現了高可用,而且支持完整的SQL語法包括JOIN等,技術上有著明顯優勢。

相比於hadoop體系,以數據庫的方式來做大數據處理更加簡單易用,學習成本低且靈活度高。


分享到:


相關文章: