看到專為華人讀者發佈的這一本中文版Impala書籍,我非常欣喜,這無疑對華人使用者更進一步地使用Hadoop,解決他們的業務問題有很大幫助。因此,我要感謝所有為發佈本書做出貢獻的人們。~~ Cloudera 副總裁 苗凱翔 博士
第一本全面說明Impala 的中文書, 既可以作為想快速架設以Hadoop為基礎的資料倉儲的原資料庫同好們的優秀參考書,又可以成為對Spark 有興趣的使用者的架構了解入門書籍。~~ EasyHadoop社區創始人,eXadoop公司創始人 向磊
這是我看到的第一本說明Impala技術和應用最系統化的中文書籍。不要沉浸於討論多大規模的資料才是「大數據」,本書將帶領讀者快速地掌握這個技術,開啟大數據時代的窗戶。~~中國中信證券 莊偉波
作者簡介:
賈傳青
資料架構師,Oracle OCM,DB2 移轉之星,TechTarget特約作家,從資料庫向大數據轉型的先行者。曾服務於中國聯通、中國電信、建設銀行、PICC等,目前任職一家大數據解決方案提供商,致力於使用大數據技術解決傳統資料庫無法解決的問題。
作者序
✤ 寫作背景
作為曾經的傳統關聯式資料庫從業者,我們不僅需要了解資料庫本身,還需要了解執行資料庫的主機,儲存資料庫資料的倉庫,讀取資料庫資料的中介軟體以及應用本身的特點。隨著硬體的發展以及資料處理的細化,資料庫技術從傳統的以磁碟為基礎的關聯式資料庫,向記憶體中資料庫、MPP 資料庫不同的方向演進,資料庫產品也從全面、完整向單一RDBMS、短小精悍的方向發展。在架構時,我們必須根據應用的特點選擇合適的資料庫產品。
自2009 年開始,筆者開始嘗試使用以Hadoop 為基礎的技術來解決傳統資料庫無法線性擴充的問題。Hadoop 不能稱之為「資料庫」,也不能簡單地稱之為「應用」,而是介於資料庫和應用之間的一種既能用於儲存和處理資料,又能處理應用業務邏輯的混合體,我們通常稱之為「資料平台」。Hadoop 雖在本質上解決了磁碟IO 的擴充問題,但同時由於其以磁碟為基礎(自Hadoop2.3 起支援快取特性),因此對於某些即時性要求更高的工作無能為力,Impala及其他以記憶體為基礎的運算技術應運而生。
Impala 的儲存以HDFS,運算表為基礎的統計資訊產生執行計畫,具備資源管理功能,是最像傳統資料庫的大數據技術。筆者著手寫作本書時Impala的最新版本為1.3.1,而目前已演進至2.1 版本,在SQL 語法、安裝、擴充性及效能方面進一步增強。
✤ 主要內容
工欲善其事,必先利其器,第1 章一步步地為大家介紹如何離線架設一個Impala 環境。有了一個環境之後,我們可以暫時不考慮細節,先嘗嘗鮮使用一下它。第2 章介紹如何在Impala 上進行簡單的資料載入、建表、查詢等操作。作為Impala 的管理者,僅能夠簡單使用它是遠遠不夠的。第3 章系統地介紹Impala 的架構系統及各元件的作用。第4 章是為Impala 的使用者量身定做的,花費比較大的篇幅介紹了Impala SQL、函數、UDF 等。任何一款資料庫都會提供一個命令列工具,方便在沒有圖形介面的情況下,或在Shell 中進行呼叫,Impala 也不例外,第5 章介紹Impala 的命令列工具Impala-shell。那如何有效地避免硬體資源的超載使用呢?當然是透過資源管理,第6 章將詳細介紹Impala 的資源管理機制,另外也可以將Impala 使用YARN 來進行管理。第7 章詳細介紹了Impala 底層支援的檔案類型,涵蓋了Hadoop 主流的檔案類型。第8 章介紹了Impala 的分區機制。第9 章介紹了Impala 效能最佳化的指導原則,以及最佳化過程中使用到的各項技術。第10 章介紹了在企業應用中使用Impala 時的設計原則及應用案例。
✤ 適合讀者群
•記憶體計算技術初學者
•資料庫管理員及資料庫開發人員
•Hadoop及記憶體計算的運行維護工程師
•開放原始碼軟體同好
•對大數據技術有興趣者
✤ 致謝
在此感謝Cloudera 的苗凱翔博士、Deborah Wiltshire、Yale Wang 對本書的認可。感謝我的好兄弟閆猛、付樂慶對我一直以來的鼓勵;感謝我曾經服務過的客戶們對我的信任;感謝我的家人和朋友們,你們是我不斷努力的源動力。
✤ 寫作背景
作為曾經的傳統關聯式資料庫從業者,我們不僅需要了解資料庫本身,還需要了解執行資料庫的主機,儲存資料庫資料的倉庫,讀取資料庫資料的中介軟體以及應用本身的特點。隨著硬體的發展以及資料處理的細化,資料庫技術從傳統的以磁碟為基礎的關聯式資料庫,向記憶體中資料庫、MPP 資料庫不同的方向演進,資料庫產品也從全面、完整向單一RDBMS、短小精悍的方向發展。在架構時,我們必須根據應用的特點選擇合適的資料庫產品。
自2009 年開始,筆者開始嘗試使用以Hadoop 為基礎的技術來解決傳統資料庫無法線性擴充的問題。Hadoop ...
目錄
Chapter 01 Impala 概述、安裝與設定
1.1 Impala 概述
1.2 Cloudera Manager 安裝準備
1.3 CM 及CDH 安裝
1.4 Hive 安裝
1.5 Impala 安裝
Chapter 02 Impala 入門範例
2.1 資料載入
2.2 資料查詢
2.3 分區表
2.4 外部分區表
2.5 笛卡爾連接
2.6 更新中繼資料
Chapter 03 Impala 概念及架構
3.1 Impala 伺服器元件
3.2 Impala 應用程式設計
3.3 與Hadoop 生態系統整合
Chapter 04 SQL 敘述
4.1 註釋
4.2 資料類型
4.3 常數
4.4 SQL 運算符號
4.5 模式物件和物件名稱
4.6 SQL 敘述
4.7 內嵌函數
4.8 聚集函數
4.9 使用者自訂函數UDF
4.10 Impala SQL &Hive QL
4.11 將SQL 移植到Impala 上
Chapter 05 Impala shell
5.1 命令列選項
5.2 連接到Impalad
5.3 執行指令
5.4 指令參考
5.5 查詢參數設定
Chapter 06 Impala 管理
6.1 存取控制和查詢佇列
6.2 使用YARN 資源管理(CDH5)
6.3 為處理程序,查詢,階段設定逾時限制
6.4 透過代理實現Impala 高可用性
6.5 管理磁碟空間
Chapter 07 Impala 儲存
7.1 檔案格式選擇
7.2 Text
7.3 Parquet
7.4 Avro
7.5 RCFile
7.6 SequenceFile
7.7 HBase
Chapter 08 Impala 分區
8.1 分區技術適用場合
8.2 分區表相關SQL 敘述
8.3 分區修剪
8.4 分區鍵列
8.5 使用不同的檔案格式
Chapter 09 Impala 效能最佳化
9.1 最佳做法
9.2 連接查詢最佳化
9.3 使用統計資訊
9.4 基準測試
9.5 控制資源使用
9.6 效能測試
9.7 使用EXPLAIN 資訊
9.8 使用PROFILE 資訊
Chapter 10 Impala 設計原則與應用案例
10.1 設計原則
10.2 應用案例
Chapter 01 Impala 概述、安裝與設定
1.1 Impala 概述
1.2 Cloudera Manager 安裝準備
1.3 CM 及CDH 安裝
1.4 Hive 安裝
1.5 Impala 安裝
Chapter 02 Impala 入門範例
2.1 資料載入
2.2 資料查詢
2.3 分區表
2.4 外部分區表
2.5 笛卡爾連接
2.6 更新中繼資料
Chapter 03 Impala 概念及架構
3.1 Impala 伺服器元件
3.2 Impala 應用程式設計
3.3 與Hadoop 生態系統整合
Chapter 04 SQL 敘述
4.1 註釋
4.2 資料類型
4.3 常數
4.4 SQL 運算符號
4.5 模式物件和物件名稱
4.6 SQL 敘述
4.7 內嵌函數
4.8 聚集函...