- ClickHouse性能之巔:從架構設計解讀性能之謎
- 陳峰
- 1071字
- 2023-02-23 16:29:13
Foreword序1
陳峰是我主講的“程序設計基礎”課程的學生。2021年12月,他在電話中告訴我要寫一本關于ClickHouse的技術書。當時我既替他高興,又有些許擔心。高興的是我作為陳峰的老師和朋友,從心底里希望他在參加工作后能夠堅持好的學習習慣,孜孜不倦;擔心的是他能否從理論、技術、方法等諸多方面駕馭這樣一本技術書。
閱讀本書的樣章之后,我的擔心消失了,縈繞在心頭的是喜悅。本書不僅對ClickHouse技術進行了全面陳述,還圍繞數倉的邏輯架構、底層物理實現、應用場景等分析了ClickHouse的性能優勢和問題,為ClickHouse數倉產品的設計者、開發者和使用者揭下技術名詞的偽裝,幫助他們撥開技術迷霧并認清ClickHouse的能力范疇。
我一直希望從軟件架構的角度去介紹程序設計的基本概念,這是我從學生時代學習程序設計時總結的經驗。我始終認為,構筑一個大型軟件程序的最大難點在于理解程序軟件架構運行機理,從而控制程序設計的復雜性。如果不理解程序的邏輯架構、底層物理實現,就無法在軟件技術這條路上走很遠。
這樣的教學執念來源于我的母親,在我的記憶里,她在教“金屬材料”這門課程時,會用一些塑料球和塑料棒代表原子和原子間的化學鍵,將它們構成金屬微觀粒子結構來說明各種金屬材料的特性。這種模型讓我記憶深刻,在計算機界,相比于數學符號,我更喜歡直觀的模型表達。當模型盤旋于你的腦海中時,你可以很快搭建屬于自己的程序世界。在這本書里,我看到陳峰也是通過構建一個直觀的模型來講解ClickHouse。這樣的內容讀起來輕松,并且非常容易理解。
陳峰在校期間參與了我所主導的大部分項目,這些項目有純工程性的,也有技術探索性的,他在這些項目中表現出了超出一般學生的控制大型復雜軟件系統的能力。那時的陳峰顯然是學生中的技術領頭人,我的一些想法總能被他以技術的方式有效落地。陳峰一直保持著對技術驚人的熱愛,工作多年仍然不知倦怠。正是因為對他的了解,使我在看到這本書的時候,能夠體會到他為本書付出的心血。
我認為本書的出版是很有意義的,它不僅為像陳峰這樣年輕的技術工作者提供了一個表達的機會,也為廣大的工程師能夠快速獲取ClickHouse的使用經驗,提高創新效率,提供了寶貴的資料。我聽說,本書的策劃編輯楊福川在知乎上看到了陳峰發表的有關ClickHouse的技術帖,于是邀約陳峰撰寫了本書。在此,我要特別感謝楊福川先生,是他讓這本書破“土”而出。
希望這本書能夠鼓勵更多的年輕人投身于為祖國解決“卡脖子”技術問題的系統軟件開發中。事實證明,即使拿到了像ClickHouse這樣的開源代碼,如果沒有深入探索這類系統軟件開發的精神,那么解決問題仍然任重而道遠。
祝賀陳峰圓滿完成寫作。相信本書能夠得到讀者的認可。
胡昊
南京大學計算機科學與技術系副教授
- 前端跨界開發指南:JavaScript工具庫原理解析與實戰
- Learning Data Mining with Python
- Machine Learning with R Cookbook(Second Edition)
- Learn React with TypeScript 3
- 用戶體驗增長:數字化·智能化·綠色化
- C#程序設計教程(第3版)
- D3.js By Example
- 移動增值應用開發技術導論
- Nagios Core Administration Cookbook(Second Edition)
- 代碼閱讀
- jQuery for Designers Beginner's Guide Second Edition
- Hacking Android
- 多媒體技術及應用
- Docker:容器與容器云(第2版)
- Java多線程并發體系實戰(微課視頻版)