技術選型 | OLAP大數據技術哪家強?

本文分享自微信公衆號 - Java大數據與數據倉庫mysql

導讀 :以前咱們分享過一篇BI技術選型文章,頗受好評,今天咱們再給你們分享一下OLAP技術選型 ,follow me。sql

 

隨着大數據組件愈來愈多,不少組件都是爲OLAP數據服務的,什麼組件或者組件組合最合適多是咱們關注的問題。本文大致分析業內常見的組件特色,給你們挑選組件提供借鑑。數據庫

OLAP提供的服務微信

  Lambda架構的核心理念是「流批一體化」,由於隨着機器性能和數據框架的不斷完善,用戶其實不關心底層是如何運行的,批處理也好,流式處理也罷,能按照統一的模型返回結果就能夠了,這就是Lambda架構誕生的緣由。如今不少應用,例如Spark和Flink,都支持這種結構,也就是數據進入平臺後,能夠選擇批處理運行,也能夠選擇流式處理運行,但無論怎樣,一致性都是相同的。架構

OLAP服務工具併發

01框架

01機器學習

Kylinnosql

    Kylin的主要特色是預計算,提早計算好各個cube,這樣的優勢是查詢快速,秒級延遲;缺點也很是明顯,靈活性不足,沒法作一些探索式的,關聯性的數據分析。分佈式

    適合的場景也是比較固定的,場景清晰的地方。

02

01

ClickHouse

    Clickhouse由俄羅斯yandex公司開發。專爲在線數據分析而設計。

Clickhouse最大的特色首先是快,爲了快採用了列式儲存,列式儲存更好的支持壓縮,壓縮後的數據傳輸量變小,因此更快;同時支持分片,支持分佈式執行,支持SQL。

    ClickHouse很輕量級,支持數據壓縮和最終數據一致性,其數據量級在PB級別。

    另外Clickhouse不是爲關聯分析而生,因此多表關聯支持的不太好。

    一樣Clickhouse不能修改或者刪除數據,僅能用於批量刪除或修改。沒有完整的事務支持,不支持二級索引等等,缺點也很是明顯。

    與Kylin相比ClickHouse更加的靈活,sql支持的更好,可是相比Kylin,ClickHouse不支持大併發,也就是不能不少訪問同時在線。

    總之ClickHouse用於在線數據分析,支持功能簡單。CPU 利用率高,速度極快。最好的場景用於行爲統計分析。

03

01

Hive

    Hive這個工具,你們必定很熟悉,大數據倉庫的首選工具。能夠將結構化的數據文件映射爲一張數據庫表,並提供完整的sql查詢功能。

    主要功能是能夠將sql語句轉換爲相對應的MapReduce任務進行運行,這樣可能處理海量的數據批量,

    Hive與HDFS結合緊密,在大數據開始初期,提供一種直接使用sql就能訪問HDFS的方案,擺脫了寫MapReduce任務的方式,極大的下降了大數據的門檻。

   固然Hive的缺點很是明顯,定義的是分鐘級別的查詢延遲,估計都是在比較理想的狀況。可是做爲數據倉庫的每日批量工具,的確是一個穩定合格的產品。

04

01

Presto

    Presto極大的改進了Hive的查詢速度,並且Presto 自己並不存儲數據,可是能夠接入多種數據源,而且支持跨數據源的級聯查詢,支持包括複雜查詢、聚合、鏈接等等。

    Presto沒有使用MapReduce,它是經過一個定製的查詢和執行引擎來完成的。它的全部的查詢處理是在內存中,這也是它的性能很高的一個主要緣由。

    Presto因爲是基於內存的,缺點多是多張大表關聯操做時易引發內存溢出錯誤。

    另外Presto不支持OLTP的場景,因此不要把Presto當作數據庫來使用。

    Presto相比ClickHouse優勢主要是多表join效果好。相比ClickHouse的支持功能簡單,場景支持單一,Presto支持複雜的查詢,應用範圍更廣。

05

01

Impala

    Impala是Cloudera 公司推出,提供對 HDFS、Hbase 數據的高性能、低延遲的交互式 SQL 查詢功能。

    Impala 使用 Hive的元數據, 徹底在內存中計算。是CDH 平臺首選的 PB 級大數據實時查詢分析引擎。

    Impala 的缺點也很明顯,首先嚴重依賴Hive,並且穩定性也稍差,元數據須要單獨的mysql/pgsql來存儲,對數據源的支持比較少,不少nosql是不支持的。可是,估計是cloudera的國內市場推廣作的不錯,Impala在國內的市場不錯。

06

01

SparkSQL

    SparkSQL的前身是Shark,它將 SQL 查詢與 Spark 程序無縫集成,能夠將結構化數據做爲 Spark 的 RDD 進行查詢。

    SparkSQL後續再也不受限於Hive,只是兼容Hive。

    SparkSQL提供了sql訪問和API訪問的接口。

    支持訪問各式各樣的數據源,包括Hive, Avro, Parquet, ORC, JSON, and JDBC。

07

01

**Drill **

    Drill好像國內使用的不多,根據定義,Drill是一個低延遲的分佈式海量數據交互式查詢引擎,支持多種數據源,包括hadoop,NoSQL存儲等等。

    除了支持多種的數據源,Drill跟BI工具集成比較好。

08

01

**Druid **

    Druid是專爲海量數據集上的作高性能 OLAP而設計的數據存儲和分析系統。

    Druid 的架構是 Lambda 架構,分紅實時層和批處理層。

    Druid的核心設計結合了數據倉庫,時間序列數據庫和搜索系統的思想,以建立一個統一的系統,用於針對各類用例的實時分析。Druid將這三個系統中每一個系統的關鍵特徵合併到其接收層,存儲格式,查詢層和核心體系結構中。

    目前 Druid 的去重都是非精確的,Druid 適合處理星型模型的數據,不支持關聯操做。也不支持數據的更新。

    Druid最大的優勢仍是支持實時與查詢功能,解約了不少開發工做。

09

01

Kudu

    kudu是一套徹底獨立的分佈式存儲引擎,不少設計概念上借鑑了HBase,可是又跟HBase不一樣,不須要HDFS,經過raft作數據複製;分片策略支持keyrange和hash等多種。

    數據格式在parquet基礎上作了些修改,支持二級索引,更像一個列式存儲,而不是HBase schema-free的kv方式。

    kudu也是cloudera主導的項目,跟Impala結合比較好,經過impala能夠支持update操做。

    kudu相對於原有parquet和ORC格式主要仍是作增量更新的。

10

01

Hbase

    Hbase使用的很廣,更多的是做爲一個KV數據庫來使用,查詢的速度很快。

11

01

Hawq

    Hawq是一個Hadoop原生大規模並行SQL分析引擎,Hawq採用 MPP 架構,改進了針對 Hadoop 的基於成本的查詢優化器。

    除了能高效處理自己的內部數據,還可經過 PXF 訪問 HDFS、Hive、HBase、JSON 等外部數據源。HAWQ全面兼容 SQL 標準,還可用 SQL 完成簡單的數據挖掘和機器學習。不管是功能特性,仍是性能表現,HAWQ 都比較適用於構建 Hadoop 分析型數據倉庫應用。

加我微信:ddxygq,來一場朋友圈的點贊之交!

猜你喜歡

數倉建模分層理論

數據湖是誰?那數據倉庫又算什麼?

數倉架構發展史

Hive整合Hbase

Hive中的鎖的用法場景

數倉建模方法論

本文分享自微信公衆號 - Java大數據與數據倉庫(ikeguang2)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。