Apache Kylin權(quán)威指南(第2版)
定 價(jià):99 元
- 作者:Apache Kylin核心團(tuán)隊(duì)
- 出版時(shí)間:2019/8/1
- ISBN:9787111633297
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP368.5-62
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書由Apache Kylin核心開發(fā)團(tuán)隊(duì)編寫,近兩年Apache Kylin隨著社區(qū)持續(xù)貢獻(xiàn)的熱度和在不同領(lǐng)域業(yè)務(wù)場(chǎng)景的深入實(shí)踐應(yīng)用,新的功能和特性不斷涌現(xiàn),這樣就迫切需要更新內(nèi)容來滿足廣大Apache Kylin 的使用者和關(guān)注人群的需要。本書從Apache Kylin的架構(gòu)和設(shè)計(jì),各個(gè)模塊的使用,與第三方的整合,二次開發(fā)以及開源實(shí)踐等各個(gè)方面進(jìn)行講解,為各位讀者呈現(xiàn)*核心的設(shè)計(jì)理念和哲學(xué)、算法和技術(shù)等。
“麒麟出沒,必有祥瑞!
—中國(guó)古諺語(yǔ)
“與Apache Kylin團(tuán)隊(duì)一起合作使Kylin孵化成為頂級(jí)項(xiàng)目對(duì)我而言非常激動(dòng)人心,Kylin在技術(shù)方面當(dāng)然是振奮人心的,但同樣令人興奮的是Kylin 代表了亞洲國(guó)家,特別是中國(guó),在開源社區(qū)中越來越高的參與度!
—Ted Dunning Apache 孵化項(xiàng)目副總裁,MapR 首席應(yīng)用架構(gòu)師
今天,隨著移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、AI等各種技術(shù)的快速興起,數(shù)據(jù)成了所有這些技術(shù)背后最重要,也是最有價(jià)值的“資產(chǎn)”。如何從數(shù)據(jù)中獲得有價(jià)值的信息呢?這個(gè)問題驅(qū)動(dòng)了相關(guān)技術(shù)的發(fā)展,從最初的基于文件的檢索、分析程序,到數(shù)據(jù)倉(cāng)庫(kù)理念的誕生,再到基于數(shù)據(jù)庫(kù)的商業(yè)智能分析。而現(xiàn)在,我們關(guān)注的問題已經(jīng)變成如何從海量的超大規(guī)模數(shù)據(jù)中快速獲取有價(jià)值的信息。在新的時(shí)代,面對(duì)新的挑戰(zhàn),新的技術(shù)必然會(huì)應(yīng)運(yùn)而生。
在數(shù)據(jù)分析領(lǐng)域,大部分的技術(shù)都誕生在國(guó)外,特別是美國(guó),從最初的數(shù)據(jù)庫(kù),到Hadoop為首的大數(shù)據(jù)技術(shù),再到今天各種深度學(xué)習(xí)、AI等。但我國(guó)卻又擁有世界上獨(dú)一無二的“大”數(shù)據(jù)—最多的人口、最多的移動(dòng)設(shè)備、最活躍的應(yīng)用市場(chǎng)、最復(fù)雜的網(wǎng)絡(luò)環(huán)境……面對(duì)這些挑戰(zhàn),我們需要有自己的核心技術(shù),特別是在基礎(chǔ)領(lǐng)域的突破和研發(fā)。今天,以Apache Kylin為首的各種來自中國(guó)的先進(jìn)技術(shù)不斷涌現(xiàn),甚至在很多方面都大大超越了來自國(guó)外的其他技術(shù),彰顯了中國(guó)的技術(shù)實(shí)力。
自Hadoop選取大象圖標(biāo)伊始,上百個(gè)項(xiàng)目,以動(dòng)物居之者為多。而其中唯有Apache Kylin(麒麟)來自中國(guó),在眾多項(xiàng)目中分外突出。在全球最大的開源基金會(huì)—Apache 軟件基金會(huì)(Apache Software Foundation,ASF)的160多個(gè)頂級(jí)項(xiàng)目中,Apache Kylin是唯一一個(gè)來自中國(guó)的Apache頂級(jí)開源項(xiàng)目,與Apache Hadoop、Apache Spark、Apache Kafka、Apache Tomcat、Apache Struts、Apache Maven等頂級(jí)項(xiàng)目一起以“The Apache Way”構(gòu)建開源大數(shù)據(jù)領(lǐng)域的國(guó)際社區(qū),發(fā)展新技術(shù)并拓展生態(tài)系統(tǒng)。
大數(shù)據(jù)與傳統(tǒng)技術(shù)的最大區(qū)別就在于數(shù)據(jù)的體量給查詢帶來的巨大挑戰(zhàn)。從最早使用大數(shù)據(jù)技術(shù)來做批量處理,到現(xiàn)在越來越多的人要求大數(shù)據(jù)平臺(tái)也能夠如傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)技術(shù)一樣支持交互式分析,隨著數(shù)據(jù)量的不斷膨脹、數(shù)據(jù)平民化的不斷推進(jìn),低延遲、高并發(fā)地在Hadoop之上提供標(biāo)準(zhǔn)SQL查詢能力成為必須攻破的技術(shù)難題。而Apache Kylin的誕生正是基于這個(gè)背景,并成功地完成了很多人認(rèn)為不可能實(shí)現(xiàn)的突破。Apache Kylin最初誕生于eBay中國(guó)研發(fā)中心,該中心坐落于上海浦東新區(qū)。2013年9月底該研發(fā)中心開始進(jìn)行POC測(cè)試并組建團(tuán)隊(duì),經(jīng)過一年的艱苦開發(fā)和測(cè)試,Apache Kylin于2014年9月30日正式上線,并在第二天,2014年10月1日,正式開源。
在這個(gè)過程中,面對(duì)使用何種技術(shù)、如何設(shè)計(jì)架構(gòu)、如何突破那些看似無法完成的挑戰(zhàn)等一系列技術(shù)難關(guān),整個(gè)開發(fā)團(tuán)隊(duì)和用戶一起經(jīng)歷了一個(gè)艱難的過程。今天呈現(xiàn)的Apache Kylin已經(jīng)經(jīng)歷了上千億甚至上萬億規(guī)模數(shù)據(jù)量的分析請(qǐng)求及上百家公司在實(shí)際生產(chǎn)環(huán)境中的檢驗(yàn),成為各個(gè)公司大數(shù)據(jù)分析平臺(tái)不可替代的重要組成部分。本書將從Apache Kylin的架構(gòu)和設(shè)計(jì)、各個(gè)模塊的使用、與第三方的整合、二次開發(fā)以及開源實(shí)踐等多個(gè)方面進(jìn)行講解,為讀者呈現(xiàn)Apache Kylin最核心的設(shè)計(jì)理念和哲學(xué)、算法和技術(shù)等。
Apache Kylin社區(qū)的發(fā)展來之不易,自2014年10月開源至今已經(jīng)有近五年的時(shí)間,從最初的幾個(gè)研發(fā)人員發(fā)展到今天幾十個(gè)貢獻(xiàn)者、國(guó)內(nèi)外上百家公司正式使用、連續(xù)兩年獲得InfoWorld Bossie Awards最佳開源大數(shù)據(jù)工具獎(jiǎng)。來自Apache Kylin核心團(tuán)隊(duì)、貢獻(xiàn)者、用戶、導(dǎo)師、基金會(huì)等的幫助和無私奉獻(xiàn)鑄就了今天Apache Kylin活躍的社區(qū),也使得此項(xiàng)技術(shù)得以在越來越多的場(chǎng)景下發(fā)揮作用,F(xiàn)在,由Apache Kylin核心團(tuán)隊(duì)撰寫的本書即將出版,相信能更好地將相關(guān)的理論、設(shè)計(jì)、技術(shù)、架構(gòu)等展現(xiàn)給各位朋友,希望能夠讓更多的朋友更加充分地理解Kylin的優(yōu)勢(shì)和適用的場(chǎng)景,更多地挖掘出Kylin的潛力。同時(shí)希望本書能夠鼓勵(lì)并吸引更多的人參與到Kylin項(xiàng)目和開源項(xiàng)目中,能夠影響更多的人貢獻(xiàn)更多的項(xiàng)目和技術(shù)到開源世界中。
此次《Apache Kylin 權(quán)威指南》的再版工作,得到了Kyligence研發(fā)團(tuán)隊(duì)的大力支持,他們紛紛自愿參與,本書大部分內(nèi)容的寫作是利用節(jié)假日和休息時(shí)間完成的,每位參與者都將自己在工作中獲得的最佳實(shí)踐經(jīng)驗(yàn)總結(jié)到了這本書中,他們分別是:史少鋒、陳志雄、馮禮、翟娜、湯雪、趙勇杰、周浥塵、龍超、宗正、孫宇婕、周丁倩、李森輝等。在此對(duì)他們表示誠(chéng)摯的感謝!
韓卿
Apache Kylin聯(lián)合創(chuàng)建者及項(xiàng)目委員會(huì)主席
2019年5月
推薦序
前 言
第1章 Apache Kylin概述1
1.1 背景和歷史1
1.2 Apache Kylin的使命3
1.2.1 為什么要使用Apache Kylin3
1.2.2 Apache Kylin怎樣解決關(guān)鍵問題4
1.3 Apache Kylin的工作原理5
1.3.1 維度和度量簡(jiǎn)介5
1.3.2 Cube和Cuboid6
1.3.3 工作原理7
1.4 Apache Kylin的技術(shù)架構(gòu)7
1.5 Apache Kylin的主要特點(diǎn)9
1.5.1 標(biāo)準(zhǔn)SQL接口9
1.5.2 支持超大數(shù)據(jù)集10
1.5.3 亞秒級(jí)響應(yīng)10
1.5.4 可伸縮性和高吞吐率10
1.5.5 BI及可視化工具集成11
1.6 與其他開源產(chǎn)品的比較11
1.7 小結(jié)13
第2章 快速入門 14
2.1 核心概念 14
2.1.1 數(shù)據(jù)倉(cāng)庫(kù)、OLAP與BI14
2.1.2 維度建模15
2.1.3 事實(shí)表和維度表16
2.1.4 維度和度量16
2.1.5 Cube、Cuboid和Cube Segment16
2.2 在Hive中準(zhǔn)備數(shù)據(jù) 17
2.2.1 多維數(shù)據(jù)模型17
2.2.2 維度表的設(shè)計(jì) 17
2.2.3 Hive表分區(qū) 18
2.2.4 了解維度的基數(shù) 18
2.2.5 樣例數(shù)據(jù)18
2.3 安裝和啟動(dòng)Apache Kylin19
2.3.1 環(huán)境準(zhǔn)備19
2.3.2 必要組件19
2.3.3 啟動(dòng)Apache Kylin19
2.4 設(shè)計(jì)Cube 19
2.4.1 導(dǎo)入Hive表定義19
2.4.2 創(chuàng)建數(shù)據(jù)模型21
2.4.3 創(chuàng)建Cube23
2.5 構(gòu)建Cube 32
2.5.1 全量構(gòu)建和增量構(gòu)建34
2.5.2 歷史數(shù)據(jù)刷新35
2.5.3 合并36
2.6 查詢Cube 38
2.6.1 Apache Kylin查詢介紹38
2.6.2 查詢下壓40
2.7 SQL參考 41
2.8 小結(jié)41
第3章 Cube優(yōu)化42
3.1 Cuboid剪枝優(yōu)化42
3.1.1 維度的組合42
3.1.2 檢查Cuboid數(shù)量43
3.1.3 檢查Cube大小45
3.1.4 空間與時(shí)間的平衡46
3.2 剪枝優(yōu)化工具47
3.2.1 使用衍生維度47
3.2.2 聚合組49
3.2.3 必需維度51
3.2.4 層級(jí)維度51
3.2.5 聯(lián)合維度52
3.3 并發(fā)粒度優(yōu)化54
3.4 Rowkey優(yōu)化55
3.4.1 調(diào)整Rowkey順序55
3.4.2 選擇合適的維度編碼56
3.4.3 按維度分片57
3.5 Top_N度量?jī)?yōu)化58
3.6 Cube Planner優(yōu)化61
3.7 其他優(yōu)化62
3.7.1 降低度量精度62
3.7.2 及時(shí)清理無用Segment63
3.8 小結(jié)63
第4章 增量構(gòu)建64
4.1 為什么要增量構(gòu)建64
4.2 設(shè)計(jì)增量Cube66
4.2.1 設(shè)計(jì)增量Cube的條件66
4.2.2 增量Cube的創(chuàng)建67
4.3 觸發(fā)增量構(gòu)建69
4.3.1 Web GUI觸發(fā)69
4.3.2 構(gòu)建相關(guān)的REST API70
4.4 管理Cube碎片76
4.4.1 合并Segment76
4.4.2 自動(dòng)合并77
4.4.3 保留Segment79
4.4.4 數(shù)據(jù)持續(xù)更新79
4.5 小結(jié)80
第5章 查詢和可視化81
5.1 Web GUI81
5.1.1 查詢81
5.1.2 顯示結(jié)果82
5.2 REST API84
5.2.1 查詢認(rèn)證85
5.2.2 查詢請(qǐng)求參數(shù)85
5.2.3 查詢返回結(jié)果86
5.3 ODBC87
5.4 JDBC90
5.4.1 獲得驅(qū)動(dòng)包90
5.4.2 認(rèn)證90
5.4.3 URL格式90
5.4.4 獲取元數(shù)據(jù)信息91
5.5 Tableau集成91
5.5.1 連接Kylin數(shù)據(jù)源92
5.5.2 設(shè)計(jì)數(shù)據(jù)模型93
5.5.3 “Live”連接93
5.5.4 自定義SQL94
5.5.5 可視化展現(xiàn)94
5.5.6 發(fā)布到Tableau Server95
5.6 Zeppelin集成95
5.6.1 Zeppelin架構(gòu)簡(jiǎn)介95
5.6.2 KylinInterpreter的工作原理96
5.6.3 如何使用Zeppelin訪問Kylin96
5.7 Superset 集成98
5.7.1 下載Kylinpy98
5.7.2 安裝Superset99
5.7.3 在Superset中添加Kylin Database100
5.7.4 在Superset中添加Kylin Table100
5.7.5 在Superset中創(chuàng)建圖表103
5.7.6 在Superset中通過SQL Lab探索Kylin105
5.8 QlikView 集成106
5.8.1 連接Kylin數(shù)據(jù)源106
5.8.2 “Direct Query”連接107
5.8.3 創(chuàng)建可視化109
5.8.4 發(fā)布到QlikView Server110
5.9 Qlik Sense集成110
5.9.1 連接Kylin數(shù)據(jù)源110
5.9.2 “Direct Query”連接112
5.9.3 創(chuàng)建可視化114
5.9.4 發(fā)布到Qlik Sense Hub115
5.9.5 在Qlik Sense Hub中連接Kylin數(shù)據(jù)源117
5.10 Redash集成118
5.10.1 連接Kylin數(shù)據(jù)源118
5.10.2 新建查詢119
5.10.3 新建儀表盤121
5.11 MicroStrategy 集成122
5.11.1 創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例123
5.11.2 導(dǎo)入邏輯表124
5.11.3 創(chuàng)建屬性、事實(shí)和度量124
5.11.4 創(chuàng)建報(bào)告124
5.11.5 MicroStrategy連接Kylin最佳實(shí)踐126
5.12 小結(jié)127
第6章 Cube Planner及儀表盤128
6.1 Cube Planner128
6.1.1 為什么要引入Cube Planner128
6.1.2 Cube Planner 算法介紹129
6.1.3 使用Cube Planner131
6.2 System Cube134
6.2.1 開啟System Cube134
6.2.2 構(gòu)建和更新System Cube135
6.3 儀表盤135
6.4 小結(jié)137
第7章 流式構(gòu)建138
7.1 為什么要進(jìn)行流式構(gòu)建139
7.2 準(zhǔn)備流式數(shù)據(jù)139
7.2.1 數(shù)據(jù)格式139
7.2.2 消息隊(duì)列140
7.2.3 創(chuàng)建Schema141
7.3 設(shè)計(jì)流式Cube144
7.3.1 創(chuàng)建Model144
7.3.2 創(chuàng)建Cube145
7.4 流式構(gòu)建原理147
7.5 觸發(fā)流式構(gòu)建150
7.5.1 單次觸發(fā)構(gòu)建151
7.5.2 自動(dòng)化多次觸發(fā)152
7.5.3 初始化構(gòu)建起點(diǎn)152
7.5.4 其他操作153
7.5.5 出錯(cuò)處理153
7.6 小結(jié)154
第8章 使用Spark155
8.1 為什么要引入Apache Spark155
8.2 Spark構(gòu)建原理156
8.3 使用Spark構(gòu)建Cube158
8.3.1 配置Spark引擎1