在前面幾個章節有介紹了 GCP 常見的 Storage Service ,有提供了各種高可靠且高可擴展存儲服務產品,雲端化直觀的提供了「減輕管理服務基礎架構」的負擔,特別是是硬體角度的管理。從比較 High-Level 角度來討論的話,雲存儲的服務類型分成
在現今的雲端計算時代,儲存和管理大量資料變得更加重要,以上這幾種儲存服務需根據業務來選擇,因為這也會決定到訪問和管理組資料的難易程度,故以下對其做一些廣義的整理和筆記來幫助和選擇適合的儲存服務。
- Block Storage : Compute-engine 的 Persistent Disk
- Object Storage : Cloud Storage
- File Storage : Filestore
- SQL : Cloud SQL、Cloud Spanner
- NoSQL : Firestore、Bigtable、Memorystore
- Data Warehouse : Bigquery
BigQuery 是 Google 提供的一個無伺服器資料倉儲 (Serverless Data Warehouse),其支持 ANSI SQL 來搜尋資料,所以只要會 SQL 語法就可以立即開始使用,且可高效率分析 TB、PB 等級的資料,故 Bigquery 也是企業級雲端大數據資料分析平台。對應到其他的雲端服務是 :
- Amazon Web Services (AWS) : Athena、Redshift Spectrum、Redshift
- Microsoft Azure : Azure Synapse Analytics
Google 在非常早期的時候,就有類似 BigQuery 其的服務就存在了,是自 2006 年以來一直在內部使用的 Dremel,後來隨著 GCP 雲端平台的產生,並於 2011 年以 BigQuery 為名被正式推出。目前是 GCP 分析資料的主力產品, Google 自家產品如搜尋引擎、 Gmail 等服務背後,其資料處理與分析的核心技術也和 Bigquery 息息相關。
Cloud Spanner 是 Google 開發的一個完全託管關係型資料庫,屬於企業級 PaaS 解決方案,具有全球同步、全域事務、強一致性、可擴展、分散式和 Replica/Failover 功能,可保證
99.999%
可用性 SLA,使用者不需要多花心思在底層的基礎建設與管理。對應其他的雲端服務是 :
- Amazon Web Services (AWS) : Amazon Aurora
- Microsoft Azure : Azure SQL Database (SQL Server base)
Cloud Spanner 於
2012
年開始為 Google 內部的重量級產品如 Youtube、Gmail、Google PlayStore 等等提供服務,取代了 Google 的自定義 MySQL 且號稱是盡量滿足 CAP 理論限制。2020Q1 統計每月約 1 億活躍使用者,每天有高達 1800 萬次外送記錄的 Uber,是使用 CLOUD SPANNER 成功案例。
Cloud SQL 是 GCP 提供針對 MySQL、PostgreSQL、SQL Server 推出的完全託管關係型資料庫服務,讓使用者能夠從資料庫的管理任務中解放出來,花更多時間在資料本身而非硬體維護。雲端資料庫只是在雲端上建置、部署和存取的資料庫而已,其底層操作和傳統地端資料庫完全一樣,對應其他的雲端服務是 :
- Amazon Web Services (AWS) : Amazon RDS
- Microsoft Azure : Azure SQL Database for MySQL/PostgreSQL
Cloud SQL 除了可快速啟用資料庫,還可以同時整合讀寫分離、同步、自動備份、監控等等,也讓我們能更安全便捷地整合 GCP 的其它雲端產品例如:「創建 Table 並從 Cloud Storage 導入 .sql 資料」、「使用 Cloud SQL Auth Proxy 連結到 Compute Engine」、「連接到 BigQuery 來使用聯合查詢」等等。
由於 Bigtable 在 Google 內部廣為使用,故有於 2006 年發表了它的論文介紹:Bigtable: A Distributed Storage System for Structured Data,然後在 2015/5 推出成為 GCP 雲端產品給大眾使用。 在 Google 官網上 Bigtable 的定義是一個 Sparsely-Populated-Table,其中 sparse 意思是如果某 Column 未在特定 Row 中使用,就不會佔用任何空間。
Bigtable 也可以輕鬆擴展到數十億 Rows 和數千個 Columns ,能夠存儲 PB 級的資料量,適合 High-Throughput 場景的服務,是個強大的服務。而個人也覺得 Bigtable 是對有使用 GCP 的人常被問有沒有使用過的一個雲端服務之一,故可以特別看一下這個服務。(第一名最常問的,我個人認為是 Bigquery)
Bigtable 並不是傳統 RDB 關係型資料庫,而是 GCP 提供的企業級 NoSQL Database,是一個支持大數據應用的分散式存儲系統,保證高可擴展、高可用性、高性能與高吞吐需求的服務,與現有 Apache Big Data 生態系統的開源軟體如 HBase 也有蠻好的整合。對應到其他的雲端服務是 :
- Amazon Web Services (AWS) : DynamoDB
- Microsoft Azure : Cosmos DB
Bigtable 優勢在於其強大的擴充性,效能完全和 cluster 中的 Node 數量成正比,該產品的強大性完全不用質疑,因為 Google 的很多重量級專案都有使用 Bigtable 來存儲資料例如: Youtube、Google Earth、Google 搜尋引擎、Google Map 等等,每個專案都為數十億活躍使用者提供穩定的服務。