開源OLAP引擎對比


什么是olap

01、絕大多數請求都是讀請求

02、數據以相當大的批次(>1000行)更新,而不是單行更新;或者它根本沒有更新

03、數據已添加到數據庫,但不會進行修改

04、對於讀取,每次查詢都從數據庫中讀取大量的行,但是同時又僅需要少量的列

05、表格“寬”,意味着它們包含大量列

06、查詢相對較少(通常每台服務器數百個查詢或每秒更少)

07、對於簡單查詢,允許延遲大約50毫秒

08、列中的數據相對較小:一般來說,都是數字和短字符串(例如,每個URL 60個字節)

09、處理單個查詢時需要高吞吐量(每個服務器每秒最多數十億行)

10、Transactions不是必需的

11、對數據一致性要求低

12、每個查詢有一個大表。所有其他表都很小,除了這個大表

13、查詢結果明顯小於源數據。換句話說,數據被過濾或聚合后能夠被盛放在單台服務器的內存中

mysql: 少量結構化數據的針對單條記錄的增刪改查
hbase: 針對海量數據的key-value增刪改查 
redis: 基於內存的針對key-value類型的增刪改查,熱數據的緩存
mongodb: 文檔數據庫 elasticsearch: 針對文件做全文檢索的(倒排索引)
clickhouse: 針對海量數據的大量行少量列的聚合查詢分析的請求
  • Druid:由廣告公司 MetaMarkets 開源的實時大數據分析引擎,2011 年創建,並於 2012 年開源。主要用於大規模事件流數據(Event Stream Data)的存儲和分析。Druid 被阿里、小米、網易、優酷、微博等公司廣泛應用。
  • Presto:Facebook 2013 年開源的 OLAP 工具。Airbnb 和 Dropbox、京東、有贊、微博等公司使用該工具。
  • Clickhouse:第一大搜索引擎 Yandex 開發的列式儲存數據庫。 ClickHouse 比 Vertica 約快5倍,比 Hive 快 279 倍。比 My SQL 快 801 倍。字節跳動、阿里、微博......幾乎所有主流互聯網公司,都會使用到 ClickHouse。

Druid

優點

  1. Druid 支持實時數據攝入,且可以立即查詢;
  2. 類似其他 OLAP 工具,攝入數據時先預計算,以節省數據存儲量級;
  3. 列式存儲。區別傳統行式存儲,每次查詢要加載整個表,列式存儲只需加載指定列數據,大大提升性能。由於列式存儲這個優勢,目前主流 OLAP 都采用列式存儲;
  4. 水平擴展。可部署到幾十甚至幾百台集群,支持萬億條記錄查詢。

缺點

  1. 查詢中涉及多個大表之間 join,即:Druid對表關聯操作支持很有限。
  2. 數據查詢對延時要求不高,但對用戶某具體行為顆粒度的場景分析。因為預計算會損失用戶行為的個性化信息,所以這種情況是不容許進行預計算操作的。

Presto

  1. 快!Presto 最大的特點是快,它的設計初衷是解決快速查詢大數據問題,期望查詢時間是在幾秒或者幾分鍾,因此速度是 Hive 的 10 倍以上;
  2. Presto 可以查詢完全基於內存計算的分布式 SQL 查詢引擎。所有查詢、計算都可以在內存中進行;
  3. Presto 可以接入數據源,包括 Hive、Kafaka、MySQL、Redis 等;
  4. Presto 為標准 SQL,支持復雜 SQL 查詢。

缺點

  1. 我們知道 Presto 運算時是將查詢任務拆分到多個 Worker 機器上去分別進行內存運算。其中哪怕一個 Worker 由於各式各樣的原因掛掉(比如內存溢出等),整個 Presto 查詢任務就會失敗。相比較而言,Hive 的容錯性能就要好很多。一台機器掛掉或者被其他計算任務搶占,計算也並不會因此失敗。它會重新向 Master 申請資源,繼續計算。
  2. Presto 屬於純內存計算,不適合大表之間的多表 join 操作。否則容易引起內存溢出 OOM,造成查詢任務失敗。
  3. Presto 采用 MPP(Massively Parallel Processing:大規模並行處理)架構,本身 MPP 架構使用場景就是秒級、毫秒級的查詢場景,速度很快。但 MPP 有個明顯缺點,即短板效應。如果一個 Worker 節點計算慢於其他節點,那整個計算任務都會受限於該節點。在實際工作中,Presto 接入的很可能就是 HDFS 數據源,不同節點的數據不一定分布均勻,這使得不同 Worker 干活效率不一樣。而 Hive、Spark 等采用的批處理系統則會避免這一點。

ClickHouse

  1. 提供極致的查詢性能。比傳統數據處理引擎快 100~1000 倍,數據吞吐能力高達50MB~200MB/s。使用體驗非常好。
  2. 大數據的極低存儲成本。ClickHouse 針對 OLAP 場景,開發高效列式存儲、數據壓縮算法,可以將原數據壓縮 10 倍,極大提高單機數據存儲和計算能力。可以簡單理解為,原來一台機器存儲 1TB 原始日志,而采用 ClickHouse 可以存儲 10TB 原始日志。
  3. 支持 SQL 查詢,並同時支持 join 等復雜計算邏輯。ClickHouse 之所以能擁有極致的計算性能,即使簡單的查詢,ClickHouse 也會使用服務器一半的 CPU 去執行,所以其充分利用了機器的計算資源,並實現單機多核並行計算、集群分布式計算、列存儲且列計算等。

缺點

  1. 不支持事務操作,即數據的刪除、更新。
  2. 不支持高並發,建議 QPS 為 100。即每秒查詢操作不要超過 100 個。

參考: 奈學教育筆記


免責聲明!

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



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