- 大數據SQL優化:原理與實踐
- 陳鶴 楊國棟
- 1509字
- 2025-02-10 16:29:09
前言 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社區的大力支持,包括張博、李奇峰、賴志明、朱勝濤、徐振超,以及名單之外的更多朋友,沒有他們就沒有本書。本書的內容源于社區成員在日常工作中遇到的問題或困惑,筆者認為本書也應該回歸社區為眾人服務。開源精神中最重要的就是參與和分享,能夠堅持寫下自己的所見所聞,與他人共享,是一件快事。
感謝每一位讀者,讓我們一起進步,你們將是本書繼續完善的新動力。
陳鶴
于深圳
- Building Computer Vision Projects with OpenCV 4 and C++
- 數據產品經理高效學習手冊:產品設計、技術常識與機器學習
- 云計算環境下的信息資源集成與服務
- 企業大數據系統構建實戰:技術、架構、實施與應用
- 大數據算法
- 數據庫系統原理及應用教程(第4版)
- iOS and OS X Network Programming Cookbook
- 大數據:從概念到運營
- 數亦有道:Python數據科學指南
- 金融商業算法建模:基于Python和SAS
- 云原生數據中臺:架構、方法論與實踐
- Python數據分析與挖掘實戰(第3版)
- 重復數據刪除技術:面向大數據管理的縮減技術
- 數據應用工程:方法論與實踐
- 碼上行動:利用Python與ChatGPT高效搞定Excel數據分析