Cloud Bigtable – 完全代管的 NoSQL 資料庫服務 (一)
Cloud Bigtable 是什麼?
Cloud Bigtable 是一個可以擴展數千列和數十億行的稀疏表 (sparsely populated table)。讓顧客可以儲存數 TB 甚至數 PB 的資料。每行中只有一個值 (value) 會被編入索引 (index) ; 這個值被稱為行鍵 (row key)。Cloud Bigtable 非常適合以極低的延遲存儲大量單鍵數據。它可以在低延遲的情況下支持高讀寫吞吐量,是 MapReduce 操作的理想數據源。
Cloud Bigtable 支援多種不同的客戶端函式庫 (client library), 其支援包括對 Apache HBase 1.x Java library 的擴展。因此,Bigtable 是與現有 Apache 生態系統的開源 Big Data 軟體相整合。
Cloud Bigtable 強大的後端伺服器與自行管理安裝的 HBase 相比,提供了幾個關鍵優勢:
⬩ 超高擴展性:
Cloud Bigtable 的效能與您的叢集 (cluster) 中的機器數量成正比。自我控管的 HBase 安裝有一個設計瓶頸,在達到某程度的 QPS 後效能便無法再提升。Cloud Bigtable 則沒有這個瓶頸。所以客戶可以透過增加機器數量來擴展你的叢集以處理更多的查詢。
⬩ 易於管理:
Cloud Bigtable 可以透明化地處理升級和重新啟動,並自動保持數據的高持久性。不需再管理叢集的主結點 (masters)、地區 (regions),集群 (clusters) 或節點 (nodes); 你只需要設計自己的表格模式,其餘的問題Cloud Bigtable 會為你處理。
⬩ 叢集調整不需停機:
您可以擴大 Cloud Bigtable 數幾個小時以處理龐大的負載量,然後再次縮小叢集的大小 —- 所有這些舉動都不需停機。更改叢集大小後,Cloud Bigtable 在負載下通常只需要幾分鐘就可以平衡叢集中所有節點的性能。
Cloud Bigtable 的優勢
Cloud Bigtable 非常適合需要對非結構化鍵/值數據有高吞吐量和高擴展性的應用。其中,每個值 (key/value data) 通常不大於 10 MB。Cloud Bigtable 也是批量的 MapReduce 操作、串流處理/分析和機器學習應用優良的儲存引擎。
您可以使用 Cloud Bigtable 來儲存和查詢以下所有類型的數據:
⬩ 行銷數據:如採購歷史和顧客偏好。
⬩ 財務數據:如交易歷史、股票價格和匯率。
⬩ IoT數據:如電錶和家用電器的使用情況報告。
⬩ 時間序列數據:例如在多個伺服器的 CPU 和 memory 使用狀況。
Cloud Bigtable 儲存模式
Cloud Bigtable 將數據儲存在大規模可擴展的表中,每個表都是一個排序過的鍵/值對應表(key/value map)。表是由列 row(每個行通常描述單個實體)和行 column(包含每行的單個值)組成。每列由單個 row key 索引,而彼此有關的行通常歸為一個行族 (column family)。每行的識別由 column family 和 column qualifier 來標識。
每個行/列交叉點可以在不同時間點涵蓋多個單元格 (cells) ,提供存儲數據隨著時間的變化的記錄。Cloud Bigtable 表格很稀疏 ; 如果一個單元格裡沒有任何數據,它就不佔用任何儲存空間。
例如,假設您正在為美國總統建立一個社交網絡 – 暫且稱它為 Prezzy。每個總統都可以關注其他總統的發文動態。下圖顯示的 Cloud Bigtable 表格可以看出在 Prezzy 上總統間各自追隨的跡象。
在這個例子中可以注意到幾點:
⬩ 這個表格包含一個 column family – follows family。 Column family包含多個column qualifiers。
⬩ Column qualifiers 被用作數據。這種設計利用了 Cloud Bigtable 表格的稀疏性和可以即時添加新行限定符的特性。
⬩ 用戶名用作列鍵 (Row key)。假設用戶名在字母表中均勻分佈,訪問的數據會在整個表中平均分布。有關 Bigtable 如何處理不均勻負載,可以參考 “ 負載平衡 ”獲得更多資訊。也可以參考 “ 選擇列鍵 ” 學到更多挑選列鍵的小撇步。
相關文章:
下一篇:【GCP 專欄】Cloud Bigtable 的介紹與應用 (二),是 Cloud Bigtable 介紹系列文的最終章,將為您帶來更詳盡的 Cloud Bigtable 應用方法。
(原文翻譯自:https://cloud.google.com/bigtable/docs/overview)