Cloud Datastore 總覽

Cloud Datastore 是專為自動調整資源配置、提供高效能及便利開發應用程式所建構的 NoSQL 文件資料庫。Cloud Datastore 的功能包含:

  • 不可分割的交易:Cloud Datastore 可執行一系列必須全數成功否則會全數失敗的作業。
  • 高可用性的讀取和寫入作業:Cloud Datastore 在 Google 資料中心內執行,這些資料中心會透過備援功能盡量減少故障點造成的影響。
  • 具備大規模擴充性和高效能:Cloud Datastore 使用分散式架構,自動管理資源調度作業。Cloud Datastore 混用索引和查詢限制,因此查詢作業可依照結果集 (而非資料集) 的大小調整規模。
  • 彈性的資料儲存與查詢:Cloud Datastore 可順利對應到物件導向語言與指令碼語言,並透過多個用戶端向應用程式公開。此外也提供類似 SQL 的查詢語言
  • 平衡同步一致性與最終一致性:Cloud Datastore 可確保按照索引鍵進行的實體查詢和祖系查詢一律會收到具有同步一致性的資料。所有其他查詢則具有最終一致性。一致性模型可讓應用程式在處理大量資料和使用者的同時提供絕佳的使用者體驗。

  • 靜態資料加密:Cloud Datastore 會在將所有資料寫入磁碟之前,自動加密資料,並在獲得授權的使用者讀取資料時自動解密資料。詳情請參閱伺服器端加密一文。

  • 無需停機的全代管服務:Google 負責管理 Cloud Datastore 服務,讓您能專注於應用程式上。當服務進行預定的升級時,您的應用程式仍然可以使用 Cloud Datastore。

Datastore 模式 的 Cloud Firestore

Cloud Firestore 是 Cloud Datastore 的最新版,推出了 Cloud Datastore 的多項改進功能。現有 Cloud Datastore 使用者可透過新建 Datastore 模式 的 Cloud Firestore 資料庫執行個體,存取這些改良功能。未來,所有現有 Cloud Datastore 資料庫都將自動升級為 Datastore 模式的 Cloud Firestore

與傳統資料庫的比較

雖然在介面上有許多與傳統資料庫相同的功能,但由於 Cloud Datastore 為 NoSQL 資料庫,因此說明資料物件關係的方式會與傳統資料庫有所不同。以下是 Cloud Datastore 和關聯資料庫概念的概略比較:

概念 Cloud Datastore Cloud Firestore 關聯資料庫
物件類別 種類 集合群組 資料表
單一物件 實體 文件 資料列
物件的個別資料 屬性 欄位 資料欄
物件的唯一識別碼 索引鍵 文件 ID 主要索引鍵

與關聯資料庫資料表中的資料列不同的是,相同種類的 Cloud Datastore 實體可以擁有不同的屬性,而不同的實體則可以擁有名稱相同但值類型不同的屬性。這些獨特的特性代表採用不同的設計和管理資料方式,以利用自動調整資源配置的功能。Cloud Datastore 尤其在以下重要方面與傳統的關聯資料庫不同:

  • Cloud Datastore 在設計上能自動調整資源配置,以處理非常龐大的資料集,讓應用程式在流量增加時依然能夠保持高效能:
    • Cloud Datastore 寫入功能可視需要自動發佈資料來調整資源配置。
    • Cloud Datastore 讀取功能可調整資源配置,因為唯一支援的查詢是隨著結果集 (而非資料集) 的大小調整效能的查詢。這代表對於結果集包含 100 個實體的查詢而言,無論是搜尋超過 100 個實體或 100 萬個實體,在效能的表現上皆無差別。這個屬性是部分類型的查詢沒有受到支援的重要原因。
  • 由於所有查詢都是由先前建構的索引提供服務,因此相較於使用 SQL 的關聯資料庫允許的查詢類型,Cloud Datastore 可以執行的查詢類型會受到更多限制。特別是 Cloud Datastore 不支援彙整作業、對多個屬性進行不等式篩選,或根據子查詢的結果篩選資料。
  • 傳統的關聯資料庫會強制執行結構定義,但 Cloud Datastore 卻沒有結構定義。它不要求相同種類的實體擁有一致的屬性集 (雖然您可以選擇在自己的應用程式程式碼中強制執行這類要求)。

適用場合

Cloud Datastore 非常適合需仰賴大量高可用性結構化資料的應用程式。您可以使用 Cloud Datastore 儲存及查詢以下類型的所有資料:

  • 為零售商提供即時庫存清單和產品詳細資料的產品目錄。
  • 根據使用者過去的活動和偏好設定提供自訂體驗的使用者個人資料。
  • 根據 ACID 屬性進行的交易,例如將資金從某個銀行帳戶轉移至另一個帳戶。

其他儲存空間和資料庫選項

Cloud Datastore 並非適用於所有用途。例如,Cloud Datastore 不是關聯資料庫,因此不是分析資料的有效儲存解決方案。

以下是一些您可能應考慮使用 Cloud Datastore 替代方案的常見情境:

  • 如果您需要對線上交易處理 (OLTP) 系統提供完整 SQL 支援的關聯資料庫,請考慮使用 Cloud SQL
  • 如果您不需要 ACID 交易支援服務,或者您的資料不是高度結構化資料,請考慮使用 Cloud Bigtable
  • 如果您需要在線上分析處理 (OLAP) 系統中進行互動式查詢,請考慮使用 BigQuery
  • 如果您需要儲存不變的大型 blob (例如大型圖片或影片),請考慮使用 Cloud Storage

如要進一步瞭解其他資料庫選項,請參閱資料庫服務總覽

透過 App Engine 連線至 Cloud Datastore

App Engine 的 Python 標準執行階段使用 NDB 用戶端程式庫連線至 Cloud Datastore。NDB 用戶端程式庫不僅可在無結構定義物件資料儲存庫中提供永久儲存空間,還提供自動快取、精密查詢及不可分割交易等支援。

您無法在 App Engine 標準環境中將 Cloud Datastore 用戶端程式庫與 Python 應用程式搭配使用。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Python 2 適用的 App Engine 標準環境