漫談數倉OLAP技術

2020-12-09 騰訊網

數據應用,是真正體現數倉價值的部分,包括且又不局限於 數據可視化、BI、OLAP、即席查詢,實時大屏,用戶畫像,推薦系統,數據分析,數據挖掘,人臉識別,風控反欺詐,ABtest等等。

數據倉庫架構圖

本文側重於數據應用之BI可視化和OLAP技術選型。

一、BI可視化工具

1.1 BI現狀

大數據時代商業智能(BI)和數據可視化訴求更為強烈,淘寶大屏更是風靡全球!數據可視化是大數據『最後一公裡』。

BI喚醒沉睡的數據。

傳統型BI力求大而全的統一綜合型報表和分析平臺,側重傳統式報表開發,儼然一把屠龍刀。現網際網路公司快速迭代的業務發展,需要的卻是倚天劍,促使自助式BI和敏捷BI得以迅速發展。

時代召喚,傳統BI巨頭也逐漸向自助式BI和雲BI轉型。一時間,BI數據可視化已呈現出"百家爭鳴,群雄爭霸"的態勢!

1.2 BI分類

統看業界可視化BI工具可大致分為:開源bi,商業bi,和傳統重bi工具。

業界目前比較流行的開源bi工具有Superset、metabase、Redash、Cboard、Spagobi等,商業bi工具有帆軟、tableau、PowerBI、SmartBI、QlinkView、QuickBI等,傳統企業、傳統數倉,大多依然沿用重bi產品,如Congos、BIEE、BO、MicroStrategydeng等。

二、OLAP基本操作和類型

OLAP,On-Line Analytical Processing,在線分析處理,主要用於支持企業決策管理分析。區別於OLTP,On-Line Transaction Processing,聯機事務處理。

OLAP的優勢:豐富的數據展現方式、高效的數據查詢以及多視角多層次的數據分析。

數據倉庫與OLAP的關係是互補的,現代OLAP系統一般以數據倉庫作為基礎,即從數據倉庫中抽取詳細數據的一個子集並經過必要的聚集存儲到OLAP存儲器中供前端分析工具讀取。

2.1 OLAP基本操作

OLAP的多維分析操作包括:鑽取(Drill-down)、上卷(Roll-up)、切片(Slice)、切塊(Dice)以及旋轉(Pivot)。

鑽取:維的層次變化,從粗粒度到細粒度,匯總數據下鑽到明細數據。如通過季度銷售數據鑽取每個月的銷售數據

上卷:鑽取的逆,向上鑽取。從細粒度到粗粒度,細粒度數據到不同維層級的匯總。eg. 通過每個月的銷售數據匯總季度、年銷售數據

切片:特定維數據(剩餘維兩個)。eg. 只選電子產品銷售數據

切塊:維區間數據(剩餘維三個)。eg. 第一季度到第二季度銷售數據

旋轉:維位置互換(數據行列互換),通過旋轉可以得到不同視角的數據。

2.2 OLAP分類

OLAP按存儲器的數據存儲格式分為ROLAP(Relational OLAP)、MOLAP(Multi-dimensional OLAP)和 HOLAP(Hybrid OLAP)。

MOLAP,基於多維數組的存儲模型,也是OLAP最初的形態,特點是對數據進行預計算,以空間換效率,明細和聚合數據都保存在cube中。但生成cube需要大量時間和空間。

ROLAP,完全基於關係模型進行存儲數據,不需要預計算,按需即時查詢。明細和匯總數據都保存在關係型資料庫事實表中。

HOLAP,混合模型,細節數據以ROLAP存放,聚合數據以MOLAP存放。這種方式相對靈活,且更加高效。可按企業業務場景和數據粒度進行取捨,沒有最好,只有最適合。

三、OLAP資料庫選型

在大數據數倉架構中,離線以Hive為主,實時計算一般是Spark+Flink配合,消息隊列Kafka一家獨大,後起之秀Pulsar想要做出超越難度很大,Hbase、Redis和MySQL都在特定場景下有一席之地。

唯獨在OLAP領域,百家爭鳴,各有所長。

OLAP引擎/工具/資料庫,技術選型可有很多選擇,傳統公司大多以Congos、Oracle、MicroStrategy等OLAP產品,網際網路公司則普遍強勢擁抱開源,如

Presto,Druid ,Impala,SparkSQL,AnalyticDB,(Hbase)Phoenix,kudu, Kylin,Greenplum,Clickhouse, Hawq, Drill,ES等

在數據架構時,可以說目前沒有一個引擎能在數據量,靈活程度和性能上(吞吐和並發)做到完美,用戶需要根據自己的業務場景進行選型。

開源技術選型,MOLAP可選Kylin、Druid,ROLAP可選Presto、impala等

Presto

Presto 是由 Facebook 開源的大數據分布式 SQL 查詢引擎,基於內存的低延遲高並發並行計算(mpp),適用於交互式分析查詢。

首先我們先來看一下Presto官方的介紹:

☆ 本身並不存儲數據,但是可以接入多種數據源,包括Hive、RDBMS(Mysql、Oracle、Tidb等)、Kafka、MongoDB、Redis等

☆ 完全支持ANSI SQL標準,用戶可以直接使用 ANSI SQL 進行數據查詢和計算

☆ 可以混合多個catalog進行join查詢和計算,支持跨數據源的級聯查詢

☆ 基於PipeLine進行設計的,流水管道式數據處理,支持數據規模GB~PB,計算中拿出一部分放在內存、計算、拋出、再拿。

☆ SQL on Hadoop:彌補Hive的效率性能和靈活性的不足,Presto和Spark SQL、Impala有很多異曲同工之處。

presto架構(master+slaver模式):

Presto應用場景:

Druid

Druid是一個用於大數據實時查詢和分析的高容錯、高性能開源分布式系統,用於解決如何在大規模數據集下進行快速的、交互式的查詢和分析。

數據可以實時攝入,進入到Druid後立即可查,同時數據是幾乎是不可變。通常是基於時序的事實事件,事實發生後進入Druid,外部系統就可以對該事實進行查詢。

Druid架構

基本特點

Apache Druid 具有以下特點:

亞秒級 OLAP 查詢,包括多維過濾、Ad-hoc 的屬性分組、快速聚合數據等等。

實時的數據消費,真正做到數據攝入實時、查詢結果實時。

高效的多租戶能力,最高可以做到幾千用戶同時在線查詢。

擴展性強,支持 PB 級數據、千億級事件快速處理,支持每秒數千查詢並發。

極高的高可用保障,支持滾動升級。

應用場景

實時數據分析是 Apache Druid 最典型的使用場景。該場景涵蓋的面很廣,例如:

實時指標監控

推薦模型

廣告平臺

搜索模型

Druid也有很多不足需要注意,由於druid屬於時間存儲,刪除操作比較繁瑣,且不支持查詢條件刪除數據,只能根據時間範圍刪除數據。Druid能接受的數據的格式相對簡單,比如不能處理嵌套結構的數據。

Druid案例

知乎:技術選型上,知乎根據不同業務場景選擇了HBase 和 Redis 作為實時指標的存儲引擎,在OLAP選型上,知乎選擇了Druid。

OPPO:而OPPO根據自身不同的業務場景,報表層選擇了Druid,標籤選擇了ES,接口層選擇了Hbase。

Kylin

Apache Kylin是一個開源的分布式分析引擎,提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規模數據,最初由eBay Inc. 開發並貢獻至開源社區。它能在亞秒內查詢巨大的Hive表。

kylin特性:

可擴展超快olap引擎,Hadoop/Spark上百億數據規模

提供 Hadoop ANSI SQL 接口

交互式查詢能力,用戶可以與Hadoop數據進行亞秒級交互

百億以上數據集構建多維立方體(MOLAP CUBE)

與BI工具無縫整合,如Tableau,PowerBI/Excel,MSTR,QlikSense,Hue和SuperSet

kylin生態圈:

Clickhouse

Clickhouse是一個用於在線分析處理(OLAP)的列式資料庫管理系統(DBMS)。

是由俄羅斯的Yandex公司為了Yandex Metrica網絡分析服務而開發。它支持分析實時更新的數據,Clickhouse以高性能著稱。

先看一下官方定義:

ClickHouse is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).

場景特徵:

大多數是讀請求

數據總是以相當大的批(> 1000 rows)進行寫入

不修改已添加的數據

每次查詢都從資料庫中讀取大量的行,但是同時又僅需要少量的列

寬表,即每個表包含著大量的列

較少的查詢(通常每臺伺服器每秒數百個查詢或更少)

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

列中的數據相對較小:數字和短字符串(例如,每個URL 60個字節)

處理單個查詢時需要高吞吐量(每個伺服器每秒高達數十億行)

事務不是必須的

對數據一致性要求低

每一個查詢除了一個大表外都很小

查詢結果明顯小於源數據,換句話說,數據被過濾或聚合後能夠被盛放在單臺伺服器的內存中

clickhouse自身限制:

不支持真正的刪除/更新支持 不支持事務

不支持二級索引

有限的SQL支持,join實現與眾不同

不支持窗口功能

元數據管理需要人工幹預維護

ClickHouse開源的出現讓許多想做大數據並且想做大數據分析的很多公司和企業耳目一新。ClickHouse 正是以不依賴Hadoop 生態、安裝和維護簡單、查詢速度快、可以支持SQL等特點在大數據分析領域披荊斬棘越走越遠。

ADB(AnalyticDB for MySQL)

分析型資料庫MySQL版(AnalyticDB for MySQL),是阿里巴巴自主研發的海量數據實時高並發在線分析(Realtime OLAP)雲計算服務,使得您可以在毫秒級針對千億級數據進行即時的多維分析透視和業務探索。

adb優勢和特性

超大規模:極致彈性輕鬆擴展至PB級規模

簡單易用:全面兼容MySQL協議和BI工具

實時化分析:通過實時同步,報表延時1分鐘內

查詢速度快:傳統關係型資料庫的5-10倍性能

基於adb實時數倉架構

通過數據傳輸服務DTS(Data Transmission Service),您可以將RDS for MySQL同步到AnalyticDB for MySQL,幫助您快速構建企業內部BI、交互查詢、實時報表等系統。

adb數據化鏈路架構

、結束語

☆ 對於數據架構,不管是數據倉庫、數據湖,還是數據中臺,數據應用才是數據價值體現所在

☆ 對於可視化BI工具,通幽洞微,建議熟練掌握2-3款即可,理解工具思想和實現方式

☆ 對於OLAP資料庫,沒有一個引擎能同時在數據量、性能、和靈活性三個方面做到完美,每個系統在設計時都需要在這三者間做出取捨。

參考資料:

[1]https://help.aliyun.com/document_detail/72987.html

[2]http://kylin.apache.org/cn/

[3]https://clickhouse.yandex/

[4]https://clickhouse.yandex/docs/zh/

[5][外]-分析型資料庫AnalyticDB產品白皮書

相關焦點

  • 58商業數倉建設實踐
    但隨著時間的推移,傳統數據倉庫的數據計算與存儲,已經無法很好地支持海量數據的計算與存儲,這樣大數據 ( 分布式 ) 技術開始火熱起來。本文將為大家介紹58數據倉庫團隊使用Hadoop開源技術軟體從0-1以及1-N數倉的建設和演進過程。
  • 阿里巴巴雲原生實時數倉核心技術揭秘
    提出HSAP(HybridServing & Analytics Processing)服務分析一體化的系統設計理念,同一份數據同時滿足實時離線在線場景的計算需求,極大的簡化了數倉架構的複雜度,降低了成本,重新定義數倉趨勢。
  • 這次一定弄懂OLAP技術利器:ClickHouse!
    那麼,如何才能系統的學習OLAP利器ClickHouse實時分析技術呢?01視頻資料包涵以下內容:視頻資料包全面包含ClickHouse核心理論、命令使用、架構設計、數據結構、引擎底層設計、外部系統集成開發以及ClickHouse全流程大數據項目實戰等內容,讓大家從基礎到實戰快速掌握ClickHouse大數據分析技術
  • 數據產品必備技術知識:數據倉庫入門,看這這一篇就夠了
    四、數據倉庫結構用AXURE畫了個結構圖,如下:簡單來說,就是把各數據源的數據ETL到數倉中,數倉再對數據進行集成和統計,然後再輸出給各數據應用,圖中涉及的模塊,接下來會分別介紹。當用戶或者應用程式不需要/不必要/不允許訪問整個數倉數據時,就可以直接訪問數據集市,為用戶提供一個數據倉庫的「子集」。簡單理解就是一個結構完全和數倉一樣,有ETL,然後自己存儲和計算;另一種就是直接用數倉處理過的數據,再次進行組合集成。可能後面結合數據分層更好理解。
  • 如何通過數據模型設計生成數倉開發腳本(DML)
    另一方面,在數倉設計開發過程中常常使用DML。(DML是Data Manipulation Language的縮寫,意思是數據操作語言,是指在SQL語言中,負責對資料庫對象運行數據訪問工作的指令集,以INSERT、UPDATE、DELETE三種指令為核心,分別代表插入、更新與刪除,是開發以數據為中心的應用程式必定會使用到的指令。)
  • 基於MaxCompute的數倉數據質量管理
    參考文獻《大數據之路——阿里巴巴大數據實踐》——阿里巴巴數據技術及產品部 著。背景及目的數據對一個企業來說已經是一項重要的資產,既然是資產,肯定需要管理。隨著業務的增加,數據的應用越來越多,企業在創建的數倉過程中對數據的管理也提出了更高的要求,而數據質量也是數倉建設過程不容忽視的環節。本文針對MaxCompute數倉建設過程中如何做數據質量給出規範建議,為實際數據治理提供依據及指導。
  • 馬蜂窩數據中臺起步建設:數倉的架構、模型與應用
    3、設計流程馬蜂窩數倉模型設計的整體流程涉及需求調研、模型設計、開發測試、模型上線四個主要環節,且規範設計了每個階段的輸出與輸入文檔。3、元數據管理工具元數據範疇包括技術元數據、業務元數據、管理元數據,在概念上不做過多闡述了。
  • Flink + Iceberg 全場景實時數倉的建設實踐
    整體上,數倉架構中有非常多的組件,大大增加了整個架構的複雜性和運維的成本。如下圖,這是很多公司之前或者現在正在採用的 Lambda 架構,Lambda 架構將數倉分為離線層和實時層,相應的就有批處理和流處理兩個相互獨立的數據處理流程,同一份數據會被處理兩次以上,同一套業務邏輯代碼需要適配性的開發兩次。
  • 對OLTP和OLAP的粗淺認識
    這幾年在大數據知識理論學習較少,對最新發展技術及應用缺乏認識,本文談的多是在資料庫和數據倉庫方面的個人體驗和粗淺認識。傳統的計算機專業是按照資料庫、數據倉庫或數據挖掘來設置課程。,於是開啟了用數據倉庫技術來實現該系統,作為這個項目主要負責人,只能拼命自學.NET和OLAP技術,帶著兩個學弟學妹開始了該系統的研發,也因此更多得深入數據倉庫、ETL和多維數據集、CUBE等技術,當時做的工作就是採用ETL技術進行數據採集,建立數據集市,在此基礎上建立數據立方體CUBE,然後進行指標的定義和計算,最後進行數據可視化,系統上線後取得了很好的效果,得到北京外經貿委領導的認可,在國內應該說是比較早用數據倉庫技術解決了這樣一個領域問題
  • 基於Kafka+Flink平臺化設計,實時數倉還能這樣建
    本文由網易雲音樂實時計算平臺研發工程師嶽猛分享,主要從以下四個部分將為大家介紹 Flink + Kafka 在網易雲音樂的應用實戰:背景 Flink + Kafka 平臺化設計 Kafka 在實時數倉中的應用 問題 & 改進 一、背景介紹1、流平臺通用框架
  • 整合報表、數倉和BI,這款數據分析工具才是真正的全能型
    億信ABI中的數據整合模塊相當於一整套數倉實施工具,通過拖拽式的流程設計,實現了數據抽取、清洗、轉換、裝載及調度,且整個過程都是透明可見,以更直觀、更簡潔的方式呈現各數據倉庫建設各環節情況。三、數據集市數據經過數據源接入和數據整合後,就進入到了數據集市。
  • 漫談WinCE的手寫識別技術(一)
    //========================================================================本文引用地址:http://www.eepw.com.cn/article/201609/304832.htm//TITLE:// 漫談WinCE的手寫識別技術
  • 揭秘雙11絲滑般剁手之路背後的網絡監控技術
    藉此之際,我們將陸續推出雲原生實時數倉雙11實戰系列內容,本篇將重點介紹Hologres在阿里巴巴網絡監控部門成功替換Druid的最佳實踐,並助力雙11實時網絡監控大盤毫秒級響應。3...2...1...00:00:00 。購物車,結算,提交訂單,付款00:01:00...。滴,您的支付寶消費xxx萬元。
  • 數倉實時化改造:Hudi on Flink 在順豐的實踐應用
    1.2 順豐大數據技術矩陣 下面這張圖是順豐目前大數據整體的架構概覽: 然後右邊存儲結構的種類就相對豐富,因為不同的場景有不同的處理方式,比如數據分析需要性能比較強的 Clickhouse;數倉和離線計算這塊還是比較傳統,以 Hive 為主結合 Spark,目前我們是結合 Flink 與 Hudi 去實現離線實時化。 數據產品,我們傾向的還是首先降門檻,讓內部開發與用戶更容易上手。
  • 五大關鍵能力,華為云云原生數據倉庫GaussDB(DWS)深度技術解讀
    12月30日,在雲原生2.0技術峰會上,GaussDB(DWS)雲原生數據倉庫架構師為大家深度解讀了GaussDB(DWS)深度技術。  隨著金融風控,以及IoT場景對數據實時處理分析的訴求,我們正式發布了GaussDB(DWS)實時數倉版本,快上加快,將快發揮到極致。  實時數倉的快主要體現在兩個方面。首先是入庫速度快,與傳統數倉不同,數據的加載不再是T+1的大批量加載模式,而是更加實時的高並發小批量模式。DWS實時數倉時序數據單機入庫性能達10w/s,流數據達60w/s,並能夠線性擴展。
  • 成年人鋼琴學習漫談|選擇一臺合適的鋼琴
    成年人鋼琴學習漫談|聽中年人聊聊學鋼琴的感受」,以及「成年人鋼琴學習漫談|學鋼琴的最佳方法」,本篇他給出了如何考慮給自己選擇一架合適鋼琴的思考方式,相信對你也有參考意義事實上你還可以添加一點兒混響,以及在不同的鋼琴音色之間切換,這真的是一種額外的福利:-)3.技術我想要結合應用程式APP學鋼琴,因此藍牙技術是必須的功能支持。我也很喜歡內置節拍器這個想法的實操意義。另外,有能夠錄音記錄我的「演奏」的功能。
  • 《漫談》開篇詞:為生產有趣有料故事而來
    網易汽車5月22日報導 《漫談》新欄目上線,不能免俗,簡單寫個開篇詞。關於這檔新欄目,官方說辭是:《漫談》是網易汽車打造記錄"現場故事"的一檔全新訪談類欄目,我們聚焦每一個在汽車領域演變進程中掀起波瀾的人物,並以此關注瞬息萬變的商業變革,為圍觀的人提供有營養的內容。
  • 成年人鋼琴學習漫談|聽中年人聊聊學鋼琴的感受
    Roland 羅蘭成人鋼琴教育漫談在這篇文章中,理察·艾弗裡分享了他成年後學習鋼琴(和生活歷程)的個人經驗。這是他一路上自我探索發現的有用內容。成年人鋼琴學習漫談|設立理性的期望很重要Roland 羅蘭成人鋼琴教育漫談02.