從阿里HybridDB看資料庫選擇的新方向

2020-12-15 IT168

  【IT168 評論】時至臘月,資料庫界最勁爆的消息當屬阿里雲發布的雲資料庫HybridDB線上產品,HybridDB是基於資料庫Greenplum的開源版本研發。阿里好好地用MySQL和PostgreSQL不就行了?為啥要勞神費力地又基於Greenplum的開源版本研發HybridDB方案?專家認為,大數據時代MySQL和PostgreSQL已經無法支撐海量數據多維度的OLAP分析處理技術,並且,已有的兩個主流開源資料庫MySQL和PostgreSQL主要針對的是OLTP環境,在OLAP在線分析需求下的性能明顯不足。尤其是MySQL在大規模分析操作時多表Join的性能是當前網際網路用戶的一大痛點。

  從技術角度而言,OLAP場景不僅涉及的數據量要大而且要求分析的結果也要實時返回,那麼,相應的SQL查詢也就越來越複雜。技術指標上,除了支持複雜的數據類型外,還要能滿足海量數據的實時分析,對於資料庫而言是一個非常重大的考驗。阿里已經在往這方面思考和行動,對於星瑞格軟體的資料庫(Sinoregal DS)來說,已早已支持OLTP+OLAP混和型的數據倉庫。不管是雲上或雲下,都是同一類型資料庫,相較於HybridDB,Sinoregal DS數據的交換就簡單多了,不需要考慮數據型態不同的轉換問題,而在開發與運維方面更是優勢,因為只有一種類型的資料庫。那麼,Sinoregal DS到底是怎麼做到的?

  什麼是OLTP及OLAP

  在討論Sinoregal DS到底是怎麼做的之前,我們先來談一談OLTP和OLAP是什麼?聯機事務處理(OLTP-On-Line Transaction Processing)是以在線交易的方式處理一般即時性的作業數據,OLTP通常被運用於自動化的數據處理工作,比如:訂單輸入、金融業務等需要反覆性日常性的交易活動。在OLTP的操作場景中,用戶的並發操作量會非常大,系統實時進行數據操作且必須快速響應,查詢作業通常只會檢索少量條數據,以此來實現用戶的業務交互。OLTP在各行各業的應用非常多,如銀行、保險、電信等,這些行業的資料庫在OLTP上的應用技術已經相對成熟。

  在線分析處理(OLAP:On-Line Analytical Processing),是一套以多維度的方式來分析數據,能彈性地提供積存(Roll-up)、下鑽(Drill-down)、和樞紐分析(pivot)等操作,多用於決策支持系統、商務智能或數據倉庫。其主要的功能,在於方便大規模數據分析及計算,對決策提供參考。

  早期的數據分析,並沒有專門的、獨立的資料庫支撐,一般是直接與OLTP業務放在同一個資料庫中完成。但隨著數據量與業務量的增長,OLAP這類的分析操作在執行時會影響到OLTP業務交易性能下降。因此,業界開始將OLTP、OLAP拆分成兩套不同的資料庫進行處理。並且,這兩類資料庫對數據的處理方式也不同,OLAP資料庫數據來源通常來自OLTP資料庫,通過應用程式或ETL軟體持續或定期抽取資料庫,讓業務交易與報表分析進行分離。隨著網際網路時代的到來,數據量激增,OLAP業務所要分析的數據量也隨著時間積累而增多,單臺伺服器的性能已經無法滿足OLAP分析海量數據時所帶來的壓力,因此也催生出可以支持大規模並行處理(Massive Parallel Processing,MPP)的分布式數據倉庫。

  MPP分布式數據倉庫基本上可以看成是一種高性能擴張,每個節點可處理的數據量及計算能力需要支持橫向擴展,而且要保障性能,也就是用戶如果是在數百GB的數據量下,可以在秒級別內查詢出結果,那麼將數據量平衡擴展多個節點到TB甚至PB時,相同對比的查詢依然可以達到秒級別的響應速度,不會因為數據量的增加而影響查詢速度。OLAP通常要求海量數據的查詢在幾分鐘、幾秒,甚至毫秒級返回結果,因此,對於伺服器、網絡及資料庫的架構都提出了很高的要求,而這些Sinoregal DS早就已經支持了。

  Sinoregal DS完全滿足OLTP+OLAP應用

  Sinoregal DS配上獨有的數據倉庫加速引擎(SWA-Sinoregal Warehouse Accelator),即可處理OLTP應用,更可以打造企業單一類型資料庫與數據倉庫服務平臺;即可作為聯機事物業務的處理,也可以服務海量數據分析型業務。原本用戶在數十億筆數據表上的查詢需要花30多分鐘完成,而使用SWA後只需要幾秒就能完成,在沒有進行任何查詢優化或應用程式的修改下,性能可以提升數百倍甚至千倍。其實,SWA就是設計來處理秒級別的海量數據分析的加速引擎,不需要對應用程式作任何修改,也不需要額外的維護成本,同時,由於是相同的資料庫引擎,也不需要為異構資料庫煩惱。

  那麼,SWA創新的關鍵在哪裡?SWA是內存資料庫,內存訪問速度和磁碟訪問速度之間的差距隨著時間的推移越來越大。在過去,內存的價格昂貴,因此傳統資料庫系統使用的內存較少,用戶需要通過減少磁碟I/O 量和緩存技術來對傳統資料庫系統進行優化。隨著內存價格的不斷下降,用戶已經可以承受TB 級內存的價格。現在,商用伺服器現已可支持TB 級的內存,所以SWA 順應這一趨勢,在內存中壓縮、存儲所有數據,消除了磁碟I/O。現今CPU 處理器有更多的核(core)和更大的處理器內置緩存。於是,SWA 加大並行度,減少進程間的同步,使用更好的算法以充分利用處理器內置緩存。這些技術將查詢性能提升到一個新的高度。這些技術使得SWA成為一個簡單且優雅的設計。使用星瑞格數據倉庫加速器有3 個特點:

  不需要進行手工調優

  支持已有業務工具和應用

  與現有的資料庫架構共同工作

  數據倉庫加速器工作原理

  如下圖所示,採用Sinoregal DS資料庫作為數據倉庫伺服器,用戶詳細的分析數據保存於此,用戶可以基於該數據進行趨勢分析、輔助決策、業務優化等各式各樣分析;並在方案中增加數據倉庫加速器,SWA可以部署在單臺或多臺基於Linux 伺服器上以此形成集群,同時與數據倉庫伺服器進行溝通,通過將定義的數據集市數據壓縮並完全保存在內存中來極速提高數據倉庫查詢效率。

  當數據集市部署到SWA後,需要裝載數據到數據集市中。數據從Sinoregal DS資料庫裝載到SWA時,SWA會自動對數據進行壓縮、並按照頻度分區方法對壓縮數據進行分區並存儲在內存中。當用戶向Sinoregal DS資料庫發出查詢請求時,資料庫優化路由器評估用戶查詢請求,並且將其自動匹配,如果滿足條件,該查詢請求將被路由到SWA中來加速數據查詢,並將查詢結果返回給Sinoregal DS資料庫,最終返回給應用程式。

  數據倉庫加速器除了內存資料庫外還有哪些關鍵技術特點:

  1. 深度數據壓縮

  SWA採用哈夫曼編碼對數據進行壓縮,基本可以達到3:1以上的壓縮比,可以保證將數據集市的數據全部保存到內存中。

  2. 深度列式存儲技術

  深度列式存儲技術比傳統的列式存儲技術更優。有了「深度列式存儲技術」和「處於壓縮態的數據無需解壓縮就可被處理的技術」後,查詢處理時不再需要磁碟I/O,內存數據倉庫成為現實。列式存儲技術將同一數據列的各個值存放在一起。由於同一數據列的各個值存放在一起,我們可以得到更高的壓縮比率。OLAP 類型的查詢只對事實表中的少量數據列感興趣。如果使用的資料庫是列式存儲數據,您可以只讀取關注「數據列」的「數據頁」。對於存取大量數據行和少量數據列的查詢來說,列式存儲可以大大改進效率。

  3. 頻度分區技術

  SWA對數據集市裡的每個數據表,通過分析一個或多個數據列裡經常出現的值,將緊密相關的一些數據列組成一個數據值組(tuplet)。在上面的圖示中,產品(product)和產地(origin)這兩個數據列緊密相關,所以將這兩個數據列組成一個數據值組。哈夫曼編碼(Huffman encoding)的好處是用「最少的數據位」對「最經常出現的值」進行編碼。也就是說緊密相關的數據會聚攏在一起,這項技術改進了壓縮的效率,並且可被用於判斷數據值組是否滿足查詢語句中的過濾條件,提供分區排除功能。由於對查詢語句的處理是基於壓縮的數據,處理的速度將非常快速。

  4. 高度並發與高效掃描

  高度並發與高效的掃描為快速的查詢處理建立了堅實的基礎。為了充分的利用CPU資源,SWA可以動態的產生合適數量的高並發線程。而掃描操作是基於被壓縮的數據,主要利用了哈夫曼編碼的優勢。「判斷是否滿足過濾條件」和「group by」是基於被壓縮的數據的,而聚合函數(例如求平均值)是基於解壓縮後的數據的。哈夫曼編碼技術還具有密集哈希函數(dense hash function)的作用,從而使得整個哈希表可以被緩存進CPU的L2 Cache中,因此查找速度非常快。#FormatImgID_4#

  星瑞格資料庫混和應用平臺架構

  星瑞格資料庫混和應用平臺架構如下圖:

  星瑞格資料庫混和應用平臺優勢:

  1. 單一類型資料庫

  數據倉庫的數據會有許多來源,源數據除了來自聯機事物處理的核心業務資料庫外,在網際網路、物聯網快速發展的時代還會有許多各式各樣類型的數據生成,比如說訪問軌跡或傳感器回傳數據,如果這些數據都採用單一類型資料庫處理,在數據交換上相對簡單的多,可以省去複雜的異構數據轉換。

  2. 響應速度快

  星瑞格數據倉庫加速器SWA具備分布式架構、內存資料庫、深度壓縮與列式存儲等多項技術優勢,可以加速分析型查詢,在海量數據下仍能保障快速秒級響應速度。

  3. 分布式架構

  星瑞格數據倉庫加速器SWA可以採用單臺伺服器或多臺伺服器形成集群來部署,集群節點可彈性擴充,足以因應大數據分析應用。

  4. 開發與運維成本低

  星瑞格資料庫Sinoregal DS與數據倉庫加速器SWA是同屬星瑞格資料庫家族產品,SWA是為星瑞格資料庫加速分析查詢而誕生,兩者緊密結合,架構單存,部署簡易,投入的開發與運維成本相對較低。#FormatImgID_6#

  結論

  阿里發布了HybridDB方案, 在星瑞格看來,對IT界看到的是資料庫新的選擇方向,星瑞格資料庫早已可以支持OLTP和OLAP的業務,對於海量數據的查詢搭配了數據倉庫加速器(SWA)快速響應技術,我們將星瑞格資料庫與阿里HybridDB的技術做個對比:

  1. 數據類型支持

  阿里HybridDB支持多種混合數據類型的SQL統一查詢,包括:傳統數據類型如:字符、數字、浮點、日期等與非結構化數據:JSON、XML、GIS地理信息數據等,這些數據類型Sinoregal DS早已支持,另外Sinoregal DS還內置了時間序列處理引擎,響應物聯網生成的與時間相關數據的處理,不但可以節省存儲空間,也可以加快時間序列數據的計算。

  2. 存儲支持

  阿里HybridDB支持混合的數據存儲,包括:行存、列存、SSD/HDD本地存儲、OSS雲存儲; 相較Sinoregal DS而言,存儲使用技術上早已成熟,存儲空間使用本地或雲端存儲都沒問題,為了省去作業系統對IO的開銷,更支持裸設備,行式、列式也能支持,甚至還可以做深度壓縮,不但空間使用優化了,查詢速度也大大提升。

  3. 資料庫類型

  阿里HybridDB為了應對海量數據分析,引進了Greenplum支持, 就整體而言是加上MySQL、PostgreSQL三種類型資料庫兜在一起,這樣的運維與開發成本勢必相對提高,技術的養成成本也會提高。相較星瑞格資料庫,單一類型資料庫支持聯機型事物處理,也支持海量數據分析,而且有高擴展性和快速響應機制。

  綜觀上述企業,如果想要打造海量數據分析平臺,不論是部署在雲上還是雲下,採用星瑞格資料庫是一個非常好的選擇。

相關焦點

  • DB-Engines: 2016 年全球資料庫排名塵埃落定
    而第11-20名的資料庫排名幾乎都發生了變化。具體情況請看前 20 名排名情況:完整排名請看這裡:http://db-engines.com/en/ranking作為今年最後一個月的排行榜,2016年全球資料庫的排名基本塵埃落定,下面文章將從前五名的趨勢圖縱觀其近年來的變化趨勢:
  • DB-Engines 2020 年度資料庫:PostgreSQL
    DB-Engines 是全球知名的資料庫流行度排行榜網站,它評選年度資料庫的標準十分簡單:計算資料庫當前最新流行度分數(2021年1月)的同比增長量,分數增長最多的即為年度資料庫。年度 DBMS:PostgreSQLPostgreSQL 曾獲得2017和2018的「年度資料庫」稱號,所以它也是首個三次獲此殊榮的資料庫。
  • 選庫命令(db/patent)與 (db/all) 的區別
    為了方便大家一次檢索出所有除去非專利文獻和專利翻譯文本的專利文獻,我們特別為大家提供一個資料庫選庫命令(db/patent),幫助大家在檢索時減少繁瑣的選庫流程。大家知道在patentics中選庫欄位為db/,在db/後面添加各資料庫代碼即選擇在某種資料庫中進行數據檢索。例如db/cn表示選擇在中國庫(包括中國發明實用庫(發明申請與實用新型)、中國發明授權庫和中國外觀庫)中進行檢索。
  • 雲時代的分布式資料庫:阿里分布式資料庫服務DRDS
    伴隨著這種對於系統性能、成本以及擴展性的新需要,以HBase、MongoDB為代表的NoSQL資料庫和以阿里DRDS、VoltDB、ScaleBase為代表的分布式NewSQL資料庫如雨後春筍般不斷湧現出來。本文將會介紹阿里DRDS的技術理念、發展歷程、技術特性等內容。
  • 阿里資料庫真的超過Oracle了麼?
    國慶期間,一則「阿里資料庫成績刷新Oracle塵封九年記錄」消息蔓延,讓不少行外人士為之一振。事情是這樣的:螞蟻金服自主研發的金融級分布式關係資料庫 OceanBase,不久前在被譽為「資料庫領域世界盃」的 TPC-C 基準測試中打破了由美國公司 Oracle(甲骨文)保持了 9 年之久的世界記錄,成為首個登頂該榜單的中國資料庫產品。
  • CallidusCloud 收購多模型資料庫技術 OrientDB
    CallidusCloud 公司是全球雲銷售、市場營銷、學習和客戶體驗解決方案的翹楚,於加州都柏林時間 2017 年 9 月 19 日,宣布收購領先的多模型資料庫技術 OrientDB。OrientDB 是首個多模型開源 NoSQL 資料庫,將圖支持、文件、關鍵值、地理空間、面向對象和反應式的模型相結合,成為一個可擴充的資料庫。
  • 40db混合降噪關於本機藍牙耳機拆解細節對比講解 國貨當自強!
    憋說話,先看視頻40db混合降噪關於本機藍牙耳機對比講解140db混合降噪關於本機藍牙耳機對比講解240db混合降噪關於本機藍牙耳機對比講解3聽了月亮(windrealns)的講解,想必大家已經基本清楚了這款耳機的性能,月亮之前就寫了32db耳機的測評,請看這裡32db降噪九成通透的關於本機版本耳機確實有點東西!
  • 蘋果重新開源分布式資料庫FoundationDB,已在內部使用三年
    在 FoundationDB 公司,我們的初衷在於利用 FoundationDB 編寫出多種不同資料庫前端,且其分別使用不同的數據模型與查詢語言(包括 SQL 資料庫、文檔資料庫等),且保證這些語言將數據存儲在同一底層系統之內。在此基礎上,客戶可以隨意選擇自己需要的資料庫前端,甚至同時選取多種,但仍只需面對同一種分布式資料庫方案。這樣的思路無疑富有遠見。
  • 阿里OceanBase創紀錄衛冕,中國資料庫從此告別卡脖子
    這對傳統的集中式資料庫,根本無法想像。所以在產業領域,分布式資料庫解決了傳統資料庫幾十年的難題,標誌著資料庫行業迎來了新一輪技術變革。TPC-C,被譽為「資料庫領域的世界盃」。是全球主流計算機硬體廠商、資料庫廠商公認的性能評價標準,其對資料庫系統的軟硬體協同能力要求極高。
  • 對話阿里達摩院李飛飛:3次涅槃,阿里資料庫的自研路
    到了雲的時代,阿里雲的業務快速發展,加上在集團業務裡面,傳統的分布分表中間件的解決方案,已經不能滿足(簡單業務可以)業務越來越複雜以後的挑戰,內部自研一款雲原生資料庫已經迫在眉睫。POLARDB就順勢而生了。雲資料庫POLARDB是何新物種?
  • IBM DB2 資料庫使用小技巧
    查看本地資料庫目錄     db2   list   database   directory   on   <盤符>     在本地資料庫目錄中有而系統資料庫目錄中沒有的資料庫不能訪問,可以在控制中心中選中 <資料庫> 右鍵單擊選擇添加,然後輸入需要添加的資料庫名稱或者點擊刷新按鈕選擇資料庫,加入資料庫後即可以訪問。 6.
  • 五個常見 PHP 資料庫問題
    揭露PHP應用程式中出現的五個常見資料庫問題——包括資料庫模式設計、資料庫訪問和使用資料庫的業務邏輯代碼——以及它們的解決方案。如果只有一種方式使用資料庫是正確的……您可以用很多的方式創建資料庫設計、資料庫訪問和基於資料庫的PHP業務邏輯代碼,但最終一般以錯誤告終。
  • 國產最強的三大資料庫:華為、阿里、中興產品在列
    而說起資料庫軟體,大家最熟悉的是甲骨文的oracle,也確實是鼎鼎大名了,當時差不多大型資料庫軟體都是使用的它,由此誕生了很多和oracle相關的崗位和職位。不過,這些年各種資料庫崛起,尤其是國產資料庫我的崛起,國內很多金融、電信級的大企業已經不再使用oralce的資料庫,轉而使用起了國產資料庫了。
  • 華為:AI-Native分布式資料庫GaussDB——2020年6月開源
    簡介華為GaussDB是一個企業級AI-Native分布式資料庫。華為GaussDB將AI能力植入到資料庫內核的架構和算法中,為用戶提供更高性能、更高可用、更多算力支持的分布式資料庫。特點高可靠全組件HA,無單點故障。
  • Hybrid APP架構設計思路
    所以基於這兩點,打開的界面都是Native的導航組件+webview來組成,這樣即使H5加載失敗或者太慢用戶可以選擇直接關閉。H5離線訪問之所以選擇hybrid方式來開發,其中一個原因就是要解決webapp訪問慢的問題。即使我們的H5性能優化做的再好伺服器在牛逼,碰到蝸牛一樣的運營商網絡你也沒轍,有時候還會碰到流氓運營商再給webapp插點廣告。。。哎說多了都是淚。離線訪問,顧名思義就是將H5預先放到用戶手機,這樣訪問時就不會再走網絡從而做到看起來和Native APP一樣的快了。
  • 雲原生、存算一體、持久化,阿里雲內存資料庫Tair出世不凡
    阿里天貓系統再次通過這場一年一度的「大考」。在每年的「大考」中,是否能平穩地應對訂單高峰時的流量,系統不崩潰、用戶體驗不下降,是通過「考試」的關鍵,為此,阿里的技術人員一直持續不斷地研發技術、打磨產品,雲原生內存資料庫Tair就是其中最關鍵的產品之一。
  • 除了華為、阿里自研資料庫,還有哪些國產資料庫?發展狀況如何?
    2019年5月,華為將磨礪了12年之久的GaussDB 資料庫發布,並率先通過了中金國盛金融行業標準符合性試點測評。10月,國務事務處理性能委員會公布的性能測試結果,在TPC-C基準測試中阿里的OceanBase 打破了由 Oracle 保持了9年的世界紀錄,一時引發了行業熱議。
  • 誰在覬覦百億美金資料庫市場?阿里、甲骨文和華為演繹的「功守道」
    本篇文章以阿里、甲骨文和華為舉例,阿里是國內雲資料庫執牛耳者,甲骨文是傳統商業資料庫廠商的代表,華為則剛剛發布了全球首款AI-Native資料庫,雲計算大潮下資料庫廠商如何自持?回到雲計算興起之前,以甲骨文為代表的 IOE 陣營(IBM提供伺服器,Oracle提供資料庫軟體,EMC提供存儲)形成一套由軟及硬的資料庫系統,也是當時為數不多的穩妥選擇。
  • 2020 年 3 月資料庫排行:排名前十資料庫 Oracle/MySQL 下降分數最多
    DB-Engines 資料庫流行度排行榜 3 月更新已發布,排名前二十如下:最後看看每種資料庫的排名情況。Key-Value 資料庫前 10 名如下:>Google 以及 Bing 搜尋引擎的關鍵字搜索數量Google Trends 的搜索數量Indeed 網站中的職位搜索量LinkedIn 中提到關鍵字的個人資料數Stackoverflow 上相關的問題和關注者數量這份榜單分析旨在為資料庫相關從業人員提供一個技術方向的參考
  • 全球最難資料庫性能排行榜出爐 阿里雲AnalyticDB拿下雙料冠軍
    由於傳統資料庫廠商對分布式和並行能力的支持欠佳,該榜單自2006年公布以來,還沒有一家傳統資料庫廠商能通過測試,目前也僅有3家企業上榜。   在TPC-DS基準測試中,阿里雲AnalyticDB跑出了1489萬QphDS的高分,是同類產品的3倍以上。