天天看點

深入對比 HBase 與阿裡雲的表格存儲服務

讓我們來深入對比下阿裡雲的表格存儲與 hbase 到底有何異同。

深入對比 HBase 與阿裡雲的表格存儲服務

自建hbase叢集

tablestore

成本

需要根據業務峰值進行資源配置,空閑時段資源被閑置,租用及人工運維成本高

根據實際用量進行計費,提供高性能與容量型兩種規格執行個體,适用于不同的應用場景

安全

需要額外的安全機制

整合阿裡雲 ram 資源權限管理系統,支援多種鑒權和授權機制及vpc、主子賬号功能,授權粒度達到表級别和api級别

可靠性

需要自行保障叢集的可用性

資料自動多重備援備份,故障遷移自動完成,可用性不低于 99.9%,資料可靠性達 99.99999999%

可擴充性

叢集使用率到一定水位之後需要繁瑣的機器上下線流程,影響線上業務

tablestore自動負載均衡機制支援單表pb級資料、百萬并發都無需任何人工擴容

而對上述的差別,我們再進一步細化如下。

表格存儲中表的資料量沒有限制,随着使用者寫入資料量的增加,表格存儲的自動負載均衡機制會對資料表上的資料分區根據資料分布和通路情況進行自動切分,進而配置設定更多的存儲和服務節點,這樣單表的并發上限也得到進一步的提升。

而作為服務,表格存儲屏蔽了底層架構,進而做到讓使用者在數百台伺服器上無縫擴充單個資料表。

表格存儲即開即用,根據實際的使用進行計費,沒有額外的資源開通費用。以一個 1tb 資料量和 1億 日均pv 的業務系統為例,使用表格存儲容量型執行個體日均費用約為 __10元的資料存儲費用和40元的資料讀寫費用__,而搭建一個最小化 hbase 叢集的成本遠高于此,且還需要根據預估的業務峰值時刻準備着機器上線下線。

而高性能執行個體的預留讀寫吞吐量機制能夠讓使用者按照容量型執行個體的讀寫成本享受極高的讀寫性能。

表格存儲是完全托管的服務,使用者隻需要建立資料表,其餘的事情都交給該服務代勞。使用者無須關心硬體或軟體的配置、更新、維護等工作,也不必擔心随着擴充的需要在多個執行個體間對資料進行分區等問題。

依托于底層分布式存儲的3 paxos master 機制,表格存儲提供了 3個9 的高可用及 10個9 的資料可靠性保證,從官網公開的技術文檔中我們也能夠發現,表格存儲是基于阿裡雲的分布式系統,服務端采用 c++ 編寫,是以也不會遇到讓人頭疼的 gc 問題,服務穩定性又進一步得到保證。

與 hbase 不同,表格存儲在設計時就充分考慮到了多租戶資源隔離的重要性,采用經過驗證的加密方法驗證使用者身份,避免對未授權資料通路,支援 https 并且提供了豐富的權限管理機制。支援 ram 的主子賬号機制,授權粒度達到表及可調用的 api 級别,進一步降低 ak 洩露所帶來的資料風險。

對 vpc 網絡的支援可以避免資料暴露在公網環境或者非期望的網絡環境,使用者可以友善的将測試環境與生産環境隔離,避免上線前的誤操作。

表格存儲不支援多 columnfamily,是以相關的接口不支援

表格存儲屏蔽了服務端的運維接口,使用者隻需要關心資料的使用,是以像 region 管理、table 管理方面的接口不支援

表格存儲對協處理器 coprocessors 相關的接口都不支援

表格存儲對 distributed procedures 相關的接口都不支援

表格存儲提供了 __多個主鍵及多種資料類型__,避免的主鍵拼接對齊的問題

表格存儲提供 __restful api 接口__,與平台及開發語言無關

在日常的使用中,如果沒有使用到協處理器 coprocessors以及distributed procedures等進階功能,而有這麼一款即開即用、能夠提供高達百萬的并發儲備又隻按實際用量計費的分布式 nosql 資料庫服務,我們又何樂而不為呢!