中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 數據庫 > 
  • 遇見未來 | 對話朱賢文:PostgreSQL是一匹即將發力的黑馬

遇見未來 | 對話朱賢文:PostgreSQL是一匹即將發力的黑馬

發布時間:2020-08-12 12:40:12 來源:ITPUB博客 閱讀:260 作者:云和恩墨 欄目:數據庫

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

遇見未來 | 對話朱賢文:PostgreSQL是一匹即將發力的黑馬

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

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


遇見未來遇見未來 | 對話朱賢文:PostgreSQL是一匹即將發力的黑馬DB舞臺誰是王者之PostgreSQL專訪


自我介紹,團隊介紹
1
我是朱賢文,是成都文武信息技術有限公司的總經理、創始人。我入IT行業接近20年,主要熟悉數據庫、存儲和集群這些IT基礎架構比較底層的技術;在這之前,曾在Oracle,Veritas,IBM等公司工作,做研發的經驗主要在Oracle RAC和Storage和集群,涉及的技術比較底層。


我們是一個創業團隊,現階段不到20人,我們專注在PostgreSQL數據庫的商業解決方案及和技術服務,產品和方案;比如集群、容災、備份,咨詢等。 

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

作為PostgreSQL領域資深的專家,請您簡單介紹下PostgreSQL技術的發展歷程
2
實在不敢當專家的稱號,我只是對PostgreSQL熟悉一點罷了。

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


PostgreSQL的發展歷程

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


PostgreSQL的發展,經歷了幾個重要的版本

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

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


PostgreSQL的特點


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

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

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


PostgreSQL的發展

PostgreSQL數據庫的支持跟商業數據庫一樣,從6.3開始,每一個發行版本社區都會支持5年,這個傳統從1998年開始,馬上也進行了20年了。

從國內使用情況來看,現在PostgreSQL的影響力越來越強,越來越多的專業用戶將PostgreSQL用在他們的業務系統中,比如中國平安,中國移動,聯通,互聯網包括去哪兒,騰訊,阿里。

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

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

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

  • 大數據處理:原生分區,并行執行,FDW下發/push-down,更快的查詢支持;

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

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

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

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

PostgreSQL 的最佳應用場景是什么?有哪些比較成功的案例實踐?目前市場需求如何?
4
個人認為PostgreSQL適合對性能、可靠性、業務連續性要求非常高的企業級OLTP應用,以及小規模OLAP應用,比如數據量小于50T的OLAP系統。

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

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

  • 一方面是新建的對可靠性、業務連續性要求高的OLTP系統,越來越多的用戶將PostgreSQL作為優先選擇的數據庫;

  • 另一方面是數據量小于50T的小型OLAP業務系統,很多用于會優先選擇PostgreSQL作為分析引擎。

這種需求最近一兩年表現尤為明顯。

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


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

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

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

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


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

另外說一點就是PostgreSQL可用的高可用方案比較豐富,有開源的方案比如pgpool,也有一些商業的解決方案,比如我們公司的ECOX系統。客戶在設計和選用高可用方案的時候,嚴謹的生產系統最好要購買專業的服務。我們是國內比較好的服務團隊并且能提供完整的解決方案跟相關技術。

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

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

PostgreSQL數據庫在向著自動化運維的方向發展的過程中,面臨的最大的挑戰是什么?如何克服?
7

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

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

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

PostgreSQL數據庫與其他開源數據庫相比較的優勢
8

相對于其它數據庫而言,PostgreSQL的優勢是非常明顯的,比如:

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

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

  • 有豐富的開發接口和開發語言支持,豐富的數據類型,支持傳統的關系型數據和非關系型數據。對GIS非常好,對JSON,JSONB,XMLTable支持非常好。

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

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

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

  • 高品質的代碼,優雅的設計,非常長時間的、持續活躍的開發歷史。

  • 每個發行版本都能獲得為期5年的產品支持。

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

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

  • 國內從事PostgreSQL的服務商比較少,高質量的專業服務商更少。

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

可以請您談一下對 OceanBase數據庫的認識和看法嗎?
9

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


OceanBase的主從數據庫

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

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

整個集群對外來看,所有節點都是讀寫的、全功能的,比傳統數據庫優勢明顯,因為多活,負載均衡可以實現比較好,可以用低廉的硬件實現高性能、高可靠的系統;

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

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

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


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


近幾年隨著大數據時代的到來,NoSQL數據庫在處理海量數據上表現出越來越多的優勢,請問您如何看待數據庫的未來,會朝著什么樣的方向發展?
10

從數據本身來說,真實世界里生產的95%以上的數據都是關系型的,只有很少的數據是非關系型的。

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

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

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

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

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

遇見未來 | 對話朱賢文:PostgreSQL是一匹即將發力的黑馬

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定边县| 六盘水市| 凤山县| 桂阳县| 东莞市| 资阳市| 吉水县| 濮阳县| 南阳市| 南昌市| 滁州市| 方正县| 金堂县| 铁岭县| 巩义市| 阿勒泰市| 金寨县| 中山市| 湾仔区| 漳浦县| 黔西县| 五寨县| 阿巴嘎旗| 伊金霍洛旗| 望谟县| 楚雄市| 喜德县| 九龙坡区| 通城县| 集安市| 凉城县| 三都| 曲松县| 合川市| 静安区| 吐鲁番市| 龙山县| 勃利县| 班戈县| 安福县| 旬邑县|