您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“如何使用Apache Kylin框架”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何使用Apache Kylin框架”吧!
Apache Kylin 是什么?
Apache Kylin?是一個開源的分布式分析引擎,提供Hadoop之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規(guī)模數(shù)據(jù),最初由eBay Inc. 開發(fā)并貢獻(xiàn)至開源社區(qū)。它能在亞秒內(nèi)查詢巨大的Hive表。
Apache Kylin框架介紹
Apache kylin 能提供低延遲(sub-second latency)的秘訣就是預(yù)計(jì)算,即針對一個星型拓?fù)浣Y(jié)構(gòu)的數(shù)據(jù)立方體,預(yù)計(jì)算多個維度組合的度量,然后將結(jié)果保存在hbase中,對外暴露JDBC、ODBC、Rest API的查詢接口,即可實(shí)現(xiàn)實(shí)時查詢。Kylin從Hadoop Hive中獲取數(shù)據(jù),然后經(jīng)過Cube Build Engine,將Hive中的數(shù)據(jù)Build成一個OLAP Cube保存在HBase中。用戶執(zhí)行SQL查詢時,通過Query引擎,將SQL語句解析成OLAP Cube查詢,然后將結(jié)果返回給用戶。
Apache Kylin核心概念
表(table):This is definition of hive tables as source of cubes,在build cube 之前,必須同步在 kylin中。
模型(model):模型描述了一個星型模式的數(shù)據(jù)結(jié)構(gòu),它定義了一個事實(shí)表(Fact Table)和多個查找表(Lookup Table)的連接和過濾關(guān)系。
Cube 描述:描述一個Cube實(shí)例的定義和配置選項(xiàng),包括使用了哪個數(shù)據(jù)模型、包含哪些維度和度量、如何將數(shù)據(jù)進(jìn)行分區(qū)、如何處理自動合并等等。
Cube實(shí)例:通過Cube描述Build得到,包含一個或者多個Cube Segment。
分區(qū)(Partition):用戶可以在Cube描述中使用一個DATA/STRING的列作為分區(qū)的列,從而將一個Cube按照日期分割成多個segment。
立方體段(cube segment):它是立方體構(gòu)建(build)后的數(shù)據(jù)載體,一個 segment 映射hbase中的一張表,立方體實(shí)例構(gòu)建(build)后,會產(chǎn)生一個新的segment,一旦某個已經(jīng)構(gòu)建的立方體的原始數(shù)據(jù)發(fā)生變化,只需刷新(fresh)變化的時間段所關(guān)聯(lián)的segment即可。
聚合組:每一個聚合組是一個維度的子集,在內(nèi)部通過組合構(gòu)建cuboid。
作業(yè)(job):對立方體實(shí)例發(fā)出構(gòu)建(build)請求后,會產(chǎn)生一個作業(yè)。該作業(yè)記錄了立方體實(shí)例build時的每一步任務(wù)信息。作業(yè)的狀態(tài)信息反映構(gòu)建立方體實(shí)例的結(jié)果信息。如作業(yè)執(zhí)行的狀態(tài)信息為RUNNING 時,表明立方體實(shí)例正在被構(gòu)建;若作業(yè)狀態(tài)信息為FINISHED ,表明立方體實(shí)例構(gòu)建成功;若作業(yè)狀態(tài)信息為ERROR ,表明立方體實(shí)例構(gòu)建失?。?br/> 樣例 Cube 快速入門
執(zhí)行$KYLIN_HOME/bin/sample.sh,等待腳本執(zhí)行完畢,導(dǎo)入學(xué)習(xí)工程,Kylin 提供了一個創(chuàng)建樣例 Cube 腳本;腳本會創(chuàng)建五個樣例 Hive 表,該表主要是記錄銷售信息數(shù)據(jù)。我們將基于該表進(jìn)行銷售相關(guān)信息進(jìn)行分析。
導(dǎo)入學(xué)習(xí)工程后需要重新加載元素?fù)?jù)或者是重啟kylin服務(wù)才能使工程生效。這里我們采用重新加載的方式來進(jìn)行處理。
訪問主機(jī): http://hostname:7070,用默認(rèn)的用戶名和密碼 ADMIN/KYLIN 登陸 Kylin 網(wǎng)站
選擇 project 下拉框(左上角)中的 learn_kylin 工程;可以看到該項(xiàng)目下存在剛剛導(dǎo)入的Hive庫。
連接一下Hive庫,查看Hive default庫中的表,存在上面的五張表
進(jìn)入kylin Web界面登錄 》System 》reload metadata,重新加載元素?fù)?jù)。
執(zhí)行完成后可以查看導(dǎo)入模型,存在兩個模型,本次我們主要是學(xué)習(xí)“kylin_sales_cube”
選擇該數(shù)據(jù)模型,點(diǎn)擊“Build”構(gòu)建cube。
選擇數(shù)據(jù)分區(qū)范圍,選擇一個在 2014-01-01 之后的日期(覆蓋所有的 10000 樣例記錄)。
點(diǎn)擊monitor,查看正在構(gòu)建cube的作業(yè),刷新查看構(gòu)建進(jìn)度,等待構(gòu)建完成
這一步會比較耗時,因?yàn)檫@步會進(jìn)行預(yù)計(jì)算,默認(rèn)是MapReduce作業(yè)。
如果長時間沒有完成,請?jiān)俅吸c(diǎn)擊刷新,狀態(tài)信息會更新,期間遇到錯誤如下所示:
經(jīng)查看是由于hadoop的歷史任務(wù)服務(wù)器沒有啟動導(dǎo)致,執(zhí)行命令開啟
$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver
jps檢測是否有JobHistoryServer進(jìn)程,存在進(jìn)程則證明啟動成功
啟動后可以,點(diǎn)擊“ACTION”下面有個“PENDING”選項(xiàng)可以恢復(fù)再次運(yùn)行的狀態(tài)。
構(gòu)建完成
查詢構(gòu)建完成的cube,在“Insight”選項(xiàng)卡中執(zhí)行SQL,首先我們執(zhí)行一條SQL用來統(tǒng)計(jì)“KYLIN_SALES”表的數(shù)目。
select count(*) from KYLIN_SALES
執(zhí)行結(jié)果耗時1.77秒
再次執(zhí)行耗時就非??炝耍谒拇螆?zhí)行耗時0.11秒
接下來我們執(zhí)行一條業(yè)務(wù)分析的SQL,用來統(tǒng)計(jì)每日銷售總金額和購買人數(shù)量。執(zhí)行結(jié)果,結(jié)果展示較快
select part_dt, sum(price) as total_sold, count(distinct seller_id) as sellers
from kylin_sales group by part_dt order by part_dt
基于上面的SQL再次進(jìn)行擴(kuò)展,進(jìn)行多表關(guān)聯(lián),對銷售數(shù)據(jù)進(jìn)行多維分析,查看不同分類下商品的銷售情況。查看多表關(guān)聯(lián)查詢結(jié)果,速度依然很快。
SELECT sum(KYLIN_SALES.PRICE) AS price_sum,
KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,
KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
FROM KYLIN_SALES
INNER JOIN KYLIN_CATEGORY_GROUPINGS ON KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID
AND KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID
GROUP BY KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,
KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
ORDER BY KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME ASC,
KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME DESC
點(diǎn)擊Visualization 可視化展示,用戶可以選擇“圖形類型”,“維度”和“度量”。
到此,相信大家對“如何使用Apache Kylin框架”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。