這裡期望給大家提供一個簡易小攻略,快速上手錶格存儲Tablestore。期望表格存儲Tablestore能夠解決你當前架構與場景中遇到問題。(會不定期的更新)
在此之前給大家提供兩個小法寶。會大大提高後續研發效率:
入門篇一 初步調研瞭解
Step.1 場景鍥合度判斷
選擇使用表格存儲前關鍵需要明確你的場景是否適合。
表格存儲是阿里雲自2010起自研使用的一個多模型NoSQL數據庫,面向海量大數據存儲,身經百戰。非常適合存儲如下結構化/半結構化數據:
這些場景特點是:1. 數據規模大,常見的關係型數據庫難以存儲。2.需要支持很高的讀寫吞吐與極低的響應延遲。 3. 數據結構相對簡單,無跨數據表的關聯查詢,數據存儲寫入是無需複雜的事務機制。
典型的案例推薦:
案例推薦 | 存儲數據 |
---|---|
打造億量級訂單管理解決方案 | 歷史訂單 |
現代IM中消息系統構建 | 聊天消息 |
管理海量快遞軌跡數據架構實現 | 軌跡信息(時序數據) |
海量氣象格點數據解決方案實戰 | 氣象監控(時序數據) |
百億級全網輿情分析系統存儲設計 | 爬蟲信息 |
共享汽車管理平臺 | Iot信息(元數據、時序數據) |
可以查看更多案例。
如果你的的場景符合上面的描述,放心的往下走,一起來構建你的服務,解決你的問題。
Step.2 瞭解費用
表格存儲當前的付費模型目前是純按量模式,根據實際使用量按小時計費。所以前期的接入成本非常的低。可以免費開通使用。後面正式業務上量後可以按照資源包等其他手段優化成本。
費用簡介:表格存儲費用,可以直接看鏈接中最下方的視頻簡介有個快速瞭解。
入門篇二、開通與構建數據
Step.1 開通產品,創建實例
表格存儲是Serverless的產品,直接在產品詳情頁點擊開通即可。開通產品不會有任何費用產生。
開通後可以立馬在控制檯創建實例,可以根據業務場景需求創建不同的實例類型,詳情可以參考實例類型說明:
類型 | 使用場景 | 讀性能 | 寫性能 | 併發力 |
---|---|---|---|---|
高性能實例 | 適用於對讀寫性能和併發都要求非常高的場景,例如遊戲、金融風控、社交應用、推薦系統等。 | 高 | 高 | 高 |
容量型實例 | 適用於對讀性能不敏感,但對成本較為敏感的業務,例如日誌監控數據、車聯網數據、設備數據、時序數據、物流數據、輿情監控等。 | 中 | 高 | 中 |
然後就可以在控制檯中創建實例:控制檯創建實例說明。
Step.2 選擇數據模型,設計表結構
表格存儲是一個多模態的數據庫產品,支持多種數據模型適配不同的應用場景:
實例模型 | 適用場景 | 詳情 |
---|---|---|
寬行模型(WideColumn) | 表格存儲數據模型,適合元數據、大數據場景 | 點擊查看 |
時間線模型(Timestream) | 時序場景,如軌跡,監控等 | 點擊查看 |
輕量級消息模型(Timeline) | 消息場景如IM,Feed流等 | 點擊查看 |
格點模式(Grid) | 多維網格數據的存儲、查詢和管理。如 | 點擊查看 |
可以根據實際使用場景選擇不同的數據模型,這裡需要注意的是寬行模型是當前表格存儲的基礎數據模型。其他的數據模型基於此封裝輸出。如果場景匹配度較高,可以直接使用後面封裝完整的模式。當前也可以根據實際場景設計表結構。
如果使用寬行模型,表結構的設計是我們的能夠發揮表格存儲能力、滿足業務需求的關鍵。需要考慮:
- 如何避免熱點,提升整體服務能力,避免系統瓶頸
- 如何設計主鍵順序,滿足業務查詢需求
如果表設計完成,可以控制檯中創建表:控制檯創建表示例。
入門篇三、基礎數據的讀寫
在完成表設計,創建表以後既可以嘗試寫入數據。表格存儲的讀寫接口都非常簡單,可以簡單分為單行數據操作與多行數據操作。詳情參考數據基礎讀寫。
操作類型 | 接口 | 說明 |
---|---|---|
單行數據操作 (Java示例) |
GetRow | 讀取一行數據。 |
PutRow | 新寫入一行數據 | |
UpdateRow | 更新一行數據。 | |
DeleteRow | 刪除一行數據。 | |
多行數據操作 (Java 示例) |
BatchGetRow | 批量讀取一個或多個表中多行數據。 |
BatchWriteRow | 批量插入、更新或者刪除一個或多個表中的多行數據。 | |
GetRange | 讀取表中指定主鍵範圍內的數據。 |
如果同時可以在控制檯體驗數據讀寫。
綜上基本已經完成一個數據系統的基本元素,包含了基礎的數據讀寫。除此之外可以根據你的場景需要在這裡關注諸如:條件更新、原子計數器、局部事務、主鍵列自增的需求。
接下來進階使用一些關鍵能力。讓你的數據真正玩轉起來。
進階篇——多元索引
表格存儲的寬行模型本身設計只提供了相對簡單的數據查詢能力,而由於業務場景的需求,往往需要較為多維度的查詢需求(尤其是非主鍵查詢)。而表格存儲的索引能力能夠滿足該需求。我們將原本的數據稱之為主表,在這個基礎上面提供二級索引&多元索引能力。
索引類型 | 原理 | 場景 |
---|---|---|
數據表主表 | 數據表類似於一個巨大的Map,它的查詢能力也就類似於Map,只能通過主鍵查詢。 | 適用於可以確定完整主鍵(Key)或主鍵前綴(Key prefix)的場景。 |
全局二級索引 | 通過創建一張或多張索引表,使用索引表的主鍵列查詢,相當於把數據表的主鍵查詢能力擴展到了不同的列。 | 適用於能提前確定待查詢的列,待查詢列數量較少,且可以確定完整主鍵或主鍵前綴的場景。 |
多元索引 | 使用了倒排索引、BKD樹、列存等結構,具備豐富的查詢能力。 | 適用於除數據表主鍵和全局二級索引之外的其他所有查詢和分析場景。 |
可以根據上面的場景選擇不同的索引能力,可以直接在控制檯創建多元索引。
進階篇——計算引擎的對接
表格存儲中存儲的多為數據中臺類數據,除了面向TP類業務還是非常大的需求需要針對這部分數據進行分析處理。而當前產品已經與基本主流的計算引擎無縫對接,支持流、批等多種開源、阿里雲產品生態。能夠挖掘使用數據價值。
數據計算類型 | 使用文檔(計算引擎選擇) | 場景 |
---|---|---|
批計算 | - Maxcompute - Spark - Hive/HadoopMR |
海量數據分析 |
流計算 | - Blink/Flink | 流式數據分析、清洗 |
交互式分析 | - DLA | 即席數據分析 |
事件觸發(函數計算) | - 函數計算FunctionCompute | 數據清洗、同步等 |
進階篇——數據實時消費通道
Tunnel能夠實時捕獲表內數據的變化,返回一個有序的行級的數據變更記錄。提供全增量一體數據實時消費通道,高效完成數據全鏈路處理分析。
由於捕獲數據變化的能力,可以方便的完成數據的遷移、流式計算、事件觸發、數據消費等。尤其針對數據需要連續計算、清洗的場景,可以非常便捷的通過通道服務實現。
詳情可以參考:數據實時消費通道
進階篇——數據安全
這裡簡單總結了一些安全相關的功能點,涉及數據安全相關需求,可以參考這裡:
功能點 | 解決問題 |
---|---|
VPC綁定 | 網絡安全問題。限制實例僅僅被指定VPC網絡訪問 |
數據多版本 | 數據誤操作等問題。提供多數據版本,支持讀取指定版本數據。 |
訪問權限管控(RAM&STS) | 訪問權限問題。提供精細到API級別的權限管控能力。 |
結語
期望表格存儲本身能夠幫助大家解決當前場景的問題。業務場景與技術也在不斷的變化發展,表格存儲也會跟大家一起面對變化,迎接一輪又一輪的浪潮。