天天看點

文明的更新依靠工具的更新:揭秘下一代雲資料庫引擎MyBase for PostgreSQL

一、PostgreSQL引擎核心能力

文明的更新依靠工具的更新:揭秘下一代雲資料庫引擎MyBase for PostgreSQL

PostgreSQL功能圖

在MyBase中,PG引擎除了包含RDS所有的能力,還包含GIS、分詞搜尋、精準營銷、複雜SQL、Oracle相容擴充和圖像識别等核心能力。

1.GIS

GIS是一個地理資訊系統,随着移動的終端還有帶GPS傳感器的普及,實際很多的業務裡都有經緯度的資訊。

以共享單車為例,車内裝有GPS系統,友善使用者檢視自己的行駛軌迹,同時背景可以做行為軌迹的分析,共享單車使用的熱點等都與GIS相關。

針對GIS這塊功能,我們有一個強大的時空核心研發團隊在做支援,目前GIS相比較于開源的版本有50倍的性能提升,這裡面主要展現在移動對象處理。

移動對象處理通常使用在公安緝查等方面,例如公安鎖定了某位嫌疑人之後,可以通過移動對象資訊查詢到他的軌迹,根據嫌疑人的軌迹迅速鎖定相似軌迹或有密切接觸的對象,有效提高公安辦案效率,是一個具有特殊社會價值的功能。

2.分詞搜尋

分詞搜尋是PG引擎裡的一大特色。

分詞搜尋目前廣泛存在于各個業務場景,如文檔系統,社交聊天系統等。單獨建一個搜尋引擎需要很大的成本,包含硬體成本,軟體成本,維護成本等。

對于企業來說,首先本身資料庫的資料量并不算很大,其次單獨建立一個搜尋引擎,意味着要将資料庫的資料同步到搜尋引擎,将會引出許多問題,例如同步的延遲,如果是異構資料庫的話可能導緻資料不一緻,是以單獨建立一個搜尋引擎對企業來說,成本效益十分低。

PG引擎内置的分詞搜尋解決了企業的這個難題,且相較于傳統關系型資料庫,性能提升了1000倍。

3.精準營銷

精準營銷常見于銷售業務相關場景。

精準營銷通常涉及根據使用者行為構造使用者畫像,然後查詢使用者的興趣點,根據使用者的興趣點進行搜尋,這裡我們支援了向量相似的索引。

我們根據使用者本身的特征或商品的特征進行數字化,就會儲存浮點向量。然後我們基于浮點向量做相似檢索,這種方式相較于全盤掃描,性能上有提升了1500倍,在千萬級别的向量裡可以做到毫秒級的相似召回。

4.複雜SQL

随着業務的發展,如今的業務已經不像以前那樣 簡單的增删改查,完全沒有連表的查詢。如今的業務,特别是企業上雲,許多企業的ERP系統、CRM系統裡的關系都特别複雜,可能存在幾十上百張表的關聯。

PG引擎針對這一塊做出許多優化,相較于其他引擎,PG的性能提升20倍以上。

5.Oracle相容擴充

目前PG在資料庫領域的地位與Oracle旗鼓相當,是一個功能全面的産品,是以PG引擎内置Oracle相容擴充包,可以相容最常見的一些資料類型、函數和package。

6.圖像識别

PG引擎與螞蟻聯合推出的圖像識别插件:pase,這個插件相較于暴力計算的圖像識别,性能提升了2萬倍,已經被廣泛應用于新零售商店、銀行網點。

二、使用雲資料庫服務給DBA帶來的問題

(一)問題一:架構、監控、優化等

  • 解決這些問題主要存在以下幾個困難:
  1. 當無法解決架構問題時,許多使用者會選擇放棄原有資料庫,選擇其他類型的資料庫産品重新建構資料庫,這樣往往導緻原有的機器堆積,耗費高昂的人力、資源與精力,并且不一定能解決問題;
  2. 公司選擇培養對應方面的人才來解決問題,但存在學習時間周期長,并且人才流失情況嚴重,對公司造成一定損失;
  3. 如果招聘相應的高端人才來解決問題,除了在招聘上的難度,還需要配備1對1的Backup防止特殊情況發生,這會造成工作強度不飽和,成本較高;
  4. 求助搜尋引擎或者社群,響應時間過長,無法及時解決問題。
  • 針對以上問題,使用PostgreSQL有以下幾個優點:
  1. 上千位資深PostgreSQL專家組成的資源池,7*24技術咨詢;
  2. DBA可以将更多時間投入到業務優化、架構設計等關鍵事務,消除能效比較低的重複勞動,為企業創造更多價值。

(二)問題二:Bug

Bug分為社群核心Bug與插件Bug。

  • 常見的社群Bug解決方法:
  1. 報告給社群,用時1天左右;
  2. 等待社群修複,用時2~5天左右(理想情況);
  3. 下載下傳社群Patch,自行驗證,用時5天左右;
  4. 制定更新計劃,更新,用時1天左右。
  • 常見的插件Bug解決方法:
  1. 報告插件作者,用時1天左右;
  2. 等待作者修複,用時5天以上,時長無法保證;
  3. 下載下傳Patch,自行驗證,用時5天左右;
  4. 更新插件,用時1天左右。
  • 針對Bug問題,使用阿裡雲PostgreSQL有以下好處:
  1. AliPG相容開源PostgreSQL,阿裡雲專業核心團隊為AliPG代碼兜底;
  2. AliPG與公共雲一套源碼,大量商業使用者應用的選擇,有BUG盡早修複;
  3. 使用者可在雲端點更新版本按鈕,或配置自動更新任務解決問題。

(三)問題三:無法滿足業務需求

目前開源資料庫在某些情況下可能無法滿足業務需求,使用者需要有核心研發能力才能自己添加功能,例如以下常見的社群版本無法滿足的安全問題:

  1. DBA、SA有權檢視、篡改、删除敏感資料;
  2. 普通使用者可以通過Security Invoker屬性來設定陷阱函數;
  3. 敏感資訊(例如使用者密碼)可能明文出現在SQL審計日志、曆史SQL指令、共享記憶體(例如會話狀态、pg_stat_statements跟蹤會話)、DBlink視圖、外部表User Mapping的定義中。
  1. AliPG擁有大量商業使用者,覆寫衆多行業,AliPG圍繞行業痛點,不斷擴充實用功能;
  2. 自研插件18款(詳見産品手冊),覆寫GIS,冷熱分離,分詞搜尋,圖像識别,安全加強等場景。

三、PostgreSQL在MyBase的核心能力

阿裡雲提前洞察行業需求,用技術幫助客戶突破商業邊界。PostgreSQL核心能力主要展現在三個部分:更快的業務體驗價值、更穩和更安全的核心業務必要能力,以下進行詳細拆解分析。

(一)提升更快的業務體驗價值:更快

阿裡雲在研發産品的同時一直與客戶保持溝通與交流,了解行業場景存在的問題,阿裡雲基于這些場景問題做出如下優化:

  1. 圖像識别、向量相似搜尋
  2. 實時營銷、使用者畫像
  3. 短視訊、實時推薦
  4. GIS MOD移動對象處理

阿裡雲PostgreSQL使用了螞蟻集團的人臉識别技術,在資料庫裡使用了新的索引結構。我們知道,如果要做到快速查詢,需要在查詢前做好預計算,或者讓資料庫存儲适合查詢。是以我們使用了兩種圖像搜尋的算法,重新組織圖像的特征值(即浮點),使得性能提升了20000倍。

我們通過與短視訊或社交類行業的公司接觸,根據使用者的喜好在核心做了優化,在向量相似搜尋方面取得了上千倍的性能提升。

實時營銷中會有跟使用者畫像相關的資料組織,在移動對象的處理如協助公安辦案等方面也有一個性能的大幅提升。

(二)核心業務必要能力:更穩

  • 更穩展現在Paas多租戶場景:

大并發大量中繼資料、大量連接配接優化;

資源隔離優化。

在資料庫中特别是在PG裡面,如果連1萬個連接配接再去跑TPCB的話,存在許多更新、插入的操作,導緻性能直線下降。AliPG針對這個問題做了大量連接配接、程序内耗的優化。

所謂的租戶業務場景如SaaS類的業務包含了許多企業,在這種資料庫裡會有上千萬個Scheme,有許多原資料。這裡可能出現資源之間互相争搶,某一企業使用時将資源全部用光,進而影響其他的企業。我們通過将資源隔離優化,進而使得企業在使用資料庫時不會與其他企業産生資源争奪的情況。

(三)核心業務必要能力:更安全

  • 安全加強場景:

1)敏感資訊加密, 函數調用陷阱規避;

2)SGX全加密;

3)最大保護、最高可靠、最高可用模式;

4)Slot Failover。

PG的社群版本存在函數調用陷阱的問題,例如某使用者建立了一個視圖,視圖後面調用的Fuction設定為Security Invoke,表示判斷這個函數的權限時是以調用這個函數的使用者的權限判斷的。當該使用者為普通使用者時,他執行Drop Database操作時,系統會報沒有權限。但是如果使用者将drop database封裝到一個函數,并且把權限設定為上述模式,同時使用者将它僞裝為一個常見視圖,當某位權限較大的使用者,如DBA管理者上線看見這個視圖并被迷惑且同意該操作後,則會完成Drop Database操作,造成重大損失。

阿裡雲PG解決了這樣的問題,這樣的函數陷阱在阿裡雲雲端資料庫是不存在的。

我們還支援保護模式,最高可靠、最高可用模式,這些在PG社群版本裡面是不支援的。這意味着我們可以在兩節點裡實作全同步、半同步以及異步的效果,滿足了不同行業對資料庫可靠性的要求。

關于Slot Failover。使用者在用一個開源資料庫時,通常會用資料庫的流複制做HA,在主節點裡建立Slot做邏輯複制,例如業務裡的某些表希望同步到另外的B業務中,隻需要同步若幹表而不是所有的資料。包括做增量的資料遷移、資料同步或異構同步,比如我要把你資料庫裡的資料同步到我們的消息隊列,然後再通過消息隊列同步到其他業務,這是目前業界非常通用的做法。

如果是以上情況,在PG社群版本一旦主備發生切換,Slot位點會丢失,因為在從庫裡沒有那個位點,進而導緻業務上的故障。

阿裡PG在主庫裡面建立Slot會同步到從庫,進而保證發生HA時Slot的資訊不會丢失,進而解決了把資料庫裡的資料增量同步到其他業務的問題。

(四)MyBase

有些使用者擔心使用RDS後不過自由,那麼PG引擎的MyBase是個不錯的選擇,它開放了OS權限,允許使用者原來的系統整合到新系統,堪稱RDS PLUS。

  • MyBase具備以下特點:

1)既要: 全自動(DB全生命周期管理,自動化運維、診斷),解放雙手

-救DBA于水火

2)又要: 自主可控,随心所欲

-開放OS權限開放資料庫ROOT使用者

-開放排程政策,自定義超賣,實作超高成本效益

3)還要:低成本、可定制、有核心兜(背)底(鍋)

-核心Bug快速Fix,提新功能需求有研發支援。