本書全面介紹Apache Kylin,內容包含:
√環境架設、範例演練、原始程式分析、Cube最佳化⋯⋯等。
√資料倉儲、資料模型、OLAP、資料立方體⋯⋯等方面的相關知識。
√系統性學習與實戰操作,使讀者能夠架設以Apache Kylin為基礎的企業級大數據分析平台。
√熟練使用Apache Kylin多維度分析巨量資料,並透過視覺化工具展現結果。
適用:大數據技術初學者;大數據分析人員、架構師等;亦適合Hadoop、HBase、Hive和Kylin等相關從業人員。
本書特色
√Apache Kylin為第一個由華人團隊完整貢獻至Apache的專案。
√作者為業界知名的Apache Kylin專家,本書為其多年的技術累積與實戰精華。
√內容淺顯易懂、實作性強大,是目前第一本系統性介紹Kylin的實作書籍。
√Apache Kylin為開放原始碼的分散式儲存引擎,提供Hadoop上的SQL查詢介面及多維分析能力以支援大規模資料。
作者簡介:
蔣守壯
現就職於萬達網路科技集團有限公司,資深大數據工程師,大數據實踐者。曾任平安科技資深大數據分析師和架構師,CSDN社區專家,知識庫特約編輯。目前專注於Docker、Kubernetes、Mesos、Hadoop、Spark以及Kylin等技術領域。
推薦序
Apache Kylin將傳統的資料倉儲及商務智慧分析能力帶入到大數據時代,作為新興的技術已被廣大使用者所使用。身為創始者,我非常欣喜能看到關於Apache Kylin相關書籍的出版,這無疑對使用者更進一步地使用Kylin,解決實際大數據分析架構及業務問題有很大的幫助。
韓卿
Kyligence聯合創始人兼CEO
Apache Kylin專案管理委員會主席(PMC Chair)
伴隨著大數據發展的三大主軸為大數據技術、大數據思維和大數據實作。
因為RDBMS很難處理單表10億行資料,所以大數據技術應需而生。大數據技術從最初解決巨量資料的快速儲存和讀取,到現今巨量資料的OLAP,當中衍生出許多的技術產品,Apache Kylin就是其中的優秀產品,目標是解決大數據範圍中的OLAP。
第二大主軸為大數據思維。資料處理的最近幾十年都被RDBMS的思想所束縛,小表、多表、表的連接、過分注重容錯性的壞處,等等,這些都限制了巨量資料上的處理與分析。大數據技術出來之後,隨之而來的大數據想法,所帶來了巨量資料處理的新思維。這個新思維的核心就是突破表的概念,而採用物件導向的資料模型在資料層上實現。Apache Kylin的Cube模型就是在逐步表現大數據的思維。
最後一條主軸為大數據實作。大數據實作分為資料整理、資料建模、資料獲取、資料控管、資料服務、資料視覺化和資料分析。這是環環相扣的步驟,不能跳過。Apache Kylin作為資料分析環節的技術產品,一定要與資料管理的優秀產品相結合,才能充分發揮出分析的功效。
蔣守壯是業界知名的Apache Kylin專家。本書淺顯容易、實作性強,是目前Apache Kylin界不可多得的技術資料,值得細讀和研究。
楊正洪
武漢市雲升科技發展有限公司董事長
Apache Kylin是一個大數據領域真正進入全球主流應用的開放原始碼專案。作為軟體開發的驕傲之作,市面上卻缺少一本系統性介紹該專案的書籍。
萬達科技集團大數據中心蔣守壯同學在專案誕生之初就一直追蹤Kylin的進展,深入研究專案的技術原理,並將其運用在許多實際專案中。無論您是大數據技術同好,抑或您正在考慮引用Kylin這樣傑出的大數據處理工具,本書都將是您很好的參考指南!
龔少成
萬達網路科技集團大數據中心副總經理
《Spark進階資料分析》中文版譯者
Apache Kylin是以MOLAP為基礎的即時大數據引擎,與Hadoop生態系統結合更加緊密,先天的優勢註定了其支援更大的資料規模、更好的擴充性,獨有的華人中文血統較其他開放原始碼軟體更具當地語系化優勢。本書包含了守壯多年的實作經驗,系統化全面性介紹了Apache Kylin技術,值得推薦。
賈傳青
資料架構師,IT脫口秀(清風那個吹)創始人
Apache Kylin是以大數據技術為基礎的一種OLAP實現,其根據OLAP原理、利用MapReduce架構建置CUBE,並將預計算結果儲存在HBase中,實現多維分析和查詢的秒級回應。Apache Kylin雖屬於MOLAP範圍,但還是有別於傳統的MOLAP,它充分利用了Hadoop分散式運算的精髓,是分散式OLAP(DOLAP:Distributed OLAP)的實作方式,在TB、PB級資料集上體現出卓越的效能表現,自開放原始碼以來就備受各界關注。
作為一位技術達人,蔣守壯依靠自身深厚的技術功力,結合實際工作對Kylin做了許多研究工作。從各種部署環境的架設、實際工作案例開發測試到各種問題的分析及解決,作者深入分析了Kylin的原始程式碼,也給Kylin社區回饋了很多缺失,被Kylin社區確認並在新的版本中加以增強。本書即是蔣守壯對自己研究工作的歸納和昇華,是目前第一本系統介紹Kylin的實用書籍。
項同德
平安科技(深圳)有限公司高級經理
目前在企業級市場上主流的BI產品有Oracle的BIEE、IBM的Cognos、SAP的BO等,這些產品主要是以傳統為基礎的關係型資料進行報表開發和資料分析,雖然可以透過加強伺服器效能來提升資料處理的能力,但受限於其本身的架構,在處理大數據(TB級及以上)上就顯得緩慢,而Kylin是一款專為大數據而生的開放原始碼產品。相對於傳統大廠商主導的BI產品,Kylin是一個開放原始碼的分散式分析引擎,提供Hadoop之上的SQL查詢介面及多維分析(OLAP)能力以支援超大規模資料,其最初由eBay公司開發並貢獻至開放原始碼社區,它能在微秒內查詢極大的Hive表,並且在不斷地增強和進化。
Kylin作為Apache頂級專案,在社區備受推崇,但一直缺少一本實用、可操作的技術書籍讓普通的開發人員將其部署實施,應用於企業的發展,產生經濟價值。蔣守壯的這本書系統而全面地介紹了Kylin的架構、架設及應用,能讓有一定技術功力的人員,快速實施部署,對於目前苦於大數據處理的人員來講,無疑是久旱逢甘霖。
蔣守壯一直專注於大數據的研究和應用,技術出色,尤其是擅長解決各種疑難問題。這本書融合了作者多年的技術累積和實戰經驗,相信對您,無論是學習還是實戰都大有益處。
萬文兵
萬達網路科技集團有限公司大數據資深專案經理
Apache Kylin將傳統的資料倉儲及商務智慧分析能力帶入到大數據時代,作為新興的技術已被廣大使用者所使用。身為創始者,我非常欣喜能看到關於Apache Kylin相關書籍的出版,這無疑對使用者更進一步地使用Kylin,解決實際大數據分析架構及業務問題有很大的幫助。
韓卿
Kyligence聯合創始人兼CEO
Apache Kylin專案管理委員會主席(PMC Chair)
伴隨著大數據發展的三大主軸為大數據技術、大數據思維和大數據實作。
因為RDBMS很難處理單表10億行資料,所以大數據技術應需而生。大數據技術從最初解決巨量資料的快速儲存和讀取,到現今巨量資料...
作者序
前言
自2011年下半年開始,筆者就持續關注Apache開放原始碼社區,重點放在大數據方面的成熟架構和產品。在這期間,陸續研究過Hadoop、Hive、HBase、Mahout、Kafka、Flume、Storm,以及近兩年很熱門的Spark和Flink等,和很多從事大數據的朋友一樣,經歷過無數的夜晚,對著電腦螢幕逐行研究這些原始程式碼,同時也看到無數的開放原始碼同好和技術專家加入Hadoop開放原始碼社區,貢獻自己的力量,日復一日,樂此不疲。
談起大數據,不得不提Hadoop,如今其早已發展成為了大數據處理的事實標準。Hadoop誕生於2005年,其受到Google兩篇論文(GFS和MapReduce)的啟發。起初,Hadoop只是用來支撐Nutch搜尋引擎的專案,從2006年開始,Hadoop脫離Nutch,成為Apache的頂級專案,無論是在學術界還是工業界都獲得快速的發展。
Hadoop十多歲了,這十年期間圍繞其核心元件(HDFS、MapReduce、Yarn)陸續出現了一批工具,用來豐富Hadoop生態圈,解決大數據各方面的問題,這其中就包含Apache Kylin。
Apache Kylin(麒麟)是由eBay 研發並貢獻給開放原始碼社區的Hadoop上分散式大規模連線分析(OLAP)平台,它提供Hadoop之上的SQL查詢介面及多維分析能力以支援大規模資料,能夠處理TB乃至PB等級的分析工作,能夠在微秒級查詢極大的Hive表,並支援高平行處理。Apache Kylin於2014年10月開放原始碼,並於當年11月成為Apache孵化器專案,是eBay第一個貢獻給Apache軟體基金會的專案,也是第一個由華人團隊完整貢獻到Apache的專案,在這裡對Apache Kylin的團隊表示感謝,感謝貢獻如此出色的大數據分析平台。
從去年開始接觸Apache Kylin,感覺很親切,也很驚喜。目前研究的版本為071,也就是Kylin加入Apache孵化器專案後的第一個Apache發行版本,雖然當時的Kylin存在一些問題,但是其以Hadoop設計為基礎的架構還是深具創意和特色。經過一年多的發展,截至目前,Apache Kylin的版本已經發展到153,並且從15版本開始,Apache Kylin進行了重建,支援可擴充架構,支援更多的資料來源、建置引擎和儲存引擎,建置演算法不斷最佳化,支援與更多的視覺化工具整合等。
如今,Apache Kylin已被應用在eBay、Exponential、京東、美團、明略數據、網易及其他公司。越來越多的大數據團隊開始選擇Apache Kylin作為公司大數據分析平台的組成部分,滿足其巨量資料的多維指標即時查詢分析。透過很多社區的交流分享,筆者發現不少朋友對Apache Kylin沒有一個整體的認識,在使用過程中出現各種各樣的問題,打擊自信心,他們急切希望能有一本全面介紹Apache Kylin的書籍。因為筆者經常在部落格和社區分享Apache Kylin實戰方面的經驗,所以很多朋友鼓勵筆者能夠寫一本比較全面介紹Apache Kylin的書籍,幫助更多的同好更進一步地加入Apache Kylin的社區,並在生產環境中進行實作。剛開始比較猶豫,畢竟寫書需要花費大量的時間和精力,而且要對讀者負責,容不得半點馬虎。後來經過社區朋友打電話勸說,以及清華大學出版社的夏毓彥編輯一再鼓勵,還有家人的支援,筆者下定決心寫這本書,目的只有一個,就是希望讀者能夠透過這本書,對Apache Kylin有一個完整的認識,掌握各方面的技能,並最後應用在自己公司的生產環境中。
本書內容
這是一本全面介紹Apache Kylin的書籍,包含環境架設、案例實戰示範、原始程式分析、Cube最佳化等,此外還會有關資料倉儲、資料模型、OLAP、資料立方體等方面的知識。透過本書系統性學習和實戰操作,朋友們將能夠達到以Apache Kylin為基礎架設企業級大數據分析平台,並熟練掌握使用Apache Kylin多維度地分析巨量資料,最後透過視覺化工具展示結果。
適用讀者
本書適合從事Hadoop、HBase、Hive和Kylin等方面工作的人員參考閱讀,最好能掌握一點OLAP、資料立方體等資料倉儲方面的知識。但相信這本書也適合任何想從事大數據方面工作的程式設計師和架構師。
程式標準和下載
本書中會有關大量的Linux Shell指令,這些指令都是在CentOS作業系統上執行成功的,對於其他的一些Linux系統也同樣適用,如有不適用的,可以查閱資料,修改指令以符合對應的作業系統。
要下載本書章節中的範例程式,請到http://githubcom/jiangshouzhuang下載。
繁體中文版說明
Apache Kylin為中國大陸開發之大數據系統,為維持全書之完整性,本書圖說及程式碼均維持簡體中文,請讀者參閱繁體中文內文閱讀。
讀者服務
由於筆者的寫作功力有限,可能有部分章節內容思慮尚欠周全,或版本升級導致某些章節部分內容不是最新的。為了更進一步地為讀者服務,筆者特地建立一個QQ群:118152802,有關本書的任何問題,都會及時提供讀者們答覆,感謝支持。
致謝
本書的問世,獲得了很多朋友的鼎力相助,在這裡感謝所有幫助我完成這本書的人。
感謝公司的同事們,特別感謝項同德和萬文兵兩位專案經理給予的支援和鼓勵,感謝施健健給予的技術支援和幫助。
感謝CSDN和cnblogs部落格中優秀的文章給予的技術支援。
感謝清華大學出版社所有為本書的出版和發行付出辛勤工作的人們。
最後,我要感謝我的家人,給予我的不懈支持。感謝父母幫我們照顧調皮搗蛋的寶寶;感謝妻子一如既往地照顧我的生活,給予我充足的時間用來寫作。沒有家人的支持和照顧,我是不可能完成這本書。
作者
前言
自2011年下半年開始,筆者就持續關注Apache開放原始碼社區,重點放在大數據方面的成熟架構和產品。在這期間,陸續研究過Hadoop、Hive、HBase、Mahout、Kafka、Flume、Storm,以及近兩年很熱門的Spark和Flink等,和很多從事大數據的朋友一樣,經歷過無數的夜晚,對著電腦螢幕逐行研究這些原始程式碼,同時也看到無數的開放原始碼同好和技術專家加入Hadoop開放原始碼社區,貢獻自己的力量,日復一日,樂此不疲。
談起大數據,不得不提Hadoop,如今其早已發展成為了大數據處理的事實標準。Hadoop誕生於2005年,其受到Google兩篇論文(...
目錄
第一部分 Apache Kylin基礎部分
Chapter 01 Apache Kylin前世今生
1.1 Apache Kylin的背景
1.2 Apache Kylin的應用場景
1.3 Apache Kylin的發展歷程
Chapter 02 Apache Kylin前奏
2.1 事實表和維表
2.2 星型模型和雪花型模型
2.3 OLAP
2.4 資料立方體(Data Cube)
Chapter 03 Apache Kylin工作原理和系統架構
3.1 Kylin工作原理
3.2 Kylin系統架構
3.3 Kylin中的核心部分:Cube建構
3.4 Kylin的SQL查詢
3.5 Kylin的特性和生態圈
Chapter 04 架設CDH大數據平台
4.1 系統環境和安裝套件
4.2 準備工作:系統環境架設
4.3 正式安裝CDH:準備工作
4.4 正式安裝CDH5:安裝設定
Chapter 05 使用Kylin建構企業大數據分析平台的四種部署方式
5.1 Kylin部署的架構
5.2 Kylin的四種典型部署方式
Chapter 06 單獨為Kylin部署HBase叢集
Chapter 07 部署Kylin叢集環境
7.1 部署Kylin的先決條件
7.2 部署Kylin叢集環境
7.3 為Kylin叢集架設負載平衡器
第二部分 Apache Kylin進階部分
Chapter 08 Demo案例實戰
8.1 Sample Cube案例描述
8.2 Sample Cube案例實戰
Chapter 09 多維分析的Cube建立實戰
9.1 Cube模型
9.2 建立Cube的流程
Chapter 10 Build Cube的來龍去脈
10.1 流程分析
10.2 小結
第三部分 Apache Kylin進階部分
Chapter 11 Cube最佳化
Chapter 12 備份Kylin的Metadata
12.1 Kylin的中繼資料
12.2 備份中繼資料
12.3 恢復中繼資料
Chapter 13 使用Hive視圖
13.1 使用Hive視圖
13.2 使用視圖實戰
Chapter 14 Kylin的垃圾清理
14.1 清理中繼資料
14.2 清理記憶體資料
Chapter 15 JDBC 存取方式
Chapter 16 透過RESTful存取Kylin
Chapter 17 Kylin版本之間升級
17.1 從1.5.2升級到最新版本1.5.3
17.2 從1.5.1升級到1.5.2版本
17.3 從Kylin 1.5.2.1升級到Kylin 1.5.3實戰
17.4 補充內容
Chapter 18 大數據視覺化實作
18.1 視覺化工具簡述
18.2 安裝Kylin ODBC驅動
18.3 透過Excel存取Kylin
18.4 透過Power BI存取Kylin
18.5 透過Tableau存取Kylin
18.6 Kylin + Mondrian + Saiku
18.7 實戰演練:透過Saiku存取Kylin
18.8 透過Apache Zepplin存取Kylin
18.9 透過Kylin的"Insight"查詢
Chapter 19 使用Streaming Table建構准即時Cube
Chapter 20 快速資料立方演算法
20.1 快速資料立方演算法概述
20.2 快速資料立方演算法優點和缺點
20.3 取得Fast Cubing演算法的優勢
第四部分 Apache Kylin的擴充部分
Chapter 21 大數據智慧分析平台KAP
21.1 大數據智慧分析平台KAP概述
21.2 KAP的安裝部署
第一部分 Apache Kylin基礎部分
Chapter 01 Apache Kylin前世今生
1.1 Apache Kylin的背景
1.2 Apache Kylin的應用場景
1.3 Apache Kylin的發展歷程
Chapter 02 Apache Kylin前奏
2.1 事實表和維表
2.2 星型模型和雪花型模型
2.3 OLAP
2.4 資料立方體(Data Cube)
Chapter 03 Apache Kylin工作原理和系統架構
3.1 Kylin工作原理
3.2 Kylin系統架構
3.3 Kylin中的核心部分:Cube建構
3.4 Kylin的SQL查詢
3.5 Kylin的特性和生態圈
Chapter 04 架設CDH大數據平台
4.1 系統環境和安裝套件
4.2 準備工作...