簡介: 隨著數字化程序的深入,資料應用的價值被越來越多的企業所重視。基於資料進行決策分析是應用價值體現的重要場景,不同行業和體量的公司廣泛依賴BI產品製作報表、儀表板和資料門戶,以此進行決策分析。
在利用BI產品進行資料分析過程中,資料處理“慢”會為業務帶來很多的困擾,可以想象一下:
- 給老闆看的報表載入展示非常慢,有的時候還會崩掉,本想做好向上彙報,但卻給老闆帶來了糟糕的體驗~
- 分析師或業務同學,做資料探索式分析,拖拽一個指標需要幾分鐘才能看到結果,嚴重影響工作效率,打斷分析思路~
“慢”雖然只是一種難以精確定義的體感,但想要解決以上問題,就需要BI產品擁有很強的大資料處理架構和能力,可以橫向擴充套件支援不斷增長的資料量和計算任務。
Quick BI:阿里雲飛天作業系統上的雲BI
Quick BI產品是在阿里雲飛天作業系統上打造的雲BI軟體,支援SAAS模式和私有化部署,定位多場景、多端、多行業的消費式BI,本篇為大家詳細介紹產品核心Quick引擎。
Quick BI基於阿里雲橫向可擴充套件的架構底座,不但擁有視覺化分析、中國式報表、自助分析等傳統BI能力,同時擁有企業級安全底座、移動端和三方系統開放整合能力。
Quick BI構建了自己的計算核心Quick引擎,託管在阿里雲上的SAAS服務實測資料十億級資料在0.5秒以內完成聚合分析,另外由於依託阿里雲,計算資源支援橫向擴充套件,透過增加伺服器還可以提供更強大的資料分析計算能力。
Quick引擎:多模式BI計算引擎
Quick引擎作為Quick BI的計算底座,是一個多模式的BI計算引擎,支援資料庫直接連線、抽取加速、實時加速、查詢快取、維值加速等多種計算模式,為不同使用者提供最適合自身場景的高效計算方案。
上圖為Quick引擎架構圖,從Quick BI產品使用鏈路上,分為資料來源、資料集和資料作品三部分。資料來源是底層的資料庫連線,資料集用於對資料來源裡的表進行建模(表關聯、欄位型別建模等),把一張或多張表變成一個上層資料作品(儀表板、電子表格、即席分析)可用的資料物件。
Quick引擎架構在資料來源和資料集之間,用來處理上層資料作品傳送到資料集最終下放到資料來源上的查詢,在技術實現上Quick引擎分為三條鏈路,資料庫直連、資料庫實時加速、資料庫抽取,在這三條鏈路進行了技術層抽象。
從使用者使用視角來看,我們提供如下5種計算模式:
(1)直連模式:計算負載直接跑在連線到BI產品的資料庫或數倉上,支援幾十種資料來源,所有版本使用者都可使用,非常適用於底層計算資源滿足查詢負載的場景;
(2)抽取加速:把客戶資料庫或數倉的資料抽取到Quick引擎的高效能列式儲存引擎中,支援全量模式和增量模式,分析計算負載直接跑在Quick BI引擎中,充分利用Quick引擎效能的同時,減少客戶數倉的負擔,專業版客戶可用,非常適用於企業沒有獨立數倉或數倉負載過重的情況;
(3)實時加速:基於阿里雲DLA(Data Lake Analysis)記憶體計算引擎,查詢時實時從客戶資料庫取資料,中間用DLA記憶體引擎加速計算,專業版客戶可用,目前支援阿里雲Max Compute數倉,非常適合Max Compute數倉實時分析,更多資料庫支援開通中;
(4)查詢快取:所有版本使用者可用,應用端報表、儀表板在訪問時臨時查詢結果被快取下來,在配置的快取有效時間內,接下來其他使用者相同的查詢直接取快取結果,加快返回速度同時避免重複計算的資源消耗,非常適合應用端是重複查詢較多的場景,比如視覺化展示類;
(5)維值加速:所有版本使用者可用,基於直連模式和維表配置實現,透過配置維值加速使得高頻且耗時的維度欄位查詢計算直接在資料庫維表上進行,而不是在原始的明細表上進行,比如即席分析和查詢控制元件的維值查詢,在這類場景下相比不進行維值加速可快速返回結果且節省計算資源;
Quick引擎 - 使用指南
在正式開始介紹每種引擎具體用法時,先結合每種引擎特點給出一個場景使用指南,方便使用者在不同場景下選擇最合適的引擎。
Quick引擎透過資料集不同配置會採用不同計算模式,依據資料集不同情況,建議如下:
(1)資料集預設採用直連模式,如果查詢效能良好,則可不進行額外配置,如果無法滿足要求,則進行以下判斷
(2)資料集主要被用在儀表板、報表中,偏固定資料展示類的,沒有被很多查詢控制元件控制
- 實效性要求不是非常高,很適合配快取,基本可以解決問題了(可能80%以上可以解決)
- 實效性要求不是非常高,如果配了快取還不行,比如某個資料集被做了很多報表,第一次快取查詢就吃不消,MySQL類非OLAP資料庫建議用抽取加速,ADB類的OLAP資料庫,建議首先最佳化下資料建模(比如是不是大表join大表),其次建議採用抽取加速分擔些負載
- 實效性要求很高,每次看,都想看最新資料,ODPS資料來源可以用DLA實時加速
(3)資料集主要被用在即席分析、電子表格分析這類偏個性分析查詢中,或者有非常多查詢控制元件的儀表板報表中,配快取意義不是很大(有點作用),建議:
- 底層資料庫不是OLAP,比如MySQL,執行很慢,首先建議採用抽取加速,其次建議最佳化資料建模
- 底層資料庫是OLAP,比如ADB,執行很慢,建議首先最佳化下資料建模(比如是不是大表join大表),其次建議採用抽取加速分擔些負載
- 底層資料庫是ODPS,執行很慢,如果實效性要求高,建議DLA實時加速,實效性要求不高,建議抽取加速
(4)資料集維度欄位被頻繁用於查詢控制元件或即席分析,推薦為該欄位配置維值加速
Quick引擎 - 直連模式
直連模式是Quick引擎查詢的預設模式,所有的查詢會發送給底層資料庫或數倉執行,Quick BI直連模式支援幾十種雲和自建資料庫。
在資料集頁面點選“新建資料集”,選擇已配置的資料來源,左側面板會展示該資料來源裡的所有表,拖入一張或多張表到面板中,即可在資料預覽區域進行欄位配置,配置完成後儲存資料集,方可進行後續分析。資料集儲存後,後續所建的分析查詢預設直連模式。
Quick引擎 - 抽取加速
當直連模式查詢過多或者資料量過大時,會導致底層資料庫負載過重查詢變慢,上層儀表表展示和分析就會變慢,出現文章開頭所講的困擾,此時可以考慮Quick引擎的抽取加速。
抽取加速是專業版特有功能,目前覆蓋MySQL、ADB for MySQL和MaxCompute三種資料來源,支援全量抽取和增量抽取資料到Quick引擎的高效能列式儲存分析型資料庫中,抽取後的資料查詢直接在列式分析資料庫中完成而無需發到客戶資料庫上,提升資料查詢效能,同時減少客戶資料庫負載。
點選資料集選單,選擇“加速配置”,在第一個 “Quick引擎”Tab點選開啟引擎,選擇抽取加速:
- 加速時間可選“手動觸發”和“定時加速”,定時加速設定時間後定期觸發抽取任務
- 智慧聚合抽取支援“全表加速”、“預計算”、“全表計算+預計算”三種模式,其中全表加速抽取全表資料,預計算基於歷史查詢智慧預計算查詢結果,節省抽取空間
- 勾選按日期加速,可以選擇日期欄位,每日根據日期欄位增量抽取
配置完成後,點選儲存,抽取任務即會自動觸發,抽取完成後,之後的資料查詢將在抽取引擎資料庫中完成。
Quick引擎抽取加速效能測試,10億資料sum、count、avg和median等聚合均在0.5秒內返回,具備十億級資料亞秒級分析的能力,如下表為效能測試結果。
同時由於Quick BI是依託於阿里雲飛天底座的產品架構,具備橫向擴充套件的能力,Quick引擎隨著機器數量的增加資料處理能力會不斷增強,理論上具有無限擴充套件的能力。
Quick引擎 - 實時加速
當直連模式出現效能問題,同時對資料的實效性要求較高,天粒度更新無法滿足要求,而需要小時或分鐘粒度資料更新,由於抽取加速是天粒度資料更新而無法採用,此時可以考慮另一種選擇,採用實時加速來進行高實效資料的查詢加速。
與抽取加速一樣,實時加速也是專業版特有功能,目前支援MaxCompute資料來源,基於阿里雲DLA(Data Lake Analysis)記憶體計算引擎,查詢時把資料實時載入到DLA中進行計算,提升查詢效能,可以把離線型數倉MaxCompute透過實時加速變成線上分析型數倉。
在資料集加速配置頁面,開啟Quick引擎,切換到實時加速,儲存即可開啟資料集實時加速模式。
Quick引擎 - 查詢快取
查詢快取的原理是應用端報表、儀表板在訪問時臨時查詢結果被快取下來,在配置的快取有效時間內,接下來其他使用者相同的查詢直接取快取結果,命中快取的查詢可以立即返回結果,沒有命中快取的查詢會被髮到底層資料庫進行查詢,查詢返回後該查詢也會被快取下來供接下來使用。
結果快取是一種應用範圍很廣且非常有效的資料查詢加速方式,它適用於所有資料來源,對不同版本使用者都可用,對一定時間記憶體在重複查詢的資料集都可以配置查詢快取,特別是重複查詢較多的場景,比如儀表板展示類,可以大幅提升查詢效能。
在加速配置頁面,開啟查詢結果快取,可配置不同快取時間,表示快取生效的有效期,如果資料是非小時粒度實效性,建議選擇12小時。
Quick引擎 - 維值加速
在直連查詢中,關於維度值的查詢是比較耗時的,比如商品名稱、客戶名稱、城市名稱等,因為這類查詢在直連模式下需要去底層資料庫做去重聚合操作,要掃描全表資料,所以比較耗時。而在某些場景下,這類查詢操作可能會非常頻繁的出現,比如即席分析的維度值分析和查詢控制元件的維度值查詢,在這類場景下可以透過配置維值加速提升查詢效能。
在加速配置頁面,開啟維值加速,該資料集是一張訂單明細表,在前端儀表板頁面經常需要基於客戶名稱和產品名稱查詢成交情況,因此把這兩個欄位配置維值加速,分別對應上底層資料庫兩張使用者和商品維表的欄位,之後維度值的查詢將直接從這兩張維表中取,而無需去明細表做聚合,從而提升查詢速度。
以上是關於Quick BI的計算核心Quick引擎的功能和使用場景的介紹,依託阿里雲的計算底座,Quick引擎實現了十億級資料亞秒級分析的能力,讓上層分析視覺化應用在大資料時代真正飛起來。
本文為阿里雲原創內容,未經允許不得轉載。