《在MySQL和PostgreSQL之外,為什么阿里要研發HybridDB數據庫?》要點:
本文介紹了在MySQL和PostgreSQL之外,為什么阿里要研發HybridDB數據庫?,希望對您有用。如果有疑問,可以聯系我們。
相關主題:PostgreSQL教程
作者:蕭少聰
編纂:木環
“
好好用MySQL和PostgreSQL不就行了?為啥阿里要勞神費力地又基于Greenplum的開源版本研發HybridDB計劃?HybridDB計劃深究之下,有什么技術細節與故事?
編者按
先來講講OLTP和OLAP
數據庫領域中大家常常會看到兩個詞:OLTP及OLAP.
舉例說明,好比進行一次交易,資金從A帳戶轉帳到B帳戶,這整個過程就是一次交易事務.如果過程中有任何系統錯誤,交易會回滾A帳戶中的金額都回恢到操作前的狀態,這就是On-Line Transaction Processing聯機事務處理過程(OLTP)的操作.在OLTP場景中用戶并發操作量會很大,要求系統實時進行數據操作的響應,在查詢時往往也是只會檢索一條或幾條明確的目標數據,以實現用戶的業務交互.
OLAP意思是On-Line Analytical Processing聯機分析處理,顧名思義就是主要針對于數據的分析匯總操作.如我們的業務系統中每天都必要出銷售日報,這個操作必要對當天所有數據進行匯總,并必要進行計算,以得到全天收入、產品銷售排名、分時段的銷售量,甚至與過去30天及去年當天進行對比,這樣的操作都屬于OLAP.
業界早期使用數據時,尤其是OLTP場景下,通常選擇非分布式的關系型數據庫,如MySQL、SQLServer、Oracle、PostgreSQL即可滿足年夜部份的需求.
OLAP中主流數據庫遭受瓶頸
已有的兩個主流開源數據庫,MySQL和PostgreSQL都是針對OLTP環境的,在OLAP在線分析需求下它們的性能明顯不敷.特別是MySQL在大規模分析操作時多表Join的性能是當前互聯網用戶的一大痛點.
在OLAP發展的早期,其操作并沒有專門的數據庫支撐,直接就與OLTP業務放在同一個數據庫中完成.但隨著業務量的增加,OLAP每次要分析的數據量越來越大,這樣的分析操作執行時就會導致數據庫的業務交易下降.因此業界開始將OLTP、OLAP拆分成兩套分歧的數據庫進行處理,OLTP數據庫中的數據通過ETL軟件持續或定期抽取到OLAP數據庫,讓業務交易與報表分析進行分離.
而新的問題很快又到來了,聯互網爆發后數據量也激增,OLTP的業務庫可以保留比較少的數據量如3個月到半年,但OLAP的數據量將可能要保留幾年甚至更多.單臺服務服務的性能上限已經無法滿足OLAP分析數據持續增加所帶來的壓力,因此催生出如阿里HybridDB這樣的大規模并行處理(Massive Parallel Processing,MPP)分布式OLAP數據庫.
新的散布式OLAP數據庫
在提供HybridDB方案之前,我們會給用戶提供如分庫分表等處理方案,但這樣的方案對于SQL查詢內容不確定的OLAP業務并不友好.當用戶必要進行多個數據表的組合操作時,由于數據必要跨服務器進行大規模的聚合,性能十分低下.
這個問題在HybridDB中也同樣會出現,所幸的是,Greenplum Database開源項目中借助平行的數據擴展技術及interconnect的專用協議,通過自定義的網絡協議有效地辦理了網絡瓶頸的問題.這也是我們選擇基于Greenplum Database開源項目的原因之一.
MPP分布式OLAP數據庫系統架構已經發展了有10多年之久,十分成熟,當前使用這類系統的企業都是中大型公司.OLAP是一個很大的市場,有別于如同EMR(Hadoop)的大數據分析市場,它要求海量數據的SQL查詢在幾分鐘、幾秒,甚至毫秒級返回結果,因此對于服務器、網絡及數據庫軟件自己的架構都提出了很高的要求.
技術攻堅之路
揭秘HybridDB計劃
HybridDB基于開源Greenplum Database(內核實際上就是PostgreSQL)項目的MPP分布式數據倉庫,與PostgreSQL不同,HybridDB可以實現橫向擴展,提供用戶必要的百GB到百TB的高性能分析能力.
在阿里云官網上,HybridDB 歸結在 “數據庫” 和 “闡發” 兩個類目.阿里內部已經有業務開始使用 HybridDB ,主要是看重它對SQL的豐富支持,同時可以支持GIS數據類型及基于事務一致性的存儲過程.
HybridDB最年夜的三個特色:
基于成熟的GPDB及PostgreSQL生態,軟開發合作伙伴進行一次軟件開發,即可在云上云下同樣使用,免去遷移的懊惱,更容易實現混合云中的數據分析支持.
支持多種混合數據類型(多達23種)的SQL統一查詢,包含:
傳統數據類型:字符、數字、浮點、日期等;
非布局化數據:JSON、XML;
特殊功能數據類型:GIS地理信息數據、IPv4/v6網絡數據、HyperLogLog預估闡發數據.
支持混合的數據存儲,包含:行存、列存、SSD/HDD本地存儲、OSS云存儲,未來更將支持“存儲計算分離”,用戶可以更為靈活在進行資源的購買及分配.
那么,HybridDB在OLAP讀取中都做了哪些優化?
除此之外,HybridDB還有哪些新意?
數據存儲
當地存儲
外部存儲
高性能的數據分析是在當地存儲完成的.OSS作為外部存儲,HybridDB可以將OSS中的CSV格式化文本作為外部表進行數據查詢,同時還可以對這些外部表進行寫入操作.寫入到OSS的數據可以提供給RDS for PostgreSQL或EMR等云數據庫服務進行讀取及處理,因此也同時實現了數據的無縫打通.
同時我們也將支持“存儲計算分析”的模型,在這樣模型上我們平時甚至可以只通過OSS進行數據的存儲,當需要進行計算時再開啟足夠的計算節點進行數據分析處理,計算處理結束后關閉計算節點資源以節省使用本錢.
HybridDB的幕后故事
扎根社區
在Greenplum Database的開源社區我們會有很多的合作,甚至我們已經在向開源社區提交新功能及patch.同時Greenplum也是PostgreSQL開源數據庫生態重要的力量,我小我同時作為PostgreSQL中國社區及用戶會的主席也當然會進行更多線上線下活動的支持.
商業互助
Greenplum背后的公司是Pivotal.所以同時也與Pivotal有更多的商業合作.阿里也會與Pivotal方面進行連續的接觸,相信我們會有機會碰出絢麗的火花.
寫在末了
長期以來國外開源社區都認為中國用戶僅僅使用開源軟件,但是貢獻甚少.不外,隨著阿里的發展,我們已經開始反哺開源社區并共同建立生態.幾個月前,AliSQL的開源說明了阿里對開源業界的支持.HybridDB同樣如此,雖然我們的版本才剛剛發布,但在版本研發的過程中已經開始向社區共享代碼.
阿里云當前支持云數據庫HybridDB,暫時沒有計劃去支持私有環境的Greenplum數據庫.不過我們團隊的大神德哥,會繼續貢獻他在使用Greenplum的經驗心得.希望對大家有所贊助.
用戶在線下可以使用Greenplum的開源數據庫版本或商業版本,據我所了解也已經有很多數據庫服務商開始提供Greenplum的技術支持,使用這個數據庫的用戶不需要再擔心未來上云遷移的問題.同時,我們也會在未來結合PostgreSQL及HybridDB提供一系列的使用教學視頻,讓用戶更快速地掌握產品的正確使用場景及辦法.
作者簡介
蕭少聰,Postgres中國社區/中國用戶會主席,阿里云計算有限公司 ApsaraDB云數據庫產品專家.紅帽認證RHCA架構師/EDB認證PostgreSQL數據庫專家,介入的著作有《Linux系統案例精解》、《深入理解大數據》.在阿里主要負責PostgreSQL數據庫產品線.
擁有多年開發、架構設計及項目治理經驗,專注于開源Linux系統治理及Postgres數據庫、優化、集群系統、云架構設計.
今日薦文
點擊下方圖片即可瀏覽
喜歡咱們的會點贊,愛咱們的會分享!
歡迎參與《在MySQL和PostgreSQL之外,為什么阿里要研發HybridDB數據庫?》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/9191.html