柚子快報(bào)邀請(qǐng)碼778899分享:大數(shù)據(jù) 【數(shù)據(jù)倉(cāng)庫(kù)】即席查詢
柚子快報(bào)邀請(qǐng)碼778899分享:大數(shù)據(jù) 【數(shù)據(jù)倉(cāng)庫(kù)】即席查詢
文章目錄
定義特點(diǎn)OLTP、OLAP、即席查詢(ad hoc query)區(qū)別與聯(lián)系相關(guān)框架Kylin來(lái)源
定義
即席查詢(Ad Hoc)是用戶根據(jù)自己的需求,靈活的選擇查詢條件,系統(tǒng)能夠根據(jù)用戶的選擇生成相應(yīng)的統(tǒng)計(jì)報(bào)表。即席查詢與普通應(yīng)用查詢最大的不同是普通的應(yīng)用查詢是定制開(kāi)發(fā)的,而即席查詢是由用戶自定義查詢條件的。
特點(diǎn)
即席查詢 的特點(diǎn): 即席查詢 與 固化查詢 最大的不同是,普通的 固化查詢 是定制開(kāi)發(fā)的(即查詢語(yǔ)句是預(yù)先寫(xiě)好的,不會(huì)臨時(shí)發(fā)生變化),而即席查詢是由用戶自定義查詢條件的。隨時(shí)可以更改。
對(duì)于 即席查詢 和 OLAP 可以參考下圖的關(guān)系圖:
OLTP、OLAP、即席查詢(ad hoc query)區(qū)別與聯(lián)系
對(duì)于目前來(lái)講,對(duì)數(shù)據(jù)的處理主要集中在兩個(gè)方面,一種是聯(lián)機(jī)事務(wù)處理 OLTP(on-line transaction processing),另一種是聯(lián)機(jī)分析處理 OLAP(On-Line Analytical Processing)。
OLTP:是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的主要應(yīng)用,主要是基本的、日常的事務(wù)處理,典型的是銀行 ATM 存取款,金融證券方面的實(shí)時(shí)更新等,這些操作都比較簡(jiǎn)單,主要是對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行 DML 操作,操作主體一般是產(chǎn)品的用戶,并且 OLTP 事務(wù)性非常高,一般都是高可用的在線系統(tǒng),如上述的銀行金融方面。
OLAP :有的時(shí)候也叫 DSS 決策支持系統(tǒng),也就類(lèi)似于我們說(shuō)的數(shù)據(jù)倉(cāng)庫(kù),它使分析人員能夠迅速、一致、交互地從數(shù)據(jù)的各個(gè)方面來(lái)觀察信息,以達(dá)到深入理解數(shù)據(jù)的目的。通過(guò)分析 DW 中的數(shù)據(jù)來(lái)得出一些結(jié)論性的東西(比如報(bào)表),從各方面觀察信息,也就是從不同的維度分析數(shù)據(jù)(站在維度的角度看待事實(shí)),因此 OLAP 也稱(chēng)多維分析。
兩者的對(duì)比如下圖所示:
屬性對(duì)比OLTP (例如mysql)OLAP (例如hive)操作對(duì)象數(shù)據(jù)庫(kù)數(shù)據(jù)倉(cāng)庫(kù)讀特性每次查詢只返回少量記錄對(duì)大量記錄進(jìn)行匯總寫(xiě)特性隨機(jī)、低延時(shí)寫(xiě)入用戶的輸入批量導(dǎo)入大量的數(shù)據(jù)數(shù)據(jù)時(shí)效當(dāng)前最新的數(shù)據(jù)當(dāng)前歷史的聚集的數(shù)據(jù)操作粒度記錄級(jí)多表join分析使用場(chǎng)景用戶,Java EE項(xiàng)目數(shù)據(jù)分析師,為企業(yè)決策提供支持具體工作內(nèi)容簡(jiǎn)單的事務(wù)復(fù)雜的查詢時(shí)間要求具有實(shí)時(shí)性分離線數(shù)倉(cāng)和實(shí)時(shí)數(shù)倉(cāng)數(shù)據(jù)量GBTB到PB數(shù)據(jù)操作支持DDL,DML一般不支持更新和刪除主要功能查詢或改變現(xiàn)狀報(bào)表,統(tǒng)計(jì)預(yù)測(cè)
然而對(duì)于 即席查詢 而言,一般情況下它是與 OLAP 做對(duì)比的,這里說(shuō)明一下在數(shù)倉(cāng)中我們一般都是對(duì)數(shù)據(jù)進(jìn)行一個(gè)批處理(基本上對(duì)前一天數(shù)據(jù)處理),并且是針對(duì)固定的數(shù)據(jù)有一個(gè)明確的分析指標(biāo)的。例如,下圖是一張訂單表的數(shù)據(jù):
訂單ID下單地區(qū)下單品類(lèi)下單時(shí)間下單金額1001華北電子12月4561002華東食品11月4891003西南居家2月4911004東北電子4月6591005西北寵物11月3691006華北食品2月159
何為一個(gè)明確的分析指標(biāo)?按照上述所說(shuō)的,從維度的角度看待事實(shí)(事實(shí)指的是度量值,在這張表中為金額),我們可以按照7個(gè)維度來(lái)度量金額,也即是下表所列出的內(nèi)容。
維度度量值分析指標(biāo)品類(lèi)金額…時(shí)間金額…地區(qū),品類(lèi)金額…地區(qū),時(shí)間金額什么地區(qū),什么時(shí)間銷(xiāo)售了多少金額品類(lèi),時(shí)間金額…地區(qū),品類(lèi),時(shí)間金額什么地區(qū),什么品類(lèi),什么時(shí)間銷(xiāo)售了所少金額
通過(guò)上面表的展示,也就是從不同的維度來(lái)圍繞度量值分析
對(duì)于數(shù)倉(cāng)的這種分析情況,我們一般都是有固定的套路的,比如說(shuō)
select area, time from table group by area, time;
這種查詢也稱(chēng)作為 固化查詢
指對(duì)一些固化下來(lái)的取數(shù)、看數(shù)的需求,最終通過(guò)數(shù)據(jù)產(chǎn)品的形式提供給用戶,從而提高數(shù)據(jù)分析和運(yùn)營(yíng)的效率,這類(lèi)需求的 SQL 基本上有固定的模式
然而不幸的事情發(fā)生了。平時(shí)的工作中,上述的固化查詢你搞的好好的,這時(shí)候老板突然來(lái)了一個(gè)需求,但是范圍并不屬于上述的那種有固定模式的 SQL ,我們把這類(lèi)需求稱(chēng)為 即席查詢 (Ad hoc queries)
對(duì)于 即席查詢 和 固化查詢 的總結(jié):
即席查詢 與 固化查詢 從SQL語(yǔ)句上來(lái)說(shuō),并沒(méi)有本質(zhì)的差別。它們之間的差別在于,固化查詢?cè)谙到y(tǒng)設(shè)計(jì)和實(shí)施時(shí)是已知的,所有的查詢可以在系統(tǒng)實(shí)施的過(guò)程中,通過(guò)建立索引、分區(qū)等技術(shù)來(lái)優(yōu)化這些查詢,使得這些查詢的效率很高。而 即席查詢 是用戶臨時(shí)生產(chǎn)的需求,無(wú)法人工預(yù)先地優(yōu)化這些查詢,這類(lèi)查詢一般需要數(shù)據(jù)庫(kù)內(nèi)部實(shí)時(shí)地自動(dòng)優(yōu)化,所以 即席查詢 也是評(píng)估數(shù)據(jù)倉(cāng)庫(kù)的一個(gè)重要指標(biāo)。在一個(gè)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)中,即席查詢使用的越多,對(duì)數(shù)據(jù)倉(cāng)庫(kù)的要求就越高,對(duì)數(shù)據(jù)模型的對(duì)稱(chēng)性的要求也越高。
最后為什么不用hive做即席查詢? 即席查詢目的很明確,就是要快,所提即所得,即提出來(lái)這個(gè)需求立馬要看到結(jié)果。數(shù)倉(cāng)傳統(tǒng)的hive做即席查詢那肯定是不行的,MR跑完數(shù)據(jù)估計(jì)天都黑了。
相關(guān)框架
1、Druid:是一個(gè)實(shí)時(shí)處理時(shí)序數(shù)據(jù)的 OLAP 數(shù)據(jù)庫(kù),因?yàn)樗乃饕紫劝凑諘r(shí)間分片,查詢的時(shí)候也是按照時(shí)間線去路由索引。 2、Kylin:核心是 Cube ,Cube是一種預(yù)計(jì)算技術(shù),基本思路是預(yù)先對(duì)數(shù)據(jù)進(jìn)行多維索引,分別對(duì)不同的維度進(jìn)行組合,形成可能出現(xiàn)的查詢 Cube ,當(dāng)然,針對(duì)無(wú)意義的維度組合可以進(jìn)行剪枝操作。使得數(shù)據(jù)量變小,查詢時(shí)只掃描索引而不訪問(wèn)原始數(shù)據(jù)從而提速。 3、Presto:它沒(méi)有使用 Mapreduce,大部分場(chǎng)景下比 Hive 快一個(gè)數(shù)量級(jí),其中的關(guān)鍵是所有的處理都在內(nèi)存中完成。支持多個(gè)數(shù)據(jù)源。同時(shí)針對(duì)可以將不同的數(shù)據(jù)源進(jìn)行 join 操作。 4、Impala:基于內(nèi)存計(jì)算,速度快,支持的數(shù)據(jù)源沒(méi)有 Presto 多。 5、SparkSQL:是 Spark 用來(lái)處理結(jié)構(gòu)化數(shù)據(jù)的一個(gè)模塊,它提供一個(gè)抽象的數(shù)據(jù)集 DataFrame 和 DataSet,并且是分布式 SQL 的查詢引擎。它還可以實(shí)現(xiàn) Hive on Spark ,使用 Spark 引擎讀取 Hive 的元數(shù)據(jù)信息,從而操作 Hive 里的數(shù)據(jù)。 6、ClickHouse:ClickHouse 不依賴任何第三方組件,采用的是列式存儲(chǔ)。支持多個(gè)存儲(chǔ)的引擎,用戶可以根據(jù)不同的表來(lái)選擇不同的存儲(chǔ)引擎。同時(shí)底層還實(shí)現(xiàn)了向量化引擎。 7、Doris :不依賴任何第三方組件,也是一個(gè)列存的數(shù)據(jù)庫(kù)。使用 MySQL 協(xié)議,兼容 MySQL 語(yǔ)法,使用 MySQL 語(yǔ)法可對(duì) Doris 數(shù)據(jù)庫(kù)進(jìn)行查詢。新版本也實(shí)現(xiàn)了向量化引擎。
Kylin
即席查詢-Kylin
來(lái)源
百度百科-即席查詢 OLTP、OLAP、即席查詢(ad hoc query)區(qū)別與聯(lián)系
柚子快報(bào)邀請(qǐng)碼778899分享:大數(shù)據(jù) 【數(shù)據(jù)倉(cāng)庫(kù)】即席查詢
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。