專訪唐成:從小工到專家,PostgreSQL的修煉之道
唐成,擁有十幾年數據庫、操作系統、存儲領域的工作經驗。目前任沃趣科技首席數據庫架構師,從事數據庫高可用、高性能以及數據庫云化等方面的研究 工作。歷任阿里巴巴數據庫專家、高級數據庫專家,從事過阿里巴巴的線上Oracle、Greenplum、PostgreSQL數據庫的架構設計和運維工 作,為阿里巴巴的PostgreSQL數據庫的布道者,推動阿里云的關系型數據庫服務(RDS)中提供PostgreSQL數據庫服務,為阿里巴巴 PostgreSQL數據庫方面的技術帶頭人。也曾任網易杭州研究院開發專家,主導了網易云計算中的云硬盤產品(類似amazon有EBS)的設計和開 發。
日前,CSDN采訪了唐成,請他分享數據庫PostgreSQL發展現狀以及未來趨勢,以及從一名小工到專家的修煉之道。
唐 成
CSDN:你是從什么時候開始從事數據庫工作的?有沒有什么故事可以分享給大家?
唐成: 在上大學時到工作的時間中,一直與數據庫打交道。
- 在1995年上大學期間接觸了Foxbase數據庫, Foxbase是一個單機的數據庫,也可以是說是一門解釋型的編程語言,可能現在一些年輕的人已不太知道這個東西了,但較早時期的人都對Foxbase留下了較深的印象,那時候很多信息系統都是用Foxbase完成。
- 1997年正式到電信公司工作,主要做計費工作,那時使用的也是Foxbase,那時就覺得使用數據庫很方便,比寫程序存取數據方便多了。
- 1997年底,當時的郵電部電信總局在全國提出要開發和建設一個叫“市內電話業務計算機綜合管理系統”的工程,即“九七工 程”,這是中國電信行業信息化的開端,當時我所在的省新疆電信使用的是Sybase數據庫,第一次接觸過Sybase數據庫,那時感覺Sybase數據庫 比Foxbase先進多了,能共享數據多個同時訪問,有事務的功能。
- 后來在2002年接觸到Oracle數據庫,感覺Oracle數據庫又比Sybase強了一些,鎖可以做到行級別,而且可以雙機跑同一個數據庫,訪問任一臺機器看到的都是一樣的,即當時的OPS技術(RAC技術的前身)。
- 大約在2006年左右,接觸到了PostgreSQL數據庫,現在也記不清楚怎么接觸到的PostgreSQL,當時好象是看看有什么象Oracle的開源數據庫。
- 真正成為一名正式的DBA,是在2008年加入阿里巴巴之后。那時開始專職搞數據庫,那時也開始認真的學習 PostgreSQL數據庫,當時越學習越感覺PostgreSQL功能的強大,如表字段還可以用數組類型,如以前沒有聽過的一些索引的概念如Gist索 引、部分內容索引。當時PostgreSQL良好的架構可以讓人容易的擴展它的功能以及優美的源代碼讓我越來越喜歡上了PostgreSQL數據庫。
CSDN:是什么原因促使你寫下《PostgreSQL修煉之道:從小工到專家》這本書的?經歷了多久完成著作的?這本書適合什么樣的讀者?
唐成: 當時參加PostgreSQL中國社區時,大家在一起討論的,就感覺中文的學習資源比較少,包括我自己學習的時候,也是感覺中文資料比較少,雖然看英文的 資料也可以,但實際上對于母語不是英語的人來說,看英文的速度終究比中文慢一些。另在網上找的一些資料總是比較零散一些,不容易串起來。當時就想寫一本 PostgreSQL的書,盡量能把PostgreSQL的方方面面都能介紹到。當然最后下定決定寫這本書,還是編輯lisa找到我的時候。
這本書從2013年中到現在完成,大約花了近兩年的時間,因為都是靠業余時間完成的,所以寫的比較慢,直到今年5月才正式出版本。個人覺得這本書首先適合數據庫的入門者。
PostgreSQL是目前開源功能最強大的數據庫,很多先進的數據庫理念和功能都能在PostgreSQL中找到。PostgreSQL數據庫 的創始人Michael Stonebraker獲得了2014年的圖靈獎。到目前為止,數據庫領域總共只有4個人獲得圖靈獎,前三位為1973 年 Bachman(數據庫與網狀數據庫)、1981 年 Codd(關系數據庫)、1998 年 Gray(數據庫與事務處理)。
所以PostgreSQL數據庫是數據庫科學家們努力的一個結晶,初學者通過學習PostgreSQL能打實數據庫的理論基礎,掌握數據庫領域中 一些新進的技術。這本書還適合Oracle和MySQL的DBA,由于這本書把PostgreSQL數據庫的方方面面都介紹了,Oracle和MySQL 的DBA通過快速學習這本書,可以快速掌握PostgreSQL數據庫的知識,即使你在工作中暫時用不到PostgreSQL,但學習 PostgreSQL數據庫可以讓你拓寬視野。這本書還適合PostgreSQL數據庫相關的開發人員,通過此書可以快速掌握PostgreSQL數據庫 方面的知識,讓你開發出的程序更健壯,同時PostgreSQL良好的架構和豐富的接口讓你容易擴展PostgreSQL數據庫的功能,不必什么都自己實 現,減少程序的代碼量。
CSDN:作為數據庫方面的專家,你怎么看待PostgreSQL目前以及未來的發展狀況?
唐成: PostgreSQL數據庫是數據庫科學家們努力的一個結晶,所以在早期易用性不是太好,但在9.X版本之后,這種情況已經改變。9.0之后提供了流復 制,可以搭建與Oracle類似的Standby,Standby可以做到只讀,9.1、9.2、9.3、9.4這部分功能都一直在增強。9.4強大的 JSBONB類型又可以把PostgreSQL數據庫變成一個NOSQL數據庫。目前社區越來越活躍,從DB-Engines網站數據庫排名及分 值,PostgreSQL數據庫的人氣越來越高,說明今后的發展會越來越好。
CSDN:PostgreSQL目前在國內外非常流行,你認為是什么造就了它的流行?與傳統的關系型數據庫相比,PostgreSQL有哪些優勢?
唐成: PostgreSQL數據庫越來越來流行,2015年的DTCC也設置了PostgreSQL的專場,這個 結果是PostgreSQL厚積薄發的結果。PostgreSQL在早期的發展過程中,一直在打實基礎,看看PostgreSQL的功能以及優美的源碼就 知道了。當建造一個建筑物時,開始打地基時,都是比較慢的,但如果把地基打的很結實合理,后面的速度就會大大增快。
與傳統的關系型數據庫相比,PostgreSQL數據庫具備了一些NOSQL數據庫的特點,如可以存JSON數據到數據庫中,還可以在JSON數 據的內部鍵值上建索引(類似全文檢索的功能),字段類型可以支持數組類型,這樣可以方便的把半結構化的數據存入其中。同時PostgreSQL與一些 NOSQL一樣提供了靈活的接口,便于擴展功能。
CSDN:在你看來,PostgreSQL對傳統數據庫是否構成威脅?傳統數據庫有哪些痛點呢?
唐成: 不能說PostgreSQL數據庫對傳統數據庫構成了威脅,但可能會終結Oracle數據庫在傳統數據庫領域一家獨大的情況。傳統數據庫不開源,不容易擴 展功能,數據庫系統比較重,安裝包動則幾個GB大小,不容易在云中部署,不能存儲非結構化數據庫,不能快速應對業務的變化。
CSDN:國內有哪些企業在使用PostgreSQL?能否例舉一二。數據庫的規模達到什么級別?
唐成: 在國內,斯凱網絡(股票代碼:MOBI)和去哪兒網(qunar.com)的后臺數據庫基本使用的都是PostgreSQL數據庫;騰訊和阿里也部分使用 了PostgreSQL數據庫。幾百G大小的數據庫非常多,幾TB大小的數據庫也經常見。阿里云和青云的平臺都提供了PostgreSQL數據庫。
CSDN:作為一名數據庫專家,有什么使用經驗可以分享給讀者的?
唐成: 其實也沒有好的經驗,只要對數據庫有濃厚的興趣,按本書或網上的一些教程搭建一個PostgreSQL環境學習, 不斷的學習,不斷地結合理論進行實踐,你一定能成為一名數據庫專家的。 (歡迎下載 《PostgreSQL修煉之道:從小工到專家》 試讀樣章。)
PS:值得一提的是,CSDN將特別策劃一期新型數據庫專題,現面向廣大網友征稿,與我們分享您的故事,與同行交流技術經驗,歡迎投稿;詳情請查看征文活動。
CSDN現開啟圖書作者專訪欄目,歡迎推薦采訪人或自薦,來分享你的成長經歷和相關技術,相關信息請發送郵件至:xiamz#csdn.net(#換成@)。更多精彩內容,請點擊社區之星或搜索關鍵字圖書作者查看。