クエリ インターフェースの概要
このページでは、ネイティブ モードの Firestore データベース内のデータにアクセスするために使用できるさまざまなインターフェースについて説明します。
オペレーション インターフェース
ネイティブ モードの Firestore では、データにアクセスするための 2 つのインターフェースがサポートされています。
パイプライン オペレーション
Firestore の新しいクエリ インターフェース。パイプライン オペレーションは、ステージベースのコンポーズ可能な構文をサポートしています。オペレーションは、順番に実行される一連の連続したステージを定義することで構築します。これにより、以前のインターフェース(コア オペレーション)では不可能だった集計結果のフィルタリングなどの複雑なオペレーションが可能になります。
パイプライン オペレーションは Firestore Enterprise エディションでのみ使用でき、プレビューのリリース ステージにあります。
コア オペレーション
コア オペレーションは、Firestore の元のインターフェースです。コア オペレーションでは、ドキュメントまたはコレクションの参照でメソッド チェーン構文(.where()、.orderBy()、.get())を使用してドキュメントを取得します。クエリ ステージの順序は暗黙的であり、集計のサポートは制限されています。
Core オペレーションは Enterprise エディションと Standard エディションの両方で利用できますが、インデックスのデフォルトはエディション間で大きく異なります。詳しくは、次のセクションをご覧ください。
エディション間のインターフェースの違い
Enterprise エディションにネイティブ モードの Firestore のサポートが導入されたため、Firestore Core オペレーションと Pipeline オペレーションの両方を使用できます。Enterprise エディションで Core オペレーションを使用する場合、新しいインデックス動作と料金モデルにより、Standard エディションの制限の多くが解消されます。
| 機能 | Standard エディション | Enterprise エディション |
| サポートされているクエリ オペレーション | Firestore Core オペレーションに限定されます。 | Firestore Core オペレーションと Pipeline オペレーション、MongoDB 互換の Firestore のオペレーションをサポートします。 |
| インデックス作成の要件 | すべてのクエリにはインデックスが必要です。 | クエリにインデックスは必要ありません。 |
| インデックスの作成 | 単一フィールドに対して自動インデックスが作成されます。複合インデックスは手動で作成できます。 | 自動インデックスは作成されません。インデックスは手動で管理する必要があります。 |
| クエリのパフォーマンスと費用 | 通常、インデックス要件によりクエリのパフォーマンスが向上します。 | インデックスを作成して、クエリのパフォーマンスと費用を最適化します。Query Explain と Query Insights を使用して、不足しているインデックスを特定できます。 インデックスなしのクエリを使用すると、データセットの増加に伴ってパフォーマンスが低下し、コストが高くなる可能性があるため、モニタリングとチューニングが必要になります。 |
| インデックス作成のオーバーヘッド費用 | インデックスは自動で作成されるため、インデックス書き込みの料金は発生しません。 | インデックス エントリの書き込みでは、関連付けられたドキュメントが書き込まれるときに書き込みユニットが消費されます(インデックス エントリ サイズの 1 KiB あたり 1 個の書き込みユニット)。すべてのフィールドにインデックス エントリが作成されるわけではないため、ストレージ費用を節約できます。 |
| 課金モデル(読み取り/書き込み/削除) | ドキュメントの読み取り、書き込み、削除ごとに課金されます。 | 読み取りと書き込み(トランシェ)ごとに課金されます。読み取りは読み取りユニット(4 KiB トランシェ)単位で課金されます。書き込みと削除は、書き込みユニット(1 KiB トランシェ)に統合されます。 |
| 基本料金(100 万件あたり)
表示されている料金は us-central1 リージョンのものです |
読み取り: ドキュメント 100,000 点あたり$0.03(または 100 万点あたり $0.30)。 書き込み: ドキュメント 100,000 点あたり$0.09(または 100 万点あたり $0.90)。 削除: ドキュメント 100,000 点あたり$0.01(または 100 万点あたり $0.10) |
読み取りユニット: 読み取りユニット 100 万件あたり$0.05。 書き込みユニット: 書き込みユニット 100 万件あたり$0.26。通常、ドキュメントが 4 KiB 未満の場合、料金は標準読み取りの費用よりも低くなります。 |
| リアルタイム アップデート
表示されている料金は us-central1 リージョンのものです |
リアルタイム アップデートは、ドキュメント 100,000 点あたり $0.03 の読み取りとして課金されます。 | リアルタイム アップデートには新しい別の SKU(リアルタイム アップデート ユニット)があり、4 KiB トランシェごとに課金されます。リアルタイム アップデートの費用は、100 万読み取りユニットあたり$0.30 です。 |