Cloud Spanner:兼具傳統資料庫和 NoSQL 優點的資料庫服務
Cloud Spanner 是一個全球分佈式關係資料庫服務,在支援 ACID 事務和 SQL 語法的同時,也保留了水平擴展和高可用性。
在架構雲端應用時,資料庫管理員和開發人員往往需要在”保證交易一致性的傳統資料庫”和”提供簡單的水平擴展和數據分佈的 NoSQL 資料庫”之間做選擇。然而 Cloud Spanner 突破了這種僵局,兼具了這兩種至關重要的功能。
Cloud Spanner 優勢
Cloud Spanner 以 Cloud SQL、Cloud Datastore 和 Cloud Bigtable 作為基礎,完整了 GCP資料庫的服務。
作為代管服務,Cloud Spanner 為 DBA 提供了以下幾點優勢:
⬩ 更專注於應用程式的邏輯,省下了管理軟硬體的時間
⬩ 擴展您的 RDBMS 解決方案,無需複雜的分片(sharding)或叢集(clustering)設定
⬩ 可以橫向擴展,無需從關係資料庫遷移到 NoSQL 資料庫
⬩ 保持高可用性和災難預防,無需設計複雜的複製工作(replication)和故障轉移(failover)基礎架構
⬩ 通過數據層加密,身份和訪問管理以及審計記錄,提供綜合安全性
使用 Cloud Spanner,您的資料庫可根據需求進行擴展縮減,您只需支付使用的費用。它的定價方式非常簡單,根據節點小時,實際存儲消耗(不需預先配置)和外部網路訪問作計算。
Cloud Spanner 透過在熟悉的關係資料庫環境、支援標準工具和語言,讓開發應用程式變得更加簡單。 不論是庫存管理、財務交易或是控制系統,Cloud Spanner 都是負載傳統關係資料庫的理想選擇。它支援分佈式事務、模式和DDL語句、SQL查詢和JDBC驅動程序,並為常用的開發語言(包括Java,Go,Python和Node.js)提供客戶端函式庫 (libraries)。
第一手 Cloud Spanner 使用經驗分享
Quizlet 是一個在線學習工具,每月支援 2000 多萬學生和教師,使用 MySQL 作為其主要資料庫。對於 Quizlet 而言,資料庫性能和穩定性非常重要,然而隨著每年約 50% 的速度增長的客戶,Quizlet 不得不多次調整資料庫來處理負載。透過將表拆分成自己的資料庫(垂直分片)以及將查詢加載到副本,它可以提高查詢容量 – 但是這種技術正在迅速達到極限,因為資料表本身已經超過了單個 MySQL 分片所能支持的範圍。在搜索更具擴展性的體系結構時,Quizlet 發現了 Cloud Spanner,可以輕鬆擴展其關係資料庫並簡化其應用程式:
“根據我們的經驗和性能測試,Cloud Spanner 是我們見過用於高規模關係查詢工作負載的最引人注目的選擇。它同時具備 NoSQL 資料庫的性能和可伸縮性,同時可以執行 SQL,是可行的分片式 MySQL 替代方案,大大簡化管理資料庫的方式。”— Peter Bakkum, 平台負責人, Quizlet
JDA 是全球零售和供應鏈軟件的知名廠商,從 2015 年開始,它們就在 GCP 上開發並維運它們新的應用程式,是 Cloud Spanner 的非常早期用戶之一。而 JDA 看上的正是 Cloud Spanner 能處理來自物聯網、極大數據量的能力,同時又提供了使用這些數據所需的一致性和高可用性。
“Cloud Spanner 為全球零售商、製造商和批發商帶來無比的價值。藉由它的易用性和可擴展性,它將提升我們為全球使用者提供雲端全通路供應鏈解決方案的能力。”— John Sarvari,集團技術副總裁, JDA
Spanner 的發展
數十年來,開發人員依靠傳統資料庫和關係數據模型以及 SQL 語義來構建應用程序,以滿足業務需求。同時,對於大規模和快速高效的數據處理的需求也催生了 NoSQL 解決方案,但是它們並沒有滿足一致性的能力。因此在 2007 年 Google 的一個系統研究人員和工程師團隊著手開發一個全球分佈式資料庫,以彌補這一差距。2012 年, Google 發表了 Spanner 的相關研究,包含多項革新,成就了現今這個兼具兩種功能的產品:
值得注意的是,Cloud Spanner 在不違反 CAP 定理的情況下實現了這些功能組合。 瞭解更多:Google 基礎設施和 CAP 定理。
Google 在全球各地的機房測試了 Spanner 內部數百種不同的應用程式和 PB 級數據。 Spanner 支援每秒數千萬次查詢,並運行一些包含 AdWords 和 Google Play 等關鍵服務。
如果您的 MySQL 或 PostgreSQL 系統瀕臨乘載量的極限,或您正為了在 eventually-consistent 類型的資料庫上自行實作 transaction 而困擾,那麼Cloud Spanner 就是您正在尋找的解決方案。
更多 Cloud Spanner 資訊請參考:https://cloud.google.com/spanner/
(原文翻譯自:https://goo.gl/daixPN)