✤ 寫作背景
作為曾經的傳統關聯式資料庫從業者,我們不僅需要了解資料庫本身,還需要了解執行資料庫的主機,儲存資料庫資料的倉庫,讀取資料庫資料的中介軟體以及應用本身的特點。隨著硬體的發展以及資料處理的細化,資料庫技術從傳統的以磁碟為基礎的關聯式資料庫,向記憶體中資料庫、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 不能稱之為「資料庫」,也不能簡單地稱之為「應用」,而是介於資料庫和應用之間的一種既能用於儲存和處理資料,又能處理應用業務邏輯的混合體,我們通常稱之為「資料平台」。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 對本書的認可。感謝我的好兄弟閆猛、付樂慶對我一直以來的鼓勵;感謝我曾經服務過的客戶們對我的信任;感謝我的家人和朋友們,你們是我不斷努力的源動力。