兌吧:從自建HBase遷移到阿里雲HBase實戰經驗

既然MySQL 8和PostgreSQL 10已經發布了,如今是時候回顧一下這兩大開源關係型數據庫是如何彼此競爭的。算法

在這些版本以前,人們廣泛認爲,Postgres在功能集表現更出色,也因其「學院派」風格而備受稱讚,MySQL則更善長大規模併發讀/寫。數據庫

可是隨着它們最新版本的發佈,二者之間的差距明顯變小了。網絡

特性比較架構

首先來看看咱們都喜歡談論的「時髦」功能。併發

業務介紹

兌吧集團包含兌吧網絡和推啊網絡,兌吧網絡是一家致力於幫助互聯網企業提高運營效率的用戶運營服務平臺,提供積分商城和媒體運營服務。推啊網絡是一家互動式廣告平臺,通過多年的探索與實踐,獨創了全新的移動廣告模式,實現了廣告主、媒體、用戶多方雙贏。在推啊的廣告場景中,廣告主可得到更好的投放效果,媒體方能獲得更好的流量變現效率,受衆端具備更好的用戶體驗,目前推啊已經服務超過15000家媒體,阿里雲hbase主要服務於"推啊"的廣告業務。運維

"推啊"的總體業務流程以下圖:函數

_

總體產品架構

廣告平臺基礎架構完善,能有效支持業務,其中核心數據平臺爲公司全部業務提供強有力的數據支撐。其中整個數據平臺根據處理業務不一樣大體分爲3個模塊:阿里雲

  • 離線統計模塊:對數據進行離線統計,提供報表和相應的後臺數據分析
  • 實時統計模塊:實時數據主要用來對接算法,用於統計用戶的實時行爲,好比對不一樣廣告的曝光,點擊等行爲,要求快速計算響應,因此咱們採用低延遲的流式計算
  • 實時OLAP分析模塊:多維實時分析,定位是提供分鐘粒度的統計數據,主要用於任意維度和指標的統計

HBase在"推啊"使用場景

HBase在推啊主要用於流式數據統計,存儲用戶畫像的相關數據,屬於實時統計模塊中主要存儲。
實時統計時,對用戶的行爲數據根據不一樣維度不一樣指標進行統計,好比會記錄用戶在不一樣廣告上的曝光,點擊,參與等數據,也會記錄用戶的相應屬性,好比用戶對哪類廣告比較感興趣,用戶的年齡,性別,職業,愛好等特徵。這些數據所有存儲在HBase集羣中。spa

爲何從物理HBase遷移到阿里雲HBase

最開始咱們是物理機房自建HBase,選擇阿里雲HBase主要出於如下幾個考慮:blog

  1. 雲HBase服務基本免運維。減輕運維和系統調優壓力,由阿里雲hbase專家團隊提供專業的運維服務。
  2. HBase基礎設施重要性高。HBase做爲底層存儲系統,一旦出現系統故障,排查週期長,難度高,短期內難以解決,直接影響到線上系統的穩定性,在這方面阿里雲Hbase能提供強大的技術支撐,阿里雲有國內最強大的內核團隊,據瞭解阿里目前有3個pmc,6個committer,是中國擁有最多HBase committer的公司。
  3. 雲HBase服務好。在使用Hbase上有任何疑問均可以直接諮詢阿里雲Hbase同窗,他們響應及時,服務周到,能給出專業的建議。

整個遷移實戰過程

根據咱們業務的發展,從3個階段闡述下阿里雲hbase的使用狀況以及遇到的問題

MySQL 8 PostgreSQL 10
查詢 & 分析    
公用表表達式 (CTEs) New  
窗口函數 New  
數據類型    
JSON支持 Improved  
GIS / SRS Improved  
全文檢索    
可擴展性    
邏輯複製   New
半同步複製   New
聲明式分區   New

過去常常會說MySQL最適合在線事務,PostgreSQL最適合分析流程,但如今不是了。

公共表表達式(CTEs)和窗口函數是選擇PostgreSQL的主要緣由。可是如今,經過引用同一個表中的boss_id來遞歸地遍歷一張僱員表,或者在一個排序的結果中找到一箇中值(或50%),這在MySQL上再也不是問題。

在PostgreSQL中進行復制缺少配置靈活性,這就是Uber轉向MySQL的緣由。可是如今,有了邏輯複製特性,就能夠經過建立一個新版本的Postgres並切換到它來實現零停機升級。在一個巨大的時間序列事件表中截斷一個陳舊的分區也要容易得多。

就特性而言,這兩個數據庫如今都是一致的。

相關文章
相關標籤/搜索