資料儲存庫總覽

Firestore (Datastore 模式) 是專為自動調整資源配置、發揮高效能及協助開發應用程式所打造的 NoSQL 文件資料庫。Datastore 的功能包括:

  • 不可分割的交易:Datastore 可執行一系列必須全數成功否則會全數失敗的作業。
  • 高可用性的讀取和寫入作業:Datastore 在 Google 資料中心內執行,這些資料中心會透過備援功能盡量減少故障點造成的影響。
  • 具備大規模擴充性和高效能:Datastore 使用分散式架構,自動管理資源調度作業。Datastore 混用索引和查詢限制,因此查詢作業可依照結果集 (而非資料集) 的大小調整規模。
  • 彈性的資料儲存與查詢:Datastore 可順利對應到物件導向語言與指令碼語言,並透過多個用戶端向應用程式公開。此外也提供類似 SQL 的查詢語言
  • 同步一致性:Datastore 可確保所有查詢都保持同步一致性。
  • 靜態資料加密Datastore 會在將所有資料寫入磁碟之前,自動加密資料,並在獲得授權的使用者讀取資料時自動解密資料。詳情請參閱「伺服器端加密」。
  • 無需停機的全代管服務:Google 負責管理服務,讓您能專注於應用程式上。當服務進行預定的升級時,您的應用程式仍然可以使用 Datastore。

與關聯資料庫的比較

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

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

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

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

適用場合

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

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

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

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

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

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

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

後續步驟

透過 App Engine 連線至 Datastore

App Engine 的 Go 標準執行階段使用 Go Datastore API 連線至 Datastore。如需 datastore 套件內容的完整清單,請參閱 datastore 套件參考資料

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