官术网_书友最值得收藏!

前言 Preface

為什么寫這本書

結構化查詢語言(Structured Query Language,SQL)是一種目的特殊的數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系型數據庫系統。

自從Edgar Frank Codd于1970年發表了文章“Relational Model of Data Large Shared Data Banks”(大型共享數據庫的關系數據模型)后,關系代數模型成為數據庫領域的主流模型,他使用“關系”的數學概念來彌補當前數據庫模型的諸多不足。1974年,Boyce和Chamberlin提出了一種介于關系代數與關系演算之間的結構化查詢語言(SQL),至此關系型數據庫理論與查詢方式都有了完整的定義。1981年Codd因在關系型數據庫方面的突出貢獻獲得了圖靈獎。

數據已經成為各行各業的核心資產。為了更好地存儲和管理數據,關系模型和關系型數據庫應運而生。隨著數字化程度不斷提高,數據量發生指數級增長,傳統的數據庫系統不再能夠支撐海量數據的存儲與計算。傳統的關系型數據庫更加適合進行聯機事務處理(On-Line Transaction Processing,OLTP),對數據的處理方式是以增、刪、改為主,并支持較為簡單的數據查詢。在聯機分析處理(On-Line Analytical Processing,OLAP)的業務場景下,傳統的關系型數據庫對數據的處理以查詢操作為主。除了數據的海量增長,傳統數據庫對于OLAP場景的支持不足,也是大數據技術出現的背景之一。

大數據系統有強大的存儲能力,同時也可以保證數據的完整性和安全性。大數據計算技術可以快速檢索、分析和可視化數據,將海量的數據變成高價值的財富。大數據系統能夠高效、快速、準確地對數據進行管理,使數據得到有效的存儲。大數據系統沒有徹底拋棄關系模型,關鍵查詢語言——SQL依然有廣泛應用,SQL領域中的理論與優化方法仍在大數據系統中發揮作用。

數據是數字文明中的要素,大數據系統可以通過對這些數據進行管理以將其轉化為知識資產,而SQL語言則是開啟這份寶庫的鑰匙。無論是關系型數據庫還是大數據系統,SQL都是一把萬能鑰匙。

大數據發展至今已有近20年的歷史,各類思想和框架日新月異、層出不窮。然而,在大數據SQL查詢優化領域,缺少能夠幫助數據開發人員或大數據技術愛好者掌握大數據SQL查詢優化的全貌和精髓的書籍。因此,筆者決心將自己從業多年的經驗及心得匯集于此。

本書的主要內容

本書主要由以下四篇構成。

? 認知篇。闡述大數據計算或存儲引擎發展至今,最終都會選擇SQL作為統一查詢語言的原因及這種選擇的利弊。

? 原理篇。透過現象看本質,以幾個主流的引擎框架為例,通過深入源碼的方式探索SQL執行背后的秘密。

? 實踐篇。詳細描述引擎查詢優化器的兩大優化策略,以及各自的實現原理、示例和局限性。以Hive、Spark、Flink等主流引擎為藍本,探索SQL優化的解決思路和方法論。在實踐中,通過配置參數、調整存儲和改寫查詢語句等方法,從不同的視角對SQL語句進行優化。

? 案例篇。以實踐篇的各種真實需求調優歷程為基礎,以點帶面,以小明大,帶領讀者一同體驗各類公司和行業在不同業務場景中所面臨的問題、重難點以及最終輸出的解決方案。

勘誤及支持

由于筆者的水平和認知有限,書中難免會有筆誤、差錯、格式錯誤或其他問題,希望廣大讀者能夠把發現的錯誤告訴筆者(ccchenhe@gmail.com),筆者將不勝感激。本書有各位讀者的幫助和愛護,相信定能再上一層樓。

致謝

奮筆疾書,廢寢忘食,心中一直牽掛的是父母及妻女,感謝父母給予了筆者生命并養育筆者成人,感謝妻子李雪朝夕相伴給予筆者鼓勵,他們是筆者寫作的動力源泉,也是筆者得以完稿的堅實后盾。

感謝PowerData社區的大力支持,包括張博、李奇峰、賴志明、朱勝濤、徐振超,以及名單之外的更多朋友,沒有他們就沒有本書。本書的內容源于社區成員在日常工作中遇到的問題或困惑,筆者認為本書也應該回歸社區為眾人服務。開源精神中最重要的就是參與和分享,能夠堅持寫下自己的所見所聞,與他人共享,是一件快事。

感謝每一位讀者,讓我們一起進步,你們將是本書繼續完善的新動力。

陳鶴

于深圳

主站蜘蛛池模板: 墨玉县| 四川省| 邛崃市| 新晃| 台湾省| 平安县| 五常市| 林西县| 嘉义县| 南川市| 东莞市| 扶沟县| 综艺| 余庆县| 丰县| 特克斯县| 洛阳市| 抚远县| 调兵山市| 镇坪县| 吉安县| 洛川县| 含山县| 河北省| 郧西县| 出国| 闽侯县| 辰溪县| 长白| 西和县| 绍兴市| 天峨县| 威宁| 民县| 南溪县| 娄烦县| 长海县| 朝阳市| 肥西县| 绥滨县| 江西省|