ネイティブ モードと Datastore モードの選択

新しい Cloud Firestore データベースを作成する際に、データベース インスタンスを Datastore モードで実行するように構成できます。これにより、データベースの Cloud Datastore との下位互換性を可能にします。Cloud Firestore の 2 つのデータベース モード(ネイティブ モードDatastore モード)の違いについて説明します。

ネイティブ モードの Cloud Firestore

Cloud Firestore は、Cloud Datastore のリブランディングとなる次期メジャー バージョンです。Cloud Datastore と Firebase Realtime Database を最大限に活用し、自動スケーリングと高パフォーマンスを実現し、アプリ開発をより快適にするように構築された NoSQL ドキュメント データベースです。

Cloud Firestore には次のような新機能が導入されています。

  • 新しい強整合性に優れたストレージ レイヤ
  • コレクションとドキュメントのデータモデル
  • リアルタイム アップデート
  • モバイル クライアント ライブラリとウェブ クライアント ライブラリ

Cloud Firestore は Cloud Datastore と下位互換性がありますが、新しいデータモデル、リアルタイム アップデート、モバイルおよびウェブ クライアント ライブラリの機能はありません。Cloud Firestore のすべての新機能を利用するには、Cloud Firestore をネイティブ モードで使用する必要があります。

Datastore モードの Cloud Firestore

Datastore モードの Cloud Firestore は、Cloud Datastore システムの動作を使用しますが、Cloud Firestore のストレージ レイヤにアクセスするため以下の Cloud Datastore の制限がなくなります。

  • 結果整合性の制限がなくなり、Cloud Datastore クエリすべてで強整合性を確保できます。
  • 25 エンティティ グループまでというトランザクションの制限がなくなります。
  • 1 秒あたり 1 個というエンティティ グループへの書き込み制限がなくなります。

Datastore モードでは、Cloud Datastore と互換性のない Cloud Firestore の機能が無効になります。

  • プロジェクトは Cloud Datastore API リクエストを受け入れ、Cloud Firestore API リクエストを拒否します。
  • プロジェクトでは、Cloud Firestore インデックスの代わりに Cloud Datastore インデックスが使用されます。
  • そのプロジェクトでは Cloud Datastore クライアント ライブラリを使用できますが、Cloud Firestore クライアント ライブラリは使用できません。
  • Cloud Firestore のリアルタイム機能は利用できません。
  • GCP Console でのデータベース閲覧には Cloud Datastore Viewer を使用します。

Datastore モードへの自動アップグレード

既存の Cloud Datastore データベースがすべて、Datastore モードの Cloud Firestore に自動的にアップグレードされる予定です。Cloud Datastore データベースを必要とする新しいプロジェクトでは、Datastore モードの Cloud Firestore を使用する必要があります。

料金とロケーション

ネイティブ モードと Datastore モードのデータベースは同じ料金体系をとり、同じロケーションで利用できます。料金とロケーションについては、以下のページで詳しく説明しています。

ネイティブ モードの Cloud Firestore

Datastore モードの Cloud Firestore

データベース モードの選択

データベース モードを選択する際は、以下をおすすめします。

  • 新しいサーバー プロジェクトの場合は、Datastore モードで Cloud Firestore を使用する。

    Datastore モードで Cloud Firestore を使用すると、既存の Cloud Datastore サーバー アーキテクチャを使用しながら、基本的な Cloud Datastore の制限を排除できます。Datastore モードでは、毎秒数百万回の書き込みまで自動的にスケーリングします。

  • モバイルアプリやウェブアプリの場合は、ネイティブ モードで Cloud Firestore を使用する。

    Cloud Firestore では、リアルタイムおよびオフライン機能を備えたモバイルおよびウェブ クライアント ライブラリを利用できます。ネイティブ モードでは、数百万のクライアント同時実行まで自動的にスケーリングします。

機能の比較

次の表は、データベース モードのシステム動作を比較したものです。

Cloud Firestore
ネイティブ モード
Cloud Firestore
Datastore モード
データモデル ドキュメントとコレクションに分類されたドキュメント データベース 種類とエンティティのグループに分類されたエンティティ
ストレージ レイヤ 常に強整合性のある新たなストレージ レイヤ 常に強整合性のある新たなストレージ レイヤ
クエリとトランザクション
  • データベース全体での強整合性を確保したクエリ
  • 任意の数のコレクションにおいて、トランザクションごとに 500 ドキュメントまで
  • 制限事項: コレクション グループのクエリと射影クエリはありません。
  • Cloud Datastore の以前の整合性の制限を排除
  • データベース全体での強整合性を確保したクエリ
  • トランザクションでは任意の数のエンティティ グループにアクセス可能
Cloud Datastore v1 API のサポート なし。リクエストが拒否される あり
Cloud Firestore v1 API のサポート あり なし。リクエストが拒否される
リアルタイム アップデート

リアルタイム更新のための、ドキュメントまたは一連のドキュメントをリッスンする機能をサポート

ドキュメントまたは一連のドキュメントをリッスンしながら、クライアントにデータの変更を通知し、最新のデータセットを送信

非対応
オフライン データの永続性 モバイル クライアント ライブラリとウェブ クライアント ライブラリでオフライン データの永続性をサポート 非対応
クライアント ライブラリ Cloud Firestore クライアント ライブラリ:
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
  • Android
  • iOS
  • ウェブ
Cloud Datastore クライアント ライブラリ:
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
セキュリティ
  • Cloud Identity and Access Management(IAM)でデータベース アクセスを管理
  • Cloud Firestore のセキュリティ ルールは、モバイルおよびウェブ クライアント ライブラリのサーバーレス認証および承認をサポート
Cloud Identity and Access Management(IAM)でデータベース アクセスを管理
パフォーマンス 数百万のクライアント同時実行まで自動的にスケーリング。1 秒あたり最大 10,000 件の書き込み 毎秒数百万回の書き込みまで自動的にスケーリング
SLA Cloud Firestore SLA Cloud Firestore SLA
場所
  • 米国(マルチリージョン)
  • ヨーロッパ(マルチリージョン)
  • モントリオール
  • ロサンゼルス
  • サウスカロライナ
  • バージニア州北部
  • サンパウロ
  • ロンドン
  • フランクフルト
  • 東京
  • ムンバイ
  • シドニー
  • 米国(マルチリージョン)
  • ヨーロッパ(マルチリージョン)
  • モントリオール
  • ロサンゼルス
  • サウスカロライナ
  • バージニア州北部
  • サンパウロ
  • ロンドン
  • フランクフルト
  • 東京
  • ムンバイ
  • シドニー
料金 同じ料金体系
Console Firebase コンソールおよび GCP Console Firestore Viewer GCP Console Datastore Viewer
名前空間 非対応 名前空間に対応
App Engine クライアント ライブラリの統合

App Engine スタンダード環境の Python 2.7 および PHP 5.5 ランタイムではサポートされない

App Engine スタンダード環境の Python 3.7、PHP 7.2、Java 8、Go、Node.js のランタイムでサポート

App Engine フレキシブル環境のすべてのランタイムでサポート

すべてのランタイムでサポート
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Datastore ドキュメント