表格存儲TableStore2.0重磅發佈,提供更強大數據管理能力

表格存儲TableStore是阿里雲自研的面向海量結構化和半結構化數據存儲的Serverless NoSQL多模型數據庫,被普遍用於社交、物聯網、人工智能、元數據和大數據等業務場景。表格存儲TableStore採用與Google Bigtable相似的寬表模型,自然的分佈式架構,能支撐高吞吐的數據寫入以及PB級數據存儲。數據庫

原生的寬表數據模型,存在一些自然的缺陷,例如沒法很好的支持屬性列的多條件組合查詢,或者更高級的全文檢索或空間檢索。另外在與計算系統的對接上,特別是流計算場景,傳統的大數據Lambda架構,須要用戶維護多套存儲和計算系統,無法很自然的支持數據在存儲和計算系統之間的流轉。以上這些問題,均在表格存儲TableStore在支持阿里巴巴集團內、阿里雲公共雲以及專有云等業務中逐漸暴露出來。編程

表格存儲TableStore簡單可靠的數據模型和架構,開始承擔愈來愈豐富的不一樣類型的數據存儲,例如時序時空數據、元數據、消息數據、用戶行爲數據和軌跡溯源數據等。愈來愈多的客戶也開始把表格存儲TableStore當作一個統一的在線大數據存儲平臺,因此咱們迫切須要支持海量數據中對數據的高效查詢、分析和檢索。同時也須要考慮如何更貼近業務,抽象出更貼近業務的數據模型,讓數據的接入變得更加簡單。跨域

在2019年3月6日的阿里雲新品發佈會上,表格存儲TableStore對如下幾個方面作了重大升級:數據結構

 

  • 提供多種數據模型,知足不一樣數據場景的需求,簡化數據建模和開發。
  • 提供多元化索引,知足不一樣場景下簡單或複雜條件查詢的功能需求。
  • 提供實時數據通道,無縫對接流計算引擎,支持表內數據的實時更新訂閱。

 

多模型

表格存儲TableStore在選擇要支持的數據模型的時候,更多的綜合了當前業務現狀以及用戶畫像,提取大部分客戶的通用需求,總結和定義了產品適合的幾大類核心數據場景,來抽象和定義數據模型。數據模型的定義分爲『具象』和『抽象』:抽象模型是相似於關係模型或者文檔模型的能知足大部分類型數據的抽象,屬於比較通用的數據模型;具象模型是對某一具體特徵場景數據的抽象,適合單一垂直類的數據場景。表格存儲TableStore同時提供抽象和具象模型,固然在介紹這些模型以前,先來明確咱們的核心數據場景。架構

核心場景

 

表格存儲TableStore的核心場景包含這五大類,分別對應不一樣類型的應用系統,以及每類數據場景下數據有典型的特徵和對存儲和計算的特殊的需求,簡單來講:less

  • 時序數據:時序數據解決的是對包含4W(Who, When, Where, What)元素數據的抽象,數據量相對比較龐大,須要存儲引擎支持對時間線的索引以及對時間線的時間範圍查詢。
  • 時空數據:時空數據是基於時序數據加上了空間的維度,同時可能沒有時序數據的連續性。總的來講,特徵和時序數據比較相似。
  • 消息數據:消息數據普遍存在於消息系統,例如即時通信消息系統或者Feeds流消息系統內。消息的存儲和傳遞更像是消息隊列模型,可是要求消息隊列可以提供海量級消息存儲以及海量Topic,這是傳統專業級消息隊列產品所沒法支撐的。
  • 元數據:這類元數據屬於非關係類元數據,例如歷史訂單數據、圖片智能標籤元數據點。特色是量級比較大,每一個數據存在的屬性比較多且是稀疏的,要求存儲可以支持對各類維度屬性的條件過濾,對查詢可用性有比較高的要求。
  • 大數據:這是Bigtable模型所對應的最主要數據場景,特色是數據量極其龐大,須要很好的支持批量計算。

TableStore多模型

基於以上總結的表格存儲TableStore所針對的核心數據場景,咱們從業務需求中抽象出三大類數據模型,分別是:WideColumn(寬行模型)、Timeline(消息模型)和Timestream(時序模型)。異步

寬行模型

 

寬行模型是由Bigtable提出,特徵是:分佈式

  • 三維數據結構:對比MySQL的二維數據結構,在屬性列這一維度上多了版本屬性。同一列數據能夠存儲多個不一樣版本,並可定義不一樣的生命週期,主要用於數據的自動化生命週期管理。
  • 稀疏列:表不須要有強格式定義,能夠任意的對每一行定義列和類型。
  • 大表:一張表能夠存儲萬億行數據,大表數據根據分區鍵的範圍來分區,不一樣的分區由不一樣的機器來加載和提供服務,能比較簡單的實現分佈式。

寬行模型主要應用於元數據和大數據場景,一些典型應用場景可參考:ide

咱們也提供HBase API兼容的Client:《使用HBase Client訪問阿里雲NoSQL數據庫表格存儲》。函數

消息模型

 

消息模型是表格存儲TableStore針對消息數據所抽象的數據模型,主要適用於消息系統中海量消息存儲和同步,特徵是:

  • 輕量級消息隊列:大表中能模擬海量消息隊列,雖然不能徹底模擬一個真正消息隊列的全部能力,可是能知足對消息最基本的存儲和同步能力。
  • 消息永久存儲:能保證對數據的永久存儲,消息寫入和同步的性能不會受到數據規模的影響。
  • 模型同步模型:對消息同步模型沒有嚴格要求,應用層能夠根據本身的業務特徵,同時實現推模型或者拉模型。

消息模型主要應用於消息數據場景,一些典型應用場景可參考:

時序模型

 

時序模型主要應用與時序和時空場景,也是表格存儲TableStore綜合了業界主流的時序數據庫,所定義和抽象的數據模型,特徵是:

  • 海量數據存儲:能提供PB級數據存儲,可打造多租戶的時序數據庫底層存儲,寫入和查詢性能不受數據規模的影響。
  • 時間線索引:提供對時間線的索引,能知足對時間線Tag的任何條件組合過濾,而且可以支持比較海量的時間線規模。
  • 完整的模型定義:在業界標杆的時序數據庫模型定義上,補充了空間維度的定義而且提供空間索引,以及支持多列值支持,不限制只對數值類型的支持。

時序模型主要應用於時序和時空數據,一些典型應用場景可參考:

查詢優化

上述場景中提到的對於表內數據的查詢優化,最基本手段就是須要對數據創建索引。表格存儲TableStore選擇的作法是,對於不一樣類型的查詢場景,咱們須要提供不一樣類型的索引。業界對海量數據創建索引的方案有多種,在傳統技術架構中應用比較多的主要包括Phoenix SQL二級索引或者Elasticsearch搜索引擎。二級索引能提供高效的固定維度的條件查詢,查詢性能不受數據規模的影響,而Elasticsearch搜索引擎能提供比較靈活的多條件組合查詢、全文索引和空間索引。兩種類型的索引實現,有不一樣的優缺點,以及適用於不一樣的場景。表格存儲TableStore的作法是同時實現和這兩類索引原理相似的索引,來知足不一樣場景下對查詢的不一樣需求。

全局二級索引

 

當用戶建立一張表時,其全部PK列構成了該表的『一級索引』:即給定完整的行主鍵,能夠迅速的查找到該主鍵所在行的數據。可是愈來愈多的業務場景中,須要對錶的屬性列,或者非主鍵前綴列進行條件上的查詢,因爲沒有足夠的索引信息,只能經過進行全表的掃描,配合條件過濾,來獲得最終結果,特別是全表數據較多,但最終結果不多時,全表掃描將浪費極大的資源。表格存儲TableStore提供的全局二級索引功能支持在指定列上創建索引,生成的索引表中數據按用戶指定的索引列進行排序,主表的每一筆寫入都將自動異步同步到索引表。用戶只向主表中寫入數據,根據索引表進行查詢,在許多場景下,將極大的提升查詢的效率。更多的技術解讀,請參考這篇文章《經過全局二級索引加速表格存儲上的數據查詢》。

多元索引

 

表格存儲TableStore多元索引是表格存儲TableStore重點打造的一個多功能索引能力,旨在補位二級索引沒法覆蓋的場景,解決大數據場景下的複雜查詢和輕量級分析問題,好比多字段組合查詢、前綴查詢、通配符查詢、嵌套查詢、全文檢索(分詞)、地理位置查詢、排序和統計聚合等功能。關於對多元索引的更多解讀,能夠閱讀這篇文章《TableStore多元索引,大數據查詢的利器》,關於多元索引的更多應用場景,能夠參考如下文章:

計算銜接

表格存儲TableStore已經與比較多的開源大數據計算引擎以及阿里雲計算產品銜接,例如Hive、Spark、MaxCompute以及DataLakeAnalytics等,覆蓋了批量計算和交互式分析。能夠由第三方產品提供的數據通道服務,將表格存儲TableStore上的數據全量或者增量複製到計算系統,也能夠由計算系統經過Connector直接訪問表內的數據。

批量計算和交互式分析訪問數據存儲的方式是批量掃描,主要經過自定義數據Connector的方式。可是其餘類計算系統例如流計算或者函數計算(Lambda架構),數據是須要流式的而且實時的從存儲系統到計算系統。這個能力是傳統開源Bigtable類數據庫所作不到的,例如HBase或Cassandra。

若是表內的數據能夠實時的流動,那將給錶帶來更豐富的計算和處理場景,例如能夠作跨域複製、備份,或者接入流計算引擎作實時分析或者函數計算作事件觸發式編程,也能夠由應用方自定義數據處理,來作個性化數據處理。

表格存儲TableStore提供了全新的實時數據通道,能支持訂閱表內的實時數據更新,來擴充表格存儲TableStore的計算能力。

通道服務

 

TableStore 通道服務(Tunnel Service)是基於表格存儲數據接口之上的全增量一體化服務,通道服務爲用戶提供了增量、全量、增量加全量三種類型的分佈式數據實時消費通道。經過爲數據表創建Tunnel Service數據通道,能夠簡單地實現對錶中歷史存量和新增數據的消費處理。基於通道服務用戶能夠輕鬆的實現如圖所示的場景架構:數據同步、搬遷和備份,流式數據處理以及事件驅動架構。

關於對通道服務TunnelService更多的技術解讀,能夠參考這篇文章:《大數據同步利器: 表格存儲全增量一體消費通道》。基於通道服務的更多應用場景,能夠參考如下文章:

總結

表格存儲TableStore經過同時提供具象和抽象的數據模型,來知足不一樣核心數據場景的要求,更貼近業務抽象;提供多元化索引(全局二級索引和多元索引)來知足不一樣類型場景條件查詢需求;提供全新的實時數據通道,來擴充實時計算的能力以及可自定義的實時數據處理。這三大方面的新功能發佈,可以讓咱們在數據模型、靈活查詢以及數據分析層面,都有必定的提高,幫助打造統一的在線數據存儲平臺。

 

原文連接

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索