Google Cloud Platform 的 storage 選擇

--

身為雲端愛好者,我發現一個有趣的 GCP Storage 產品的 decision tree,讓我發現到 Google 的storage 選項真的蠻有趣的

GCP Storage 產品的 Decision Tree

我們來看看一下目前有多少選項(GCP 似乎已經將 FireBase 移出主要的產品列表內)

好理解的部分

Cloud Storage 就是 Object Storage ,基本上對標 AWS 就是 S3,場景就是大規模 unstructured data ,或是 archive data

Persistent Disk 就是 Block Storage ,對標 AWS EBS ,用戶場景也完全吻合。VM 內部的 storage

Cloud SQL 就是代管的 RDBMS ,裡面有 Postgres 跟 MySQL ,對標 AWS 產品是 RDS。實用度很高,X00 GB 等級的 SQL 都可以使用,熟悉的 SQL ,ACID ….

以上的部分均為所有雲廠商的標準配備,沒這些東西就不要開業了。價格上也沒啥可比性,大致上都是那些價錢….

不好理解的部分

其中先來看看 Big Table 跟 Data Store,首先 Google 文案部分就有大有問題,BigTable 是 “完全代管的 NoSQL 資料庫 ”….但是 DataStore 也是代管的 noSQL 呀….有啥區別。另外 DataStore 是 “用於非關聯資料庫的 NoSQL”, 可是 BigTable 也是 non-RDBMS 的 noSQL 呀…..難怪不好賣。仔細了解過之後,目前的心得是這樣。

BigTable

BigTable 基本上就是 Google 內部產品,後來發表了有名的 BigTable Paper 之後,衍生了 HBase 這個開源的產品。後來因為 HBase 很成功,後來 GCP 把內部的 BigTable 商業化成 Google Big Table ,並且使用 HBase API。

功能上基本上想像為 HBase 就好了,OLTP 為主,高 throughput 和低延時來處理 unstructured key-value 資料,可擴產到 PB 等級資料。高度整合 Hadoop 或 Google 的 Hadoop 產品(Dataflow or Dataproc)。Index 只支援 key ,不支援複雜的 Index 。缺點就是 HBase 那些缺點,沒 SQL ,沒有 secondary Index

主要特點是一個實體只在一個 Zone 運作,避開跨 Zone 許多麻煩,所以可以很有效率地降低成本,根據網路說法BigTable 比 DataStore 便宜多了,但是因為兩個產品計價方式(一個是存儲大小計價,一個是RW用量計價)不同,可能要實際用過才能比較

主要應用場景,因為是存儲大小計價而非RW用量計價,再加上支援 HBase API,在 Big Data 場景下如魚得水,因為一個 MR 下去,query 數量非常驚人,用 DataStore 價格絕對爆炸…

DataStore

有趣的是 DataStore 似乎是基於 BigTable 為底層做出來的服務,功能面上主打高度擴展性,可以輕鬆地自動處理資料分割及複製作業,也能隨著應用程式的負載而自動進行調整。並且支援 ACID ,MongoDB Like 的 Query Interface,同時也支援 RESTFul,以及建立索引等功能

看他的定位比較像是 MongoDB 的定位,不知道我的說法精確與否…主要用法是 Web Application 的後台 UnStructured 數據庫為主,Datastore 適用於需要仰賴可擴展大規模結構化資料的應用程式。在許多情況下,它也被用作 Google App Engine 的資料庫。缺點應該是價格,聽說比 BigTable 貴不少

這個比較像是Web開發者的懶人包 DB ,不需要考慮任何擴展性,不需要考慮 schema ,直接放進去用讓 GCP 去煩惱吧。

Cloud Spanner

個人認為 GCP 最有價值的東西,Google 傳說中的大神級 F1 Engine 商用版,傳說中唯一成功挑戰 CAP 聖杯的 Storage 。裡面的技術含量水太深了(像是用原子鐘來做全球對時的 TrueTime,或是高效率的 GCP 私有網路骨幹),絕對值得用另外另外一篇來講。聽說內部是 MySQL 實現的….

特色太多了,直接挑戰 CAP 理論的 Global level 的 Data Consistency 跟可用性的RDBMS….可提供全球高度交易一致性,具備關聯資料庫的所有特點,包括結構定義、ACID 交易和 SQL,在所有資料列、區域和洲別中都可水平擴充

使用場景非常獨特。像是全球範圍的產生特定順序,全球範圍提供交易事務的 RDBMS DB。這些場景正如很多人說的

”目前尚未在其他雲端服務中,發現類似 Cloud Spanner 的產品”

缺點大概就是Spanner 不是牛刀,而是屠龍刀吧….如果沒有全球 trancation 需求,有很多相關的替代品。

BigQuery

最後有一個相當不錯,但是產品列表不是放在存儲列表,而是放在 Analytics 列表裡面的 BigQuery,這個其實也是 GCP 另外一個不錯的 OLAP Data Warehouse 服務。

首先這個服務是 OLAP 為主,PB 等級的分析 DW 服務高可用 SQL Base 不在話下。裡面甚至有聯合查詢的功能,可以將 Cloud Storage 以及 BigTable 甚至google sheet 這種 SaaS 服務的數據直接不搬檔案,直接查詢。

對標產品是 AWS Redshift 或是 Azure SQL DW,但是比起這兩者的濃濃 MPP DW 味道,我個人認為他已經有 SaaS 服務的感覺,比較像是一個針對Data Scientist 為主的懶人 OLAP 服務,數據丟進去隨便亂查,讓 GCP 去煩惱其他問題….

總結

大致上是這樣吧,個人認為 Big Query 跟 Spanner 可能是 GCP 跟 3A(AWS,Azure,Aliyun)最大的 Storage 產品分隔點,值得好好的去看一下 :)

--

--