日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

遇见未来 | 对话朱贤文: PostgreSQL是一匹即将发力的黑马

發(fā)布時間:2024/1/8 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 遇见未来 | 对话朱贤文: PostgreSQL是一匹即将发力的黑马 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在2017年的DB-Engine的年度數(shù)據(jù)庫榜單上,PostgreSQL以其超過其他341個受監(jiān)控數(shù)據(jù)庫管理系統(tǒng)的受歡迎程度居于榜首,被評為年度DBMS。其總體排名也超過MongoDB,在其流行程度上排名第四。

PostgreSQL是DB領域的一匹黑馬,之前一直默默活在MySQL的陰影之下,今年隨著 10.0版本的發(fā)布,Declarative Partitioning的引入,改進的查詢并行性,邏輯復制和同步復制的Quorum Commit?,PostgreSQL 10 的影響力在不斷的增強。

今天我們有幸邀請到了PostgreSQL的專家朱賢文老師,為我們分享PostgreSQL的核心技術、發(fā)展現(xiàn)狀及未來方向。


遇見未來 DB舞臺誰是王者之PostgreSQL專訪


1、自我介紹,團隊介紹


我是朱賢文,是成都文武信息技術有限公司的總經(jīng)理、創(chuàng)始人。我入IT行業(yè)接近20年,主要熟悉數(shù)據(jù)庫、存儲和集群這些IT基礎架構比較底層的技術;在這之前,曾在Oracle,Veritas,IBM等公司工作,做研發(fā)的經(jīng)驗主要在Oracle RAC和Storage和集群,涉及的技術比較底層。


我們是一個創(chuàng)業(yè)團隊,現(xiàn)階段不到20人,我們專注在PostgreSQL數(shù)據(jù)庫的商業(yè)解決方案及和技術服務,產(chǎn)品和方案;比如集群、容災、備份,咨詢等。?

我們有一套自研的專門用于數(shù)據(jù)庫的高性能私有云系統(tǒng),支持PostgreSQL和Oracle數(shù)據(jù)庫高效可靠地運行。

2、作為PostgreSQL領域資深的專家,請您簡單介紹下PostgreSQL技術的發(fā)展歷程


實在不敢當專家的稱號,我只是對PostgreSQL熟悉一點罷了。

PostgreSQL是一個非常先進的、有很多高級特征、企業(yè)級功能非常豐富的開源數(shù)據(jù)庫,在金融、銀行、電信、生產(chǎn)制造等行業(yè)有非常多的成功案例。


PostgreSQL的發(fā)展歷程

PostgreSQL的前身是美國國防部與UC Berkeley大學合作的一個研究項目,叫Ingres,起源于1973年;1985年研究項目終止,隨后開源,并且命名叫Postgre,隨后又改名為Postgre95;1996年因為加入了完整的SQL92標準支持,為了強調(diào)對SQL的支持,所以更名為PostgreSQL,這個名字一直沿用到現(xiàn)在。到目前為止,其連續(xù)活躍的開發(fā)歷史已超過32年,算上Ingres時期的開發(fā)歷史,項目實際上接近45年連續(xù)開發(fā)。


PostgreSQL的發(fā)展,經(jīng)歷了幾個重要的版本

  • 從8.0開始,逐漸增加了眾多的企業(yè)功能,包括寫日志,表分區(qū),物理同步復制,物理異步復制,邏輯復制,在線熱備份,并行查詢。

  • 目前最新版本為10.1,完善了表分區(qū)和hash表功能。


PostgreSQL的特點


  • PostgreSQL數(shù)據(jù)庫的跨平臺特性非常強,支持幾乎所有的操作系統(tǒng)和CPU硬件平臺,如AIX,HPUX,Linux,BSD,Windows等。

  • PostgreSQL的開發(fā)是由社區(qū)驅動的,各種高級先進的特性主要來自于用戶的反饋和需求;社區(qū)的成員來自于全球的商業(yè)公司,高校,研究機構等,開發(fā)和發(fā)行過程非常嚴謹,產(chǎn)品代碼質(zhì)量非常高。目前國內(nèi)有很多公司基于PostgreSQL數(shù)據(jù)庫開發(fā)自己的商業(yè)產(chǎn)品。

還有一些明顯的特點包括:比如非常豐富的數(shù)據(jù)類型,豐富的開發(fā)接口和編程語言的支持,豐富的索引類型,很多的企業(yè)級高級特性等等,都能夠滿足絕大多數(shù)企業(yè)級應用的要求。


PostgreSQL的發(fā)展

PostgreSQL數(shù)據(jù)庫的支持跟商業(yè)數(shù)據(jù)庫一樣,從6.3開始,每一個發(fā)行版本社區(qū)都會支持5年,這個傳統(tǒng)從1998年開始,馬上也進行了20年了。

從國內(nèi)使用情況來看,現(xiàn)在PostgreSQL的影響力越來越強,越來越多的專業(yè)用戶將PostgreSQL用在他們的業(yè)務系統(tǒng)中,比如中國平安,中國移動,聯(lián)通,互聯(lián)網(wǎng)包括去哪兒,騰訊,阿里。

從生態(tài)區(qū)和支持這個方面來說是越來越完善,現(xiàn)在有華為,騰訊,阿里以及我們成都文武信息在內(nèi)的專業(yè)公司,對其提供商業(yè)支持和服務,并且基于它開發(fā)自己的高性能數(shù)據(jù)庫。

3、在PostgreSQL?10版本中,您最關注的新特性和技術點包含哪些?或者您認為最重要的變化?

PostgreSQL 10版本中,新的特性比較多,下面只列出部分,詳細的部分可以參考官方Wiki:https://wiki.postgresql.org/wiki/New_in_postgres_10

  • 大數(shù)據(jù)處理:原生分區(qū),并行執(zhí)行,FDW下發(fā)/push-down,更快的查詢支持;

  • 復制和很橫向擴張:邏輯復制,同步復制實現(xiàn)Quorum Commit-類Raft的部分功能,臨時復制slots支持,連接層的failover和routing,加強的物理復制;

  • 系統(tǒng)管理:pg_receivewal支持壓縮,pg_stat_activity有了專門的后臺處理進程等;

  • SQL功能:Identity Columns,Crash Safe,Replicable HashIndexes,Transition Tables for Triggers;

  • XML和JSON:支持XMLTable,JSON和JSONB的全文搜索

4、PostgreSQL?的最佳應用場景是什么?有哪些比較成功的案例實踐?目前市場需求如何?


個人認為PostgreSQL適合對性能、可靠性、業(yè)務連續(xù)性要求非常高的企業(yè)級OLTP應用,以及小規(guī)模OLAP應用,比如數(shù)據(jù)量小于50T的OLAP系統(tǒng)。

現(xiàn)在國內(nèi)可以參考的案例還是非常多,比如平安集團有1500多個實例部署;樂友母嬰用品店,核心的數(shù)據(jù)庫系統(tǒng)是一個接近10T的PostgreSQL在線數(shù)據(jù)庫支撐全國的業(yè)務;除此外,還有探探、去哪兒網(wǎng)、百度地圖等,都有很大的PostgreSQL部署量,高效可靠地支撐業(yè)務系統(tǒng);還有一些傳統(tǒng)行業(yè),如浙江移動,湖北移動,中國聯(lián)通等。

根據(jù)我知道的信息,市場對PostgreSQL數(shù)據(jù)庫的需求一直都是高速增長的,增長的量主要集中在兩個方面:

  • 一方面是新建的對可靠性、業(yè)務連續(xù)性要求高的OLTP系統(tǒng),越來越多的用戶將PostgreSQL作為優(yōu)先選擇的數(shù)據(jù)庫;

  • 另一方面是數(shù)據(jù)量小于50T的小型OLAP業(yè)務系統(tǒng),很多用于會優(yōu)先選擇PostgreSQL作為分析引擎。

這種需求最近一兩年表現(xiàn)尤為明顯。

5、您是否可以簡單介紹下互聯(lián)網(wǎng)模式下,PostgreSQL?數(shù)據(jù)庫的高可用架構有哪幾種模式?


  • 第一種跟其它數(shù)據(jù)庫的高可用架構基本上一樣,就是采用共享存儲模式,數(shù)據(jù)庫存放在共享存儲上;一臺主機,一臺備機;正常情況下,主機連接存儲啟動數(shù)據(jù)庫對外提供服務;當主機故障,備機接管存儲,并且啟動數(shù)據(jù)庫,繼續(xù)對外提供服務;這種架構的好處就是數(shù)據(jù)是專門的存儲提供保護,不用擔心丟失,切換服務的時間需要集群管理軟件決定,一般來說基本中就可以完成切換;


  • 第二種是基于流復制的高可用架構,這里面有幾個發(fā)展的階段,

(1)第一個階段是基于對PostgreSQL WAL日志文件的復制,這個方式目前基本上很少用了;大致的工作原理是集群內(nèi)一個主庫一個備庫,當WAL日志歸檔后,這個文件同時拷貝到備庫;備庫始終處于恢復狀態(tài),接收到主機拷貝過來的WAL日志文件,立即恢復到備機;當主機宕機,備庫立即切換模式,恢復成主庫對外服務;

(2)第二個階段是物理復制—--流復制,主庫正常工作,所有提交的事務除了寫在本地的WAL日志文件,同時還會將數(shù)據(jù)通過網(wǎng)絡傳輸?shù)絺鋷臁Mㄟ^控制對網(wǎng)絡上數(shù)據(jù)傳輸時間的確認,可以分為異步復制和同步復制,這兩種復制方式會涉及SLA定義的RTO和RPO等指標,同時也涉及到系統(tǒng)性能。

(3)目前的階段是物理流復制方式比較豐富的階段。在以前的復制方式上,對同步復制的控制手段很少;現(xiàn)階段不僅可以控制集群內(nèi)有多少臺同步復制,而且可以控制數(shù)據(jù)提交成功的確認方式,例如在多少個同步復制節(jié)點提交成功、以什么樣的方式在同步節(jié)點上提交成功,first n, any n等比較細粒度的控制復制成功時確認信息的行為;同時也可以比較細粒度地控制復制過程中的性能,比如發(fā)送到備庫的buffer確認,還是備庫寫入wal確認,還是備庫需要replay確認等……


  • 第三種是邏輯復制。邏輯復制的好處比較多,比如可以跨平臺跨操作系統(tǒng),可以控制需要復制的表而不是整個庫進行部分數(shù)據(jù)的復制,比如用于OLAP分析系統(tǒng)的數(shù)據(jù)同步;也可以用于做不停機的業(yè)務系統(tǒng)升級。

另外說一點就是PostgreSQL可用的高可用方案比較豐富,有開源的方案比如pgpool,也有一些商業(yè)的解決方案,比如我們公司的ECOX系統(tǒng)。客戶在設計和選用高可用方案的時候,嚴謹?shù)纳a(chǎn)系統(tǒng)最好要購買專業(yè)的服務。我們是國內(nèi)比較好的服務團隊并且能提供完整的解決方案跟相關技術。

6、請您介紹一下PostgreSQL中目前比較成熟并且流行的存儲引擎和他們的使用場景嗎?


PostgreSQL不像MySQL數(shù)據(jù)庫那樣有很多存儲引擎。PostgreSQL只有一種存儲引擎,對事務處理非常嚴謹嚴肅,主要用于高性能的OLTP業(yè)務場景。同時也可以用于小型的OLAP分析型業(yè)務場景。

7、PostgreSQL數(shù)據(jù)庫在向著自動化運維的方向發(fā)展的過程中,面臨的最大的挑戰(zhàn)是什么?如何克服?


PostgreSQL數(shù)據(jù)庫,不像我們常用的Oracle數(shù)據(jù)庫,如果參數(shù)設置得當,應用設計也比較好,這種情況下其實不需要太多的維護;

對于PostgreSQL來說,反而是需要將精力放在存儲子系統(tǒng)的可靠性,備份等方面。

存儲子系統(tǒng)的可靠性需要仔細地設計,因為它不僅關乎系統(tǒng)性能,也關乎數(shù)據(jù)本身存放的可靠性。如果是嚴謹?shù)纳虡I(yè)應用,建議優(yōu)先選用可靠的存儲系統(tǒng)和文件系統(tǒng);我們作為有豐富實施經(jīng)驗的專業(yè)廠商,我們會推薦用戶優(yōu)先選用ZFS,特別是原生的ZFS,這個領域我們有完整的方案。

8、PostgreSQL數(shù)據(jù)庫與其他開源數(shù)據(jù)庫相比較的優(yōu)勢


相對于其它數(shù)據(jù)庫而言,PostgreSQL的優(yōu)勢是非常明顯的,比如:

  • 有龐大的潛在的開發(fā)群體、運維群體和完整的生態(tài);因為Oracle的生態(tài)系統(tǒng)非常完善和成熟,熟悉Oracle技能的人遷移到PostgreSQL數(shù)據(jù)庫上的學習曲線非常平滑,成本非常低。根據(jù)我自己的經(jīng)驗,基本上2周時間可成。

  • 有大量的銀行、電信、保險、政府等行業(yè)的關鍵業(yè)務應用案例和知名客戶。

  • 有豐富的開發(fā)接口和開發(fā)語言支持,豐富的數(shù)據(jù)類型,支持傳統(tǒng)的關系型數(shù)據(jù)和非關系型數(shù)據(jù)。對GIS非常好,對JSON,JSONB,XMLTable支持非常好。

  • 非常豐富的fdw擴展,幾乎可以支持所有的外部數(shù)據(jù)源和數(shù)據(jù)庫。

  • 非常先進的企業(yè)級特性,比如復制,分區(qū),在線熱備份,非常豐富的索引、函數(shù)等。

  • 非常優(yōu)秀的跨平臺、跨操作系統(tǒng)支持。支持幾乎所有的硬件平臺和操作系統(tǒng)。大到mainframe,小到嵌入式系統(tǒng)。

  • 高品質(zhì)的代碼,優(yōu)雅的設計,非常長時間的、持續(xù)活躍的開發(fā)歷史。

  • 每個發(fā)行版本都能獲得為期5年的產(chǎn)品支持。

當然也有需要完善的地方,比如:

  • 宣傳不到位,現(xiàn)在還有很多用戶不清楚、甚至不知道PostgreSQL是一個生么樣的數(shù)據(jù)庫。(這一點會導致用戶選用技術線路失誤,從而導致后面的應用系統(tǒng)開發(fā)和維護成本很高。)所以應該加強PostgreSQL數(shù)據(jù)庫的培訓和宣傳。

  • 國內(nèi)從事PostgreSQL的服務商比較少,高質(zhì)量的專業(yè)服務商更少。

  • 技術上目前還不支持塊級別的增量備份和恢復(這個功能已經(jīng)在線路圖上,很快會有)

9、可以請您談一下對 OceanBase數(shù)據(jù)庫的認識和看法嗎?


OceanBase是一個非常有特點的數(shù)據(jù)庫,全新的設計,也在高性能,高可靠性方面有比較好的表現(xiàn),17年雙11表現(xiàn)的每秒處理26萬多筆交易的威力(性能)大家也見識過了。


OceanBase的主從數(shù)據(jù)庫

在傳統(tǒng)的數(shù)據(jù)庫主從架構中,比如(Active)DataGuard,主庫對外提供全功能的讀寫服務,從庫對外提供只讀服務,主庫到從庫通過流復制技術使數(shù)據(jù)保持同步;

在OceanBase中,也有主和從的概念,復制也是主到從,與傳統(tǒng)數(shù)據(jù)庫不一樣的是這個數(shù)據(jù)庫的主、從概念是建立在分區(qū)表的分區(qū)上,每個表有多個分區(qū),所有節(jié)點都可以有全部或者部分分區(qū),分區(qū)有多個副本,分布在集群內(nèi)的其它節(jié)點上,副本可以看作是是從,只接收主上面的日志,并且回放到內(nèi)存里,一個可以讀寫的分區(qū)就是一個主;一個主可以有多從,確保數(shù)據(jù)有多份拷貝,主到從的日志傳輸通過Paxos協(xié)議完成,確保數(shù)據(jù)可以正確傳輸?shù)狡渌?jié)點;

整個集群對外來看,所有節(jié)點都是讀寫的、全功能的,比傳統(tǒng)數(shù)據(jù)庫優(yōu)勢明顯,因為多活,負載均衡可以實現(xiàn)比較好,可以用低廉的硬件實現(xiàn)高性能、高可靠的系統(tǒng);

仔細觀察集群內(nèi)部,由很多表的不同分區(qū)及它們的副本構成非常多的主從復制,所有的日志數(shù)據(jù)復制基于Paxso協(xié)議,能夠保證任何節(jié)點損壞都不會有數(shù)據(jù)丟失的危險(當然節(jié)點壞掉的個數(shù)不能大于節(jié)點總數(shù)的一半)。

OceanBase另外一個比較有意思的設計就是類似于傳統(tǒng)數(shù)據(jù)庫中的check_point的處理,傳統(tǒng)數(shù)據(jù)庫的check_point時間根據(jù)負載和SLA的一些要求,一般保持在幾分鐘到半個小時之間,數(shù)據(jù)庫要做一次check_point,以確保數(shù)據(jù)庫的數(shù)據(jù)一致性;而OceanBase數(shù)據(jù)庫把傳統(tǒng)數(shù)據(jù)庫類似check_point功能的操作周期做得非常長,比如一天做一次數(shù)據(jù)整合(類似于傳統(tǒng)數(shù)據(jù)庫的check_point操作);這樣做有好處,就是對SSD這種新型電子磁盤的壽命有幫助,因為對SSD的操作都是大片大片的、整塊地刪除、寫入,盡量避免SSD內(nèi)部的寫放大,這個設計的前提是基于服務器有非常大的內(nèi)存配置,比如256G、甚至1T,現(xiàn)在的機器內(nèi)存配置都比較大,很容易配置大內(nèi)存的集群,那么把數(shù)據(jù)庫的data buffer做到足夠大,數(shù)據(jù)庫所有的操作都在內(nèi)存里,相當于一個準內(nèi)存數(shù)據(jù)庫,比操作磁盤的IO要快很多;通過這些設計,非常合理地避免了全分布式、高可靠、高性能并發(fā)和mvcc之間的矛盾。

OceanBase的設計非常聰明,它的出現(xiàn)的確給了我耳目一新的感覺,不管是技術上的創(chuàng)新,架構上的創(chuàng)新,技術來源,都是值得大大地給一個贊,說到技術創(chuàng)新、架構創(chuàng)新,我們的鴻鵠彩云系統(tǒng)就是為高性能數(shù)據(jù)庫業(yè)務設計的,里面也有很多可以讓人感覺耳目一新的技術創(chuàng)新的點,希望更多的人可以嘗試試用;


當然一個新事物的出現(xiàn)需要一個時間完善和成長/成熟的過程,對于OceanBase來說目前也需要有完善的地方,比如技術上與現(xiàn)有的用的廣泛的Oracle的兼容性,跨庫交易等,關鍵行業(yè)的成功的應用案例等,讓我們多給它一些時間,多給一些耐心;(當然我對OceanBase的了解也比較有限,可能有很多技術特點沒有講到,請包涵)


10、近幾年隨著大數(shù)據(jù)時代的到來,NoSQL數(shù)據(jù)庫在處理海量數(shù)據(jù)上表現(xiàn)出越來越多的優(yōu)勢,請問您如何看待數(shù)據(jù)庫的未來,會朝著什么樣的方向發(fā)展?


從數(shù)據(jù)本身來說,真實世界里生產(chǎn)的95%以上的數(shù)據(jù)都是關系型的,只有很少的數(shù)據(jù)是非關系型的。

所謂的NoSQL是Google在很多年提出來的處理大數(shù)據(jù)的一個技術方案,主要使用的思想就是Map/Reduce,學過數(shù)據(jù)庫的人都應該了解,這項技術實際上在上個世紀60年代,在大型機上處理大量計算常用的技術思想。

Google最終推出了自己的Spanner數(shù)據(jù)庫,結果是非常明顯的,Google自己都不用NoSQL,而回到傳統(tǒng)的SQL這個線路上面來,所以未來還會向SQL這個方向走。

11、PostgreSQL數(shù)據(jù)庫未來將會如何演變,如何應對海量數(shù)據(jù)的實時處理需求?


PostgreSQL未來還是會持續(xù)、活躍地開發(fā)高品質(zhì)的軟件,并且根據(jù)市場需要提供滿足市場的技術特性;國內(nèi)的市場也會普及和成熟,用戶也會接納并且廣泛地使用PostgreSQL數(shù)據(jù)庫、并且從中受益。

應對海量數(shù)據(jù)的實施處理,可以選用高性能硬件,MPP架構的技術;以后也會有基于內(nèi)存的MPP,甚至用GPU加速運算的數(shù)據(jù)庫;但是最終還是需要看用戶本身的需求和業(yè)務特點,根據(jù)這些進行有針對性的設計和實施,以滿足這類需求。

跨界與融合、機遇與挑戰(zhàn)、個人與企業(yè)、現(xiàn)在與未來。讓各行業(yè)、企業(yè),以及每一個向未來而努力的人,聽見時代最前沿的聲音,見證成長!

總結

以上是生活随笔為你收集整理的遇见未来 | 对话朱贤文: PostgreSQL是一匹即将发力的黑马的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。