1. 程式人生 > >大數據時代數據庫-雲HBase架構&生態&實踐

大數據時代數據庫-雲HBase架構&生態&實踐

數據庫

摘要: 2018第九屆中國數據庫技術大會,阿裏雲高級技術專家、架構師封神(曹龍)帶來題為大數據時代數據庫-雲HBase架構&生態&實踐的演講。主要內容有三個方面:首先介紹了業務挑戰帶來的架構演進,其次分析了ApsaraDB HBase及生態,最後分享了大數據數據庫的實際案例。

2018第九屆中國數據庫技術大會,阿裏雲高級技術專家、架構師封神(曹龍)帶來題為大數據時代數據庫-雲HBase架構&生態&實踐的演講。主要內容有三個方面:首先介紹了業務挑戰帶來的架構演進,其次分析了ApsaraDB HBase及生態,最後分享了大數據數據庫的實際案例。

直播視頻回顧
PPT下載請點擊

以下是精彩視頻內容整理:

業務的挑戰

存儲量量/並發計算增大

技術分享圖片
現如今大量的中小型公司並沒有大規模的數據,如果一家公司的數據量超過100T,且能通過數據產生新的價值,基本可以說是大數據公司了 。起初,一個創業公司的基本思路就是首先架構一個或者幾個ECS,後面加入MySQL,如果有圖片需求還可加入磁盤,該架構的基本能力包括事務、存儲、索引和計算力。隨著公司的慢慢發展,數據量在不斷地增大,其通過MySQL及磁盤基本無法滿足需求,只有分布式化。 這個時候MySQL變成了HBase,檢索變成了Solr/ES,再ECS提供的計算力變成了Spark。但這也會面臨存儲量大且存儲成本高等問題。

技術分享圖片
另外一個趨勢就是非結構化的數據越來越多,數據結構的模式不僅僅是SQL,時序、時空、graph模式也越來越多,需要一些新的存儲結構或新的算法去解決這類問題,也意味著所需要做的工程量就會相對較高。

引入更多的數據

對於數據處理大致可歸類為四個方面,分別是復雜性、靈活性、延遲<讀,寫>和分布式,其中分布式肯定是不可少的,一旦缺少分布式就無法解決大規模問題 。靈活性的意思是業務可以任意改變的;復雜性就是運行一條SQL能夠訪問多少數據或者說SQL是否復雜;延遲也可分為讀與寫的延遲。Hadoop & Spark可以解決計算復雜性和靈活性,但是解決不了延遲的問題;HBase&分布式索引、分布式數據庫可以解決靈活性與延遲的問題,但由於它沒有很多計算節點,所以解決不了計算復雜性的問題。Kylin(滿足讀延遲)在計算復雜性與延遲之間找了一個平衡點,這個平衡點就是怎樣快速出報表,但對於這個結果的輸入時間我們並不關心,對於大部分的報表類的需求就是這樣的。每個引擎都是一定的側重,沒有銀彈!

ApsaraDB HBase產品架構及改進

應對的辦法

我們也不能解決所有的問題,我們只是解決其中大部分的問題。如何找到一個在工程上能夠解決大部分問題的方案至關重要,應對辦法:

  • 分布式:提供擴展性

  • 計算力延伸:算子+SQL,從ECS到Spark其本質其實就是一種計算力的延伸

  • 分層設計:降低復雜性,提供多模式的存儲模型

  • 雲化:復用資源&彈性,降低成本

基本構架

技術分享圖片
首先包含了兩個分離

  • 分別是HDFS與分布式Region分布式檢索分離

  • SQL時空圖時序Cube與分布式Region檢索分離
    大致的分層機構如下:

  • 第一層:介質層,熱SSD介質、溫SSD&SATA 混合、冷純SATA(做EC)

  • 第二層:分布式文件系統,也就是盤古。事實上越是底層越容易做封裝優化。

  • 第三層:分布式安全隔離保障層QOS,如果我們做存儲計算分離,就意味著底層的三個集群需要布三套,這樣每個集群就會有幾十臺甚至幾百臺的節點,此時存儲力是由大家來均攤的,這就意味著分布式安全隔離保障層要做好隔離性,引入QOS就意味著會增加延遲,此時會引入一些新的硬件(比如RDMA)去盡可能的減小延遲。

  • 第四層:分布式文件接口:HDFS & API(此層看情況可有可無)

  • 第五層:我們提供了兩個組件,分布式Region-HBase與分布式檢索-Solr,在研究分布索引的時候發現單機索引是相對簡單的,我們提供針對二級索引采取內置的分布式Region的分布式架構,針對全文索引采取外置Solr分布式索引方案

  • 第六層:建設在分布式KV之上,有NewSQL套件、時空套件、時序套件、圖套件及Cube套件
    另外,可以引入spark來分析,這個也是社區目前通用的方案

解決成本的方案

對於解決成本的方案簡單介紹如下:

  • 分級存儲:SSD與SATA的價格相差很多,在冷數據上,我們建議直接采取冷存儲的方式 ,可以節約500%的成本

  • 高壓縮比:在分級存儲上有一個較好的壓縮,尤其是在冷數據,我們可以提高壓縮比例,另外分布式文件系統可以采取EC進一步降低存儲成本,節約100%的成本

  • 基礎設施共享:庫存壓力分擔,雲平臺可以釋放紅利給客戶

  • 存儲與計算分離:按需計費

  • 優化性能:再把性能提升1倍左右

雲數據庫基本部署結構

技術分享圖片
假設在北京有三個機房可用區A、B和C,我們會在可用區A中部署一個熱的存儲集群,在北京整體區域部一個冷的存儲集群,實際上有幾個可用區就可以有幾個熱集群,主要是保障延遲的;冷集群對延遲相對不敏感,可以地域單獨部署,只要交換機滿足冷集群所需的帶寬即可。這樣的好處是三個區共享一個冷集群,就意味著可以共享庫存。

ApsaraDB HBase產品能力

我們提供兩個版本,一是單節點版,其特點是給開發測試用或者可用性不高,數據量不大的場景。二是集群版本其特點是高至5000w QPS,多達10P存儲與高可靠低延遲等。

  • 數據可靠性:99.99999999%:之所以可靠性可以達到如此之高,其核心的原因就是存儲集群是單獨部署的,其會根據機架等進行副本放置優化

  • 服務可用性:單集群99.9% 雙集群99.99%。

  • 服務保障:服務未滿足SLA賠付。

  • 數據備份及恢復。

  • 數據熱冷分離分級存儲。

  • 企業級安全:認證授權及加密。

  • 提供檢索及二級索引及NewSQL能力。

  • 提供時序/圖/時空/Cube相關能力。

  • 與Spark無縫集成,提供AP能力。

數據備份及恢復

技術分享圖片
備份分為全量備份HFile與 增量量備份HLog;恢復分為HLog轉化為HFile和BulkLoad加載。阿裏雲集團迄今為止已經有一萬兩千多臺的HBase,大部分都是主備集群的,在雲上由於客戶成本的原因,大部分不選擇主備,所以需要對數據進行備份。其難點在於備份需要引入計算資源,我們需要引入彈性的計算資源來處理備份的相關計算任務

Compaction 離線Compaction(研究中)

技術分享圖片
我們在內部研究如何通FPGA對Compaction進行加速,這會使得集群運行比較平緩,特別是對計算資源少,存儲量大的情況下,可以通過離線的作業處理Compaction。

組件層

我們有5中組件,NewSQL(Phoenix)、時序OpenTSDB、時空GeoMesa、圖JanusGraph及Cube的Kylin,及提供HTAP能力的Spark。這裏簡單描述幾個,如下:

NewSQL-Phoenix

客戶還是比較喜歡用SQL的,Phoenix會支持SQL及二級索引,在超過1T的數據量的情況下,對事務的需求就很少(所以我們並沒有支持事務);二級索引是通過再新建一張HBase表來實現的。在命中索引的情況下,萬億級別的訪問基本在毫秒級別,但由於Phoenix聚合點在一個節點,所以不能做Shuffle類似的事情,同時也就不能處理復雜的計算,所以任何說我是HTAP架構的,如果不能做Shuffle,就基本不能做復雜的計算。

HTAP-Spark

技術分享圖片
在HTAP-Spark這部分主要介紹一下RDD API、 SQL、直接訪問HFile,它們的特點如下:

  • RDD API具有簡單方便,默認支持的特點,但高並發scan大表會影響穩定性;

  • SQL支持算子下推、schema映射、各種參數調優,高並發scan大表會影響穩定性;

  • 直接訪問HFile,直接訪問存儲不經過計算,大批量量訪問性能最好,需要snapshot對齊數據。

時序-OpenTSDB & HiTSDB

TSD沒有狀態,可以動態加減節點,並按照時序數據的特點設計表結構,其內置針對浮點的高壓縮比的算法,我們雲上專業版的HiTSDB增加倒排等能力,並能夠針對時序增加插值、降精度等優化。

大數據數據庫的實際案例

以下簡單介紹幾個客戶的案例,目前已經在雲上ApsaraDB HBase運行,數據量基本在10T以上:

某車聯網公司

技術分享圖片
這是一個車聯網的客戶,有100萬車,每輛車每10秒上傳一次,每次1KB,這樣一年就有300T數據,六個月以上是數據低頻訪問,所以他要做分級存儲,把冷數據放到低介質上

某大數據控公司

技術分享圖片
這是一個大數據控公司,它大約有200T+的數據量,將HBase數據 (在線實時大數據存儲)作為主數據庫,先用HBase做算法訓練,再用HBase SQL出報表,另外做了一套ECS進行實時查以便與客戶之間進行數據交換。

某社交公司

技術分享圖片
社交會有大量的推薦,所以SLA要求高達99.99,並采用雙集群保障,單集群讀寫高峰QPS 可以達到1000w+,數據量在30T左右。

某基金公司

技術分享圖片
這是一個金融公司,它有10000億以上的交易數據,目前用多個二級索引支持毫秒級別的查詢,數據量在100T左右

某公司報表系統

技術分享圖片

先離線建好Cube再把數據同步到HBase中,實時數據通過Blink對接進行更新,數據量在可達20T左右。

原文鏈接

摘要: 2018第九屆中國數據庫技術大會,阿裏雲高級技術專家、架構師封神(曹龍)帶來題為大數據時代數據庫-雲HBase架構&生態&實踐的演講。主要內容有三個方面:首先介紹了業務挑戰帶來的架構演進,其次分析了ApsaraDB HBase及生態,最後分享了大數據數據庫的實際案例。

2018第九屆中國數據庫技術大會,阿裏雲高級技術專家、架構師封神(曹龍)帶來題為大數據時代數據庫-雲HBase架構&生態&實踐的演講。主要內容有三個方面:首先介紹了業務挑戰帶來的架構演進,其次分析了ApsaraDB HBase及生態,最後分享了大數據數據庫的實際案例。

直播視頻回顧
PPT下載請點擊
以下是精彩視頻內容整理:

業務的挑戰

存儲量量/並發計算增大

技術分享圖片
現如今大量的中小型公司並沒有大規模的數據,如果一家公司的數據量超過100T,且能通過數據產生新的價值,基本可以說是大數據公司了 。起初,一個創業公司的基本思路就是首先架構一個或者幾個ECS,後面加入MySQL,如果有圖片需求還可加入磁盤,該架構的基本能力包括事務、存儲、索引和計算力。隨著公司的慢慢發展,數據量在不斷地增大,其通過MySQL及磁盤基本無法滿足需求,只有分布式化。 這個時候MySQL變成了HBase,檢索變成了Solr/ES,再ECS提供的計算力變成了Spark。但這也會面臨存儲量大且存儲成本高等問題。

技術分享圖片
另外一個趨勢就是非結構化的數據越來越多,數據結構的模式不僅僅是SQL,時序、時空、graph模式也越來越多,需要一些新的存儲結構或新的算法去解決這類問題,也意味著所需要做的工程量就會相對較高。

引入更多的數據

對於數據處理大致可歸類為四個方面,分別是復雜性、靈活性、延遲<讀,寫>和分布式,其中分布式肯定是不可少的,一旦缺少分布式就無法解決大規模問題 。靈活性的意思是業務可以任意改變的;復雜性就是運行一條SQL能夠訪問多少數據或者說SQL是否復雜;延遲也可分為讀與寫的延遲。Hadoop & Spark可以解決計算復雜性和靈活性,但是解決不了延遲的問題;HBase&分布式索引、分布式數據庫可以解決靈活性與延遲的問題,但由於它沒有很多計算節點,所以解決不了計算復雜性的問題。Kylin(滿足讀延遲)在計算復雜性與延遲之間找了一個平衡點,這個平衡點就是怎樣快速出報表,但對於這個結果的輸入時間我們並不關心,對於大部分的報表類的需求就是這樣的。每個引擎都是一定的側重,沒有銀彈!

ApsaraDB HBase產品架構及改進

應對的辦法

我們也不能解決所有的問題,我們只是解決其中大部分的問題。如何找到一個在工程上能夠解決大部分問題的方案至關重要,應對辦法:

  • 分布式:提供擴展性

  • 計算力延伸:算子+SQL,從ECS到Spark其本質其實就是一種計算力的延伸

  • 分層設計:降低復雜性,提供多模式的存儲模型

  • 雲化:復用資源&彈性,降低成本

基本構架

技術分享圖片
首先包含了兩個分離

  • 分別是HDFS與分布式Region分布式檢索分離

  • SQL時空圖時序Cube與分布式Region檢索分離
    大致的分層機構如下:

  • 第一層:介質層,熱SSD介質、溫SSD&SATA 混合、冷純SATA(做EC)

  • 第二層:分布式文件系統,也就是盤古。事實上越是底層越容易做封裝優化。

  • 第三層:分布式安全隔離保障層QOS,如果我們做存儲計算分離,就意味著底層的三個集群需要布三套,這樣每個集群就會有幾十臺甚至幾百臺的節點,此時存儲力是由大家來均攤的,這就意味著分布式安全隔離保障層要做好隔離性,引入QOS就意味著會增加延遲,此時會引入一些新的硬件(比如RDMA)去盡可能的減小延遲。

  • 第四層:分布式文件接口:HDFS & API(此層看情況可有可無)

  • 第五層:我們提供了兩個組件,分布式Region-HBase與分布式檢索-Solr,在研究分布索引的時候發現單機索引是相對簡單的,我們提供針對二級索引采取內置的分布式Region的分布式架構,針對全文索引采取外置Solr分布式索引方案

  • 第六層:建設在分布式KV之上,有NewSQL套件、時空套件、時序套件、圖套件及Cube套件
    另外,可以引入spark來分析,這個也是社區目前通用的方案

解決成本的方案

對於解決成本的方案簡單介紹如下:

  • 分級存儲:SSD與SATA的價格相差很多,在冷數據上,我們建議直接采取冷存儲的方式 ,可以節約500%的成本

  • 高壓縮比:在分級存儲上有一個較好的壓縮,尤其是在冷數據,我們可以提高壓縮比例,另外分布式文件系統可以采取EC進一步降低存儲成本,節約100%的成本

  • 基礎設施共享:庫存壓力分擔,雲平臺可以釋放紅利給客戶

  • 存儲與計算分離:按需計費

  • 優化性能:再把性能提升1倍左右

雲數據庫基本部署結構

技術分享圖片
假設在北京有三個機房可用區A、B和C,我們會在可用區A中部署一個熱的存儲集群,在北京整體區域部一個冷的存儲集群,實際上有幾個可用區就可以有幾個熱集群,主要是保障延遲的;冷集群對延遲相對不敏感,可以地域單獨部署,只要交換機滿足冷集群所需的帶寬即可。這樣的好處是三個區共享一個冷集群,就意味著可以共享庫存。

ApsaraDB HBase產品能力

我們提供兩個版本,一是單節點版,其特點是給開發測試用或者可用性不高,數據量不大的場景。二是集群版本其特點是高至5000w QPS,多達10P存儲與高可靠低延遲等。

  • 數據可靠性:99.99999999%:之所以可靠性可以達到如此之高,其核心的原因就是存儲集群是單獨部署的,其會根據機架等進行副本放置優化

  • 服務可用性:單集群99.9% 雙集群99.99%。

  • 服務保障:服務未滿足SLA賠付。

  • 數據備份及恢復。

  • 數據熱冷分離分級存儲。

  • 企業級安全:認證授權及加密。

  • 提供檢索及二級索引及NewSQL能力。

  • 提供時序/圖/時空/Cube相關能力。

  • 與Spark無縫集成,提供AP能力。

數據備份及恢復

技術分享圖片
備份分為全量備份HFile與 增量量備份HLog;恢復分為HLog轉化為HFile和BulkLoad加載。阿裏雲集團迄今為止已經有一萬兩千多臺的HBase,大部分都是主備集群的,在雲上由於客戶成本的原因,大部分不選擇主備,所以需要對數據進行備份。其難點在於備份需要引入計算資源,我們需要引入彈性的計算資源來處理備份的相關計算任務

Compaction 離線Compaction(研究中)

技術分享圖片
我們在內部研究如何通FPGA對Compaction進行加速,這會使得集群運行比較平緩,特別是對計算資源少,存儲量大的情況下,可以通過離線的作業處理Compaction。

組件層

我們有5中組件,NewSQL(Phoenix)、時序OpenTSDB、時空GeoMesa、圖JanusGraph及Cube的Kylin,及提供HTAP能力的Spark。這裏簡單描述幾個,如下:

NewSQL-Phoenix

客戶還是比較喜歡用SQL的,Phoenix會支持SQL及二級索引,在超過1T的數據量的情況下,對事務的需求就很少(所以我們並沒有支持事務);二級索引是通過再新建一張HBase表來實現的。在命中索引的情況下,萬億級別的訪問基本在毫秒級別,但由於Phoenix聚合點在一個節點,所以不能做Shuffle類似的事情,同時也就不能處理復雜的計算,所以任何說我是HTAP架構的,如果不能做Shuffle,就基本不能做復雜的計算。

HTAP-Spark

技術分享圖片
在HTAP-Spark這部分主要介紹一下RDD API、 SQL、直接訪問HFile,它們的特點如下:

  • RDD API具有簡單方便,默認支持的特點,但高並發scan大表會影響穩定性;

  • SQL支持算子下推、schema映射、各種參數調優,高並發scan大表會影響穩定性;

  • 直接訪問HFile,直接訪問存儲不經過計算,大批量量訪問性能最好,需要snapshot對齊數據。

時序-OpenTSDB & HiTSDB

TSD沒有狀態,可以動態加減節點,並按照時序數據的特點設計表結構,其內置針對浮點的高壓縮比的算法,我們雲上專業版的HiTSDB增加倒排等能力,並能夠針對時序增加插值、降精度等優化。

大數據數據庫的實際案例

以下簡單介紹幾個客戶的案例,目前已經在雲上ApsaraDB HBase運行,數據量基本在10T以上:

某車聯網公司

技術分享圖片
這是一個車聯網的客戶,有100萬車,每輛車每10秒上傳一次,每次1KB,這樣一年就有300T數據,六個月以上是數據低頻訪問,所以他要做分級存儲,把冷數據放到低介質上

某大數據控公司

技術分享圖片
這是一個大數據控公司,它大約有200T+的數據量,將HBase數據 (在線實時大數據存儲)作為主數據庫,先用HBase做算法訓練,再用HBase SQL出報表,另外做了一套ECS進行實時查以便與客戶之間進行數據交換。

某社交公司

技術分享圖片
社交會有大量的推薦,所以SLA要求高達99.99,並采用雙集群保障,單集群讀寫高峰QPS 可以達到1000w+,數據量在30T左右。

某基金公司

技術分享圖片
這是一個金融公司,它有10000億以上的交易數據,目前用多個二級索引支持毫秒級別的查詢,數據量在100T左右

某公司報表系統

技術分享圖片

先離線建好Cube再把數據同步到HBase中,實時數據通過Blink對接進行更新,數據量在可達20T左右。

原文鏈接


大數據時代數據庫-雲HBase架構&生態&實踐