PostgreSQL學習的九層寶塔

資料和雲發表於2019-11-07

活動預告: 在即將到來的  2019 資料技術嘉年華大會上,來自 PostgreSQL 方面的主題同樣豐富多彩,既有來自雲廠商的資料庫研發成果,新版本新特性介紹,還有來自於使用者的最佳實踐。


這些主題包括來自 華為智慧資料與儲存領域總裁  周躍峰 , 阿里巴巴以及PostgreSQL社群首席佈道師的  周正中(德哥),華為GaussDB生態與標準CTO  王偉民,PostgreSQL社群核心成員  張文升,騰訊雲的技術專家  孫旭,雲和恩墨的研究員  劉偉,阿里雲的技術專家  周振興,騰訊雲技術專家  李躍森  等的主旨分享。這些專家將為大家展示 Postg reSQL 資料庫蓬勃的生命力和廣泛的資料庫生態,以及最佳應用場景。詳情:  


前言


武俠世界,9是個神奇的數字,武學秘籍有《九陽真經》《九陰真經》,凡武功修煉到第九層,闖蕩江湖將獨孤求敗,快意恩仇。以文昌塔為喻,我把學習PG劃分九層,希望可以對玩轉資料江湖的同學,有所參照,逐層遞進,直至達到高手行列,闖蕩職場,遊刃有餘。


第一層:初識PG,開闊心胸



資料庫不只有Oracle、DB2、SQLSERVER,還有PostgreSQL(簡稱PG),PG是最強大的開源資料庫,PG開源友好,學習PG可以從事DBA/應用開發/系統核心開發等工作,而且會有很大的發揮空間,使用PG可以為企業提供有效的資料庫管理,也可以自主可控、節約成本。當今職場,多懂幾個資料庫,會讓我們有更多的機會。


初識PG,主要是學習認知PG的起源發展,主要版本特性,應用領域;瞭解國際PG社群組織、資源、動態,與中國PG分會、PG社群建立聯絡,積極互動,獲取學習資源,嘗試分享,展示自我。


第二層: 安裝使用,動手操練



“安裝部署、服務管理、體系結構、初始化配置、資料庫物件管理”,這是PG的應用管理基礎,DBA要會,應用開發也要會。當然兩種角色關注重點稍有不同,譬如DBA關注架構部署、執行穩定性和高效性,而應用開發更多的是掌握資料庫物件的建立及管理。


第三層: 把握要點,提綱挈領



PG作為關係型資料庫承擔著管理企業資料的重任。功能、效能很重要,穩定性更重要,這也是作為DBA首要考慮的問題。PG資料庫發展30多年,國際、國內的眾多應用案例表明穩定性可以信賴。關注學習與穩定性相關的知識點,能夠將PG的穩定性發揮的更好:


PG穩定性要點:

  • 記憶體配置

  • 日誌配置

  • 磁碟管理

  • 併發控制

  • 程式控制

  • ……


PG的功能強大、繁多,可以系統化、模組化的選擇性學習。譬如PG有地理資訊資料處理功能(GIS),暫時用不到可以先放過,除非很有志趣。DBA和應用開發人員可以根據工作需要深入學習不同功能要點。


PG功能列表:

  • 安全控制

  • 基準測試

  • 監控功能

  • 審計功能

  • 併發控制

  • 並行處理

  • 臨時表

  • 觸發器

  • 函式、儲存過程

  • 執行計劃

  • 物理連線

  • 資料快取

  • 物化檢視

  • 分割槽表

  • 主從流複製

  • 邏輯複製

  • 訪問外部資料

  • ……


第四層:熟練操作,得心應手



學習了穩定性要點、功能列表後,PG基本可以用來服務於工作了。透過不斷的自我練習,滿足工作業務需求,會看到自己的水平會不斷的進步。


第五層: 透視功能,探究原理



PG功能點繁多,獨特的功能適用於不同的業務場景,而且隨著PG版本的更新迭代,重要的功能點也會不斷得到最佳化,無論是使用上的便捷性還是效能的增強,無不體現著原始碼核心貢獻著的智慧與追求:使PG不斷完善,更好的服務於業務。


譬如分割槽表,PG V9版本中是透過表繼承+觸發器的方式實現,因觸發器本身的限制,資料的插入效能並不高;PG V10實現了內建分割槽表,建立的分割槽實質上也是普通的表結構,從而管理分割槽方便,資料插入效率得以提高;PG V11增加雜湊分割槽、預設分割槽、支援更新分割槽鍵等,完善了分割槽的功能。


探究原理能從內部機理深入理解,面對問題也能透過現象看本質,發現問題的誘因是使用不當還是系統bug,從而能更好的處理問題。


第六層: 問題處理,效能最佳化



習得第五層是為了更好的使用PG,遇到問題可以快速定位、分析處理。處理問題需要平時多積累整理,一方面是技術群、網站論壇丟擲的問題,主動思考、整理,學習總結,以備不時之需,有些問題平常不經常遇到,但一旦出現,之前沒有處理過會比較棘手;另一方面是工作中的問題,通常會有應急處理辦法,問題處理後,儘量形成問題分析報告,對有些問題選擇深度思考、討論,探究根本原因,進而歸檔或分享,這都是寶貴的經驗。


效能最佳化一直是資料庫大腦的重點,也是運維、開發者工作價值的體現。透過對內幕的探索,能夠撥雲見日,配合相關工具透過配置或SQL的最佳化,來提升資料庫的訪問效能。


第七層: 讀懂原始碼,快速定位



大學計算機相關專業的同學,一般會有C語言的課程,C語言可以算是世界上最偉大的程式語言之一,可以用來編寫UNIX/Linux的核心,也可以實現Python/Ruby解析器、Apache中介軟體等,很多關聯式資料庫都能看到C語言的影子。


PG原始碼也是用C編寫,嘗試學習原始碼是件有挑戰性的事,就如同駕駛手動擋汽車,如能操作熟練,必能體會其中的樂趣。不用任何解讀,就能快速定位到原始碼直接理解PG的工作邏輯,幫助我們更好的使用PG。


第八層: 編寫原始碼,完善最佳化



編寫PG原始碼是有志於從事系統程式設計工作同學的追求或方向,PG的強大凝聚了世界各地PG核心編碼工程師的智慧,遺憾的是,PG國際社群的貢獻者檔案中還沒有出現中國人的名字。當然,國內也不乏優秀的系統編碼者,期待透過大家共同的努力,將會湧現更多、更優秀的系統編碼工程師出現在列表中!


PG國際社群貢獻者列表連結:


第九層:融會貫通,自由馳聘



學習任何技能,最終的境界是融匯貫通,以無招勝有招。


無論大家從事DBA、DEV或者系統核心開發,透過有效的方法,堅持不懈的積累都可以達到這一層,自由揮灑。


後記



以上內容只是在PG的學習角度做的一些總結,用好PG還需要有良好的系統、資料庫原理知識,這也是基礎,猶如地基,地基穩,寶塔立。PG學習的九層寶塔,是為了更形象具體的描述,學習過程不是說必須按此一層一層進行,大家可以根據自己興趣或工作需要有所選擇的開展學習。


最後,說兩點學習的方法體會:

第一:多交流、多閱讀、多練習。

多與前輩交流,科學問答,多閱讀優秀書籍,自己多做實驗。書是人類進步的階梯,學習最好的夥伴,可以根據學習階段或工作需要選擇閱讀。

 

參考書目

《PostgreSQL修煉之道-從小工到專家》

《PostgreSQL 9X之巔》

《PostgreSQL實戰》

《PostgreSQL指南:內幕探索》

《PostgreSQL伺服器程式設計》

……


第二:投資學習,嚮導師借力。


培訓是件專業的事,優秀的培訓導師可以幫你快速把握要領、修正方法;幫你節約時間、能更快速有效的提升技能;還能夠提供更多的資源,譬如良好的學習環境、就業機會、技術支援等,人生多一良師,也是一大幸事。

 


讀罷本文,想必有讀者會問我是幾層,我只能這麼回答您“路漫漫其修遠兮,吾將上下而求索”。如果本文對您有所幫助,也不枉費腦力一場;如果您有不同意見也可以借PG分會平臺發表或進一步交流。


作者:魏波,中國PG分會培訓認證執行總監、資深資料庫工程師,十多年的資料庫運維管理及培訓經驗,掌握PostgreSQL架構部署、效能最佳化等,致力於推動PostgreSQL在中國的發展。


延伸閱讀...


關於中國PostgreSQL分會



中國開源軟體聯盟PostgreSQL分會於2017年成立,由多家國內主要PG生態企業共同發起,是PostgreSQL資料庫作為開源聯盟重點發展和支援物件所產出的重要成果。受工信部中國電子資訊產業發展研究院、中國開源軟體聯盟共同指導,以提高中國PostgreSQL發展和應用水平為宗旨,致力於構建PG產業生態、推動PG技術產學研用發展。作為國內唯一的PG行業協會組織,分會承擔著在國內推廣和發展PostgreSQL技術的職能。



關於中國PostgreSQL產業發展基金



中國PostgreSQL發展基金是由中國開源軟體聯盟PostgreSQL分會發起並管理,致力於在國內推動PostgreSQL生態發展的產業基金,PostgreSQL發展基金吸收多家PG技術應用企業捐助,基金總規模1000萬。

 

分會使命:依託PG技術,催化產業共贏。

分會職能與任務:提升PG在中國影響力、促進PG產業生態發展

 

分會重點工作:

  1. PostgresConf.CN(PCC)大會——中國地區規模最大,國際嘉賓最多的PG生態大會,PGconf全球正式會議。

  2. PostgreSQL中國培訓認證體系——國內唯一的體系化、規範化PG培訓與認證體系

  3. PostgreSQL中國象牙塔計劃——聯合各會員單位和PG產業鏈企業,依託中國PG產業發展基金,致力於推動高等院校PG產學研用生態發展,培養更多高水平PG技術人才的計劃。該計劃主要透過全國範圍100所高等院校共建開源資料庫創新實驗室,PG分會高校實訓基地,PG創新研究啟動基金等方式落地,目標在未來5年培養5萬以上PG專業技術人才。

  4. PostgreSQL中國貢獻者計劃——依託中國PG產業發展基金和PG分會國際技術交流橋樑的職能,引導、培育更多的中國PG技術人員向國際社群核心開發者,原始碼貢獻者方向發展,培育出一支以上世界級的核心社群貢獻者團隊。幫助中國資料庫核心研究跨越式發展。

  5. PostgreSQL生態基礎建設——除PG培訓認證體系外,透過PG人才供需平臺、高等院校象牙塔計劃、PG中國Support平臺等打造推動PG生態發展的基礎設施。為產業發展提供必要支撐與支援。

 

會員單位(截止2019.11):

  • 阿里雲端計算有限公司

  • 瀚高基礎軟體股份有限公司

  • 騰訊雲端計算(北京)有限公司

  • 北京百度網訊科技有限公司

  • 雲和恩墨(北京)資訊科技有限公司

  • 平安科技(深圳)有限公司

  • 平安壹錢包電子商務有限公司

  • 山大地緯軟體股份有限公司

  • 國家電網全球能源網際網路研究院

  • 北京許繼電氣有限公司

  • 亞信科技(南京)有限公司

  • 武漢大學計算機學院

  • 惠而浦(中國)股份有限公司

  • 北京海量資料技術股份有限公司

  • 北京晟數科技有限公司

  • 北京優技教育科技有限公司

  • 北京今日智慧科技有限公司

  • 南京柯普瑞資訊科技有限公司

  • 成都文武資訊科技有限公司

  • 北京優炫軟體股份有限公司

  • 天曦網路科技(北京)有限公司

  • 廣州雲徙科技有限公司

  • 北京優帆科技有限公司

  • 上海佳軟資訊科技有限公司

  • 上海雲貝網路科技有限公司

  • 北京太陽塔科技有限公司

  • 杭州乘數科技有限公司

 

瞭解 PostgreSQL 資料庫生態,瞭解那些從 O2P 的故事和歷程,誠邀參與 『2019 資料技術嘉年華』大會! 現在加入,盡享超低票價優惠:



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556440/viewspace-2663007/,如需轉載,請註明出處,否則將追究法律責任。

相關文章