溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析

發(fā)布時(shí)間:2020-07-23 07:35:02 來(lái)源:網(wǎng)絡(luò) 閱讀:654 作者:花輪同學(xué)丶 欄目:大數(shù)據(jù)

一、摘要
隨著互聯(lián)網(wǎng)的高速發(fā)展,數(shù)據(jù)量爆發(fā)式增長(zhǎng)的同時(shí),數(shù)據(jù)的存儲(chǔ)形式也開(kāi)始呈現(xiàn)出多樣性,有結(jié)構(gòu)化存儲(chǔ),如 Mysql, Oracle, SQLServer 等,半結(jié)構(gòu)化甚至非結(jié)構(gòu)化存儲(chǔ),如HBase,OSS 等。那么從事數(shù)據(jù)分析的人員就面臨著從多種多樣的數(shù)據(jù)存儲(chǔ)形式中提取數(shù)據(jù)而后進(jìn)行多維分析,這將是一件非常具有挑戰(zhàn)的事情。而Quick BI 作為新一代智能BI服務(wù)平臺(tái),恰好解決了這一難題,不僅支持多種結(jié)構(gòu)化數(shù)據(jù)源的多維分析,也支持本地文件上傳后的查詢(xún)分析,同時(shí)還支持部分非結(jié)構(gòu)化數(shù)據(jù)源的OLAP分析,甚至支持混合異構(gòu)數(shù)據(jù)源的關(guān)聯(lián)分析。
Quick BI 目前支持的數(shù)據(jù)源既可以來(lái)自阿里云數(shù)據(jù)庫(kù),也可以來(lái)自自建數(shù)據(jù)庫(kù),如下所示:

Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析

二、結(jié)構(gòu)化數(shù)據(jù)源多維分析
對(duì)于一般的數(shù)據(jù)源,用戶(hù)在做多維分析之前需要先在Quick BI 數(shù)據(jù)源界面添加自己的數(shù)據(jù)源,比如MySQL數(shù)據(jù)源,如下:

Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析

數(shù)據(jù)源添加完成后,可以選擇一張或多張要進(jìn)行分析的數(shù)據(jù)表創(chuàng)建一個(gè)數(shù)據(jù)集,如下:
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析
數(shù)據(jù)集創(chuàng)建完成后用戶(hù)就可以在儀表板里拖拽維度和度量進(jìn)行多維分析了,比如:
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析

結(jié)構(gòu)化數(shù)據(jù)源的多維分析相對(duì)比較簡(jiǎn)單,大致過(guò)程就是針對(duì)每次多維分析查詢(xún),根據(jù)用戶(hù)選擇的維度,度量及過(guò)濾條件等查詢(xún)因子,生成相應(yīng)結(jié)構(gòu)化數(shù)據(jù)源的方言SQL,然后通過(guò)執(zhí)行機(jī)下發(fā)到用戶(hù)自己的數(shù)據(jù)庫(kù)去執(zhí)行該SQL,最后Quick BI接收返回的查詢(xún)結(jié)果進(jìn)行可視化展現(xiàn)。下圖展示了多維分析的流程圖:
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析
順便介紹一下,本地文件上傳支持csv 和Excel 兩種文件類(lèi)型。上傳后的文件會(huì)落地到Quick BI提供的一種官方數(shù)據(jù)源:探索空間。探索空間底層依賴(lài)了一種阿里云自研的MPP SQL引擎,提供存儲(chǔ)+計(jì)算服務(wù)。
接下來(lái)的篇幅將著重介紹非結(jié)構(gòu)化查詢(xún)分析及混合異構(gòu)數(shù)據(jù)源關(guān)聯(lián)分析的原理。

三、非結(jié)構(gòu)化數(shù)據(jù)源查詢(xún)分析
3.1 背景
近年來(lái)部分大型企業(yè)更傾向于采用諸如半結(jié)構(gòu)化存儲(chǔ)(HBase),對(duì)象存儲(chǔ)(OSS)等能容納較大數(shù)據(jù)規(guī)模的數(shù)據(jù)庫(kù)。如何有效地幫助企業(yè)對(duì)此類(lèi)數(shù)據(jù)源進(jìn)行多維數(shù)據(jù)分析是目前業(yè)界BI產(chǎn)品的一項(xiàng)挑戰(zhàn)。
在開(kāi)源的數(shù)據(jù)庫(kù)產(chǎn)品當(dāng)中,存在著一些潛在的解決方案。例如,針對(duì)HDFS數(shù)據(jù)的查詢(xún),Hive設(shè)計(jì)了metastore組件,專(zhuān)門(mén)用于存儲(chǔ)元數(shù)據(jù),解決了從結(jié)構(gòu)化查詢(xún)到非結(jié)構(gòu)化數(shù)據(jù)之間的映射關(guān)系,用戶(hù)通過(guò)使用創(chuàng)建外部表SQL的語(yǔ)法,可以更靈活地自定義映射的方式。另外,Apache Phoenix也采取了類(lèi)似的方式讓用戶(hù)能夠使用SQL語(yǔ)句對(duì)HBase中的數(shù)據(jù)進(jìn)行查詢(xún)。經(jīng)過(guò)充分調(diào)研后,針對(duì)Quick BI產(chǎn)品自身的業(yè)務(wù)場(chǎng)景,結(jié)合開(kāi)源計(jì)算引擎二次開(kāi)發(fā)了一套用于非結(jié)構(gòu)化查詢(xún)的分析引擎。

3.2 技術(shù)原理
對(duì)非結(jié)構(gòu)化數(shù)據(jù)源進(jìn)行OLAP查詢(xún),其關(guān)鍵在于支持SQL語(yǔ)法形式的數(shù)據(jù)查詢(xún)。Quick BI在OLAP引擎內(nèi)部采用創(chuàng)建外部表的SQL語(yǔ)法,給用戶(hù)提供了一種自定義的,從非結(jié)構(gòu)化數(shù)據(jù)到結(jié)構(gòu)化存儲(chǔ)的映射方式。對(duì)于諸如MySQL、Oracle等結(jié)構(gòu)化的數(shù)據(jù)源而言,無(wú)須額外的元數(shù)據(jù)信息,而對(duì)于非結(jié)構(gòu)化的數(shù)據(jù)源,需要提供額外的元數(shù)據(jù)信息。Metastore維護(hù)了所有非結(jié)構(gòu)化數(shù)據(jù)源的元數(shù)據(jù)信息,元數(shù)據(jù)信息中反映了非結(jié)構(gòu)化數(shù)據(jù)到結(jié)構(gòu)化之間的映射方式。Metadb中包含了3張表,用于定義可以被SQL查詢(xún)所需要的元數(shù)據(jù)信息,如下圖所示:
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析
Schems、Tables和Columns分別定義了外部表的結(jié)構(gòu),通過(guò)SQL創(chuàng)建外部表時(shí),在其中加入相應(yīng)的記錄。查詢(xún)非結(jié)構(gòu)化數(shù)據(jù)源時(shí),再讀取相應(yīng)的記錄,對(duì)數(shù)據(jù)進(jìn)行解析。
下面以一個(gè)場(chǎng)景作為例子,進(jìn)一步地說(shuō)明非結(jié)構(gòu)化查詢(xún)的過(guò)程,假設(shè)用戶(hù)以CSV文件的形式將業(yè)務(wù)數(shù)據(jù)存儲(chǔ)在OSS上,文件的名稱(chēng)為iris.csv,其內(nèi)容如下所示:
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析
針對(duì)這個(gè)文件,用戶(hù)期望利用Quick BI對(duì)其進(jìn)行OLAP查詢(xún),根據(jù)用戶(hù)在Quick BI數(shù)據(jù)源頁(yè)面中的配置,OLAP內(nèi)部生成一條創(chuàng)建外部表的SQL語(yǔ)句:
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析
SQL Parser對(duì)SQL進(jìn)行解析,AST Builder生成對(duì)應(yīng)的AST,如下圖所示:
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析
注意到該AST包含了外部表所需的全部信息,包括如何解析csv文件并映射成結(jié)構(gòu)化的數(shù)據(jù),使得數(shù)據(jù)能夠與SQL中的schema、column和table對(duì)應(yīng)。Query Execution調(diào)用Metastore將信息存儲(chǔ)至Meatadb。此時(shí),存儲(chǔ)再OSS上的CSV文件在邏輯上已經(jīng)映射成了一張表,如下圖所示:

Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析

下一步便可以直接使用SQL對(duì)其進(jìn)行查詢(xún),例如,使用下面的SQL篩選出種類(lèi)(species)為setosa的數(shù)據(jù)記錄;
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析
同理,對(duì)于HBase數(shù)據(jù)源,同樣采用外部表的方式定義映射規(guī)則:
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析

3.3 小結(jié)
Quick BI 目前支持對(duì)OSS上的csv 文件進(jìn)行查詢(xún)分析,后續(xù)會(huì)增加支持OSS上更多文件類(lèi)型的查詢(xún)分析,及對(duì)HBase的多維分析。

四、混合異構(gòu)數(shù)據(jù)源關(guān)聯(lián)分析
4.1 背景
Quick BI用戶(hù)對(duì)異構(gòu)數(shù)據(jù)源的分析需求,如:維表在MySQL,事實(shí)表在MaxCompute時(shí),需要進(jìn)行不同類(lèi)型數(shù)據(jù)源間或相同類(lèi)型數(shù)據(jù)源不同庫(kù)間表的關(guān)聯(lián)分析。

4.2 技術(shù)原理
要能夠支持異構(gòu)數(shù)據(jù)源間的跨源關(guān)聯(lián)分析,首先需要有一款具備數(shù)據(jù)源Connector 插件機(jī)制的計(jì)算引擎,這樣就能夠方便擴(kuò)展支持多種數(shù)據(jù)源類(lèi)型查詢(xún)。我們從業(yè)界開(kāi)源計(jì)算引擎中選擇了一款具備這樣特性的MPP內(nèi)存計(jì)算引擎,經(jīng)過(guò)二次開(kāi)發(fā),形成了一套適合Quick BI業(yè)務(wù)場(chǎng)景的跨源查詢(xún)引擎。
跨源查詢(xún)引擎在支持異構(gòu)數(shù)據(jù)源查詢(xún)時(shí),只需在查詢(xún)SQL中使用完整的catalogName.dbName.tableName表名(如:odps.quickbi_test.company_sales_record),
在Quick BI業(yè)務(wù)中用戶(hù)自己配置的每個(gè)數(shù)據(jù)源在后臺(tái)都會(huì)配一個(gè)唯一標(biāo)識(shí)dsId, 所以剛好可以用來(lái)作為catalogName, 且涉及到的Catalog在跨源查詢(xún)引擎中已經(jīng)被加載即可。之后在查詢(xún)時(shí),跨源查詢(xún)引擎會(huì)解析SQL,生成邏輯計(jì)劃、物理計(jì)劃,再通過(guò)Catalog的配置到指定數(shù)據(jù)源加載數(shù)據(jù),在內(nèi)存中進(jìn)行計(jì)算并返回最終結(jié)果。
大部分多維分析都是單源查詢(xún),那么在什么情況下才會(huì)啟用跨源查詢(xún)引擎呢,這就需要實(shí)現(xiàn)異構(gòu)數(shù)據(jù)源查詢(xún)的智能路由,智能路由主要是根據(jù)查詢(xún)模型中涵蓋的數(shù)據(jù)源信息來(lái)判斷是單源查詢(xún)還是多源查詢(xún)來(lái)決定路由到單源查詢(xún)引擎還是跨源查詢(xún)引擎??缭床樵?xún)流程如下圖所示:
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析
注意要確保本次查詢(xún)所涉及到的catalogs 向跨源查詢(xún)引擎的CatalogServer 動(dòng)態(tài)注冊(cè)成功后,才能下發(fā)本次查詢(xún)的SQLText到跨源查詢(xún)引擎。
示例:MaxCompute, MySQL 間的異構(gòu)查詢(xún)SQL:
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析
查詢(xún)結(jié)果:
Quick BI 支持多種數(shù)據(jù)源進(jìn)行多維分析

4.3 小結(jié)
異構(gòu)數(shù)據(jù)源分析功能對(duì)用戶(hù)是透明無(wú)感知的,歡迎前往Quick BI體驗(yàn)。用戶(hù)只需在數(shù)據(jù)集關(guān)聯(lián)時(shí)選用來(lái)源于不同庫(kù)的數(shù)據(jù)表,就可輕松體驗(yàn)異構(gòu)數(shù)據(jù)源分析功能,目前支持MaxCompute、MySQL、Oracle間的異構(gòu)數(shù)據(jù)源查詢(xún)或同構(gòu)數(shù)據(jù)源跨庫(kù)查詢(xún)。后續(xù)會(huì)支持更多類(lèi)型數(shù)據(jù)源異構(gòu)查詢(xún),如 Hive, SQLServer, PostgresSql 等。

五、未完待續(xù)
Quick BI 后續(xù)將會(huì)迭代更新逐步支持更多類(lèi)型數(shù)據(jù)源的多維分析,如API類(lèi)數(shù)據(jù)源等,敬請(qǐng)期待…

作者:薩若 衣候

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI