Google Cloud Next Tokyo:7/30、31 東京ビッグサイトにて開催!

ドキュメント データベースとは。

ドキュメント データベースは、従来の固定テーブルではなく、JavaScript オブジェクト Notation(JSON)形式でデータを保存、管理、取得する NoSQL データベースの一種です。これらの「ドキュメント」はそれぞれ独自の構造を持つことができます。行と列で構成された固定のテーブルを使用するリレーショナル データベースとは異なります。

この柔軟性により、ドキュメント データベースは、AI 生成アプリケーションやセンサーデータなどの半構造化データや非構造化データを処理するのに理想的な選択肢となります。従来のスキーマでは制限が厳しすぎる場合でも対応できます。コンテンツ管理、e コマース、ゲームなどのユースケースで特に人気があります。

重要ポイント

ドキュメント データベースは、柔軟な「ドキュメント」にデータを保存する NoSQL データベースの一種で、多くの場合、JSON や BSON などの形式で提供されます。

ドキュメント データベースの特徴:

  • 柔軟なデータモデル: 各ドキュメントは独自の構造を持つことができ、オブジェクトをコードに直接マッピングする開発者フレンドリーな設計
  • 水平方向のスケーラビリティ: スケールアウトするように設計されたドキュメント データベースは、成長に合わせて簡単にスケールできます。
  • 豊富なクエリ機能: 強力なクエリ言語により、複雑なフィルタリング、並べ替え、データ集計が可能
  • さまざまなユースケース: ドキュメント データベースは、非構造化データや半構造化データに最適で、コンテンツ マネジメント システム、ユーザー プロファイル、健康記録、e コマース商品カタログなど、さまざまなユースケースがあります。

ドキュメント データベースの仕組み。

ドキュメント データベースは、スマートなデジタル ファイル キャビネットのようなものです。データはコレクション(フォルダ)にグループ化され、各コレクションには、顧客や商品などの単一のエンティティの自己完結型ドキュメント(ファイル)が格納されます。

厳格なリレーショナル テーブルとは異なり、各ドキュメントは固有の構造を持つことができます。たとえば、e コマース カタログ内の 1 つの商品に「sustainability_rating」フィールドを追加しても、他のすべての商品のスキーマを変更する必要はありません。

ドキュメント 1:

{

"id": 1,

"product_name": "blue shirt",

"product_category": "shirt",

"qty": 76,

"sustainability_rating": "moderate"

}


ドキュメント 2:

{

"id": 2,

"product_name": "green pants",

"product_category": "pants",

"qty": 44

}


ドキュメント 1:

{

"id": 1,

"product_name": "blue shirt",

"product_category": "shirt",

"qty": 76,

"sustainability_rating": "moderate"

}


ドキュメント 2:

{

"id": 2,

"product_name": "green pants",

"product_category": "pants",

"qty": 44

}


ドキュメント データベースは、AI アプリケーション、コンテンツ管理、e コマース、ゲームなど、柔軟性、スケーラビリティ、迅速な開発が求められるアプリケーションに最適です。

たとえば、1 つのソーシャル メディアの投稿には、ユーザー名、タイムスタンプ、「いいね」の数などの予測可能なフィールドを含む半構造化データが含まれていますが、その構造は柔軟です。ある投稿には位置情報のタグが付けられている場合もあれば、別の投稿にはタグ付けされたユーザーのリストが含まれている場合もあります。これに加えて、投稿には画像や動画などの非構造化データ、キャプションの自由形式のテキスト、一連のユーザー コメントが含まれる場合があります。

ドキュメント データベースは、構造化されたユーザー名から非構造化された画像やコメントまで、関連するすべての情報を 1 つのまとまった「ドキュメント」にまとめて保存するように設計されています。これにより、デベロッパーは、事前に厳格な定義済み構造にデータを強制的に当てはめることなく、実世界のデータを非常に効率的に処理できます。

ドキュメント データベースの主な機能

ドキュメント データベースは、最新の開発パターンとデータ効率をサポートするように設計された独自のアーキテクチャ機能によって、その特徴が際立っています。

ドキュメントは、リレーショナル データベースのテーブルと同様に、コレクションにグループ化されます。ただし、テーブルとは異なり、コレクションではすべてのドキュメントが同じ構造である必要がないため、より柔軟性が高くなります。たとえば、お客様の名前とメールアドレスは同じでも、お支払い方法が異なるドキュメントを想像してみてください。あるドキュメントにはクレジットカード情報が保存され、別のドキュメントには当座預金口座の銀行コード(ルーティング番号)と口座番号が保存されているかもしれません。

各ドキュメントが独自の構造を持つだけでなく、情報が追加されると形式も変わる可能性があります。つまり、値だけでなくデータの構造も進化する可能性があります。これは、テーブル内のすべての行が同じ事前定義された列に準拠し、値のみが変化するリレーショナル データベースとは根本的に異なります。動的スキーマは、新しいビジネス要件を表現する単一のプロンプトがデータモデルの変更を反映するバイブ コーディングで特に強力です。

ドキュメント データベースでは、ドキュメントのフィールド内で直接クエリを実行でき、インデックスによって高速なクエリが可能になります。たとえば、メールアドレスでユーザーをすばやく見つけたり、特定の価格以上の注文を取得したりできます。

ドキュメント データベースは、ダウンタイムをほとんど、またはまったく発生させることなく、サーバーやクラスタをシームレスに追加して簡単に拡張できるように設計されています。このスケーラビリティにより、データニーズが拡大している、または予測できないアプリケーションに最適化されています。

ドキュメント データベースの主なユースケース

柔軟性、スケーラビリティ、スピードが不可欠なアプリケーションでは、ドキュメント データベースが広く採用されています。一般的なユースケースをいくつかご紹介します。

  • コンテンツ マネジメント システム(CMS): ブログ投稿から製品説明まで、多様なコンテンツを管理し、コンテンツの効率的な配信と更新を実現
  • e コマース プラットフォーム: 複雑な商品カタログ、ユーザー アカウント、リアルタイムのトランザクションを処理し、高性能なオンライン ストアを強化
  • モバイル アプリケーションとウェブ アプリケーション: デバイス間でシームレスなユーザー エクスペリエンスを提供する、高速で応答性の高いアプリケーションを構築
  • ゲーム開発: プレーヤー データ、ゲームの状態、リーダーボードを管理して、没入感のあるゲーム体験を創出
  • 医療アプリケーション: 機密性の高い患者情報を安全に保存、管理し、効率的で正確な医療提供を実現
  • AI を活用したアプリケーション: 迅速に進化し、変化する AI プロンプトに対応できるデータモデルで AI をサポート

ドキュメント データベース、Key-Value データベース、リレーショナル データベースの比較

ドキュメント データベース、リレーショナル データベース、Key-Value ストアはすべてデータを管理しますが、構造、柔軟性、速度に関する優先順位が異なります。

機能

ドキュメント データベース

Key value ストア

リレーショナル データベース

データ形式

リッチ、構造化ドキュメント

単純な Key-Value ペア

表形式(行と列)

柔軟性

高。ドキュメントごとに異なる

高い。列数は行ごとに異なる

制限あり、事前定義されたスキーマ

クエリ

高度(ネストされたフィールドを含む)

最適なパフォーマンスを得るために、キーまたはセカンダリ インデックスを使用

高度(JOIN を使用した複雑なクエリ)

最適な用途

迅速な開発と進化し続けるデータモデル

シンプルなデータ構造と高速なルックアップ

複数のテーブルにわたる強整合性とクエリ

機能

ドキュメント データベース

Key value ストア

リレーショナル データベース

データ形式

リッチ、構造化ドキュメント

単純な Key-Value ペア

表形式(行と列)

柔軟性

高。ドキュメントごとに異なる

高い。列数は行ごとに異なる

制限あり、事前定義されたスキーマ

クエリ

高度(ネストされたフィールドを含む)

最適なパフォーマンスを得るために、キーまたはセカンダリ インデックスを使用

高度(JOIN を使用した複雑なクエリ)

最適な用途

迅速な開発と進化し続けるデータモデル

シンプルなデータ構造と高速なルックアップ

複数のテーブルにわたる強整合性とクエリ

ドキュメント データベースとリレーショナル データベースの比較

ドキュメント データベースは、e コマース プラットフォームやモバイルアプリなど、データが急速に進化したり、さまざまな形式をとったりする、動的な環境で優れた性能を発揮します。柔軟性が高いため、さまざまなソースやスキーマの異なるデータセットに適しています。

一方、リレーショナル データベースは、金融システムや在庫管理など、整合性と構造が不可欠な従来のアプリケーションに最適です。たとえば、金融サービスでは、厳格なスキーマを維持することで、すべての顧客アカウントがガバナンスで要求される同じデータ型を使用できるようになります。

どちらかを選択する際の考慮事項:

  • 構造: リレーショナル データベースでは厳格なスキーマが適用されますが、ドキュメント データベースでは各レコードが独自の構造を持つことができます
  • リレーションシップ: リレーショナル データベースは JOIN オペレーションに依存してテーブルを接続しますが、ドキュメント データベースは多くの場合、関連データを単一のドキュメント内に埋め込んでアクセスを高速化します
  • スケーラビリティ: リレーショナル データベースは、単一のサーバーにリソースを追加する垂直方向のスケーリングは簡単ですが、水平方向のスケーリングには複雑なメカニズムが必要です。ドキュメント データベースは、複数のサーバーにわたる水平スケーリングを前提に構築されています
  • 柔軟性: ドキュメント データベースはデータモデルの変更に容易に適応できますが、リレーショナル データベースではスキーマを変更するのに多大な労力が必要になります

ビデオゲームなどの大規模で複雑なアプリケーションは、ドキュメント データベースとリレーショナル データベースの両方で構築されることがあり、それぞれのデータベースがデータの異なる部分を分担して保存します。

ドキュメント データベースと Key-Value ストア

ドキュメント データベースと Key-Value ストアはどちらも NoSQL データベースですが、データの処理方法に基づいて異なる目的で使用されます。

ドキュメント データベース: ドキュメント データベースは、Key-Value のコンセプトを拡張したものです。ドキュメントにはネストされたデータを含めることができ、ドキュメント データベースでは、このデータをインデックスに登録して、ネストされたデータの値に対してパフォーマンスの高いクエリを実行できる柔軟性が高くなっています。この構造により、ドキュメント データベースは多様なデータセットを管理し、高度なクエリをサポートできます。

Key-Value ストア: これらのデータベースは、キーと値のシンプルな構造を使用します。各キーは一意であり、その値を直接指します。このシンプルさにより、Key-Value ストアは検索が非常に高速になりますが、高度なクエリ言語を使用しないため、複雑なデータや階層データの処理には適していません。

それぞれの使用場面:

  • ユーザー セッションの管理やキャッシュなど、高速なルックアップが不可欠な単純なデータ構造には、Key-Value ストアを選択する
  • 複雑なネストされたデータ構造を持つアプリケーションにはドキュメント データベースを選択する

ドキュメント データベースに関するよくある質問

Firestore は、Google Cloud が提供するエンタープライズ グレードのフルマネージド サーバーレス ドキュメント データベースです。柔軟なドキュメントにデータを保存でき、他の Google Cloud サービスとシームレスに統合して、堅牢でスケーラブルなソリューションを実現します。

違いは構造と柔軟性にあります。Cloud SQLSpanner などの SQL データベースでは、行と列で構成された固定のテーブルが使用されます。Firestore などのドキュメント データベースは、柔軟な JSON ドキュメントにデータを保存するため、スキーマを壊すことなく構造を進化させることができます。

ドキュメント データベースを使用するメリット

ドキュメント データベースは、最新のデータニーズに対応するための強力なツールです。主なメリットは次のとおりです。

柔軟性

ドキュメント データベースは動的スキーマであるため、データモデルが頻繁に変更されるアプリケーションに有用です。

パフォーマンス

ドキュメント データベースは、組み込みのインデックス登録と効率的なデータアクセス パターンにより、大規模または複雑なデータセットを処理する場合でも高速です。

スケーラビリティ

水平スケーリングでは、データが増加するにつれてサーバーを追加できるため、成長するアプリケーションのパフォーマンスを一定に保つことができます。ドキュメント データベースは、各ノードにコンピューティング能力を追加することで垂直方向にスケーリングすることもできます。

デベロッパー エクスペリエンス

開発者が使い慣れた構文を使用して、JSON ドキュメントをデータベース内のオブジェクトにマッピングできます。コード内で直接ドキュメントを更新します。

データの汎用性

ドキュメント データベースは、非構造化情報や半構造化情報、画像や動画などのファイルに関連付けられたメタデータなど、さまざまなデータタイプの保存、管理、クエリにおいて優れた性能を発揮します。

ドキュメント データベースのニーズに合わせて Firestore を選択する

Firestore は、データベース管理の複雑さを軽減するフルマネージド ドキュメント データベースです。Google Cloud とそのグローバルにスケーラブルなプラットフォームの機能を最大限に活用できます。

小規模なアプリを構築する場合でも、グローバルなプラットフォームをスケーリングする場合でも、Firestore の機能は、柔軟性とパフォーマンスを維持しながら迅速に作業を進められるように設計されています。

  • プロビジョニングされた料金でのサーバーレス アーキテクチャ: Firestore はサーバーレスであるため、インフラストラクチャの設定や管理は不要です。データ負荷を処理するために自動的にスケーリングし、同時接続数は 0 から数百万にまで対応します。Firestore Enterprise エディションでは、プロビジョニングされた代替サービスと同等の価格で、サーバーレス データベースのメリットを享受できます。
  • 高度なクエリ機能: Firestore では、単純なドキュメント ルックアップだけでなく、全文検索(FTS)を含む複雑なクエリ パイプラインに構成可能な数百の演算子をサポートしています。
  • エンタープライズ グレード: 99.999% の可用性、ACID 準拠のマルチドキュメント トランザクション、顧客管理の暗号鍵(CMEK)、自動バックアップ、ポイントインタイム リカバリなど。
  • Google Cloud サービスとのインテグレーション: Cloud FunctionsCloud RunBigQuery などの他の Google Cloud サービスと簡単に接続できます。これにより、複雑な構成なしで強力なデータ処理と分析のパイプラインを実現できます。
  • MongoDB 互換性: MongoDB のドライバ、ツール、コードを使用して Firestore に直接接続できます。これにより、既存のアプリケーションの移行や、使い慣れたパターンを使用した新しいプロジェクトの開始が非常に簡単になります。
  • リアルタイムの更新: プラットフォームに直接組み込まれたライブデータの同期により、ユーザーの接続を維持します。
  • グローバルなスケーラビリティ: Firestore の水平スケーリング機能により、世界中のユーザーに低レイテンシのアクセスを保証しつつ、システムの成長に容易に対応できます。
  • デベロッパー フレンドリー: インフラストラクチャやメンテナンスを気にすることなく、革新的な機能の作成に集中できます。Firestore のフルマネージド サービスが、煩雑な作業を代行します。
  • 生成 AI 対応: Google AI Studio の統合により、シンプルなテキスト プロンプトを Firestore を基盤とするライブ アプリケーションに数秒で変換できます。リモート MCP サポートを使用して、お気に入りの AI エージェントやデベロッパー ツールを Firestore に直接安全に接続できます。Firestore のベクトル検索LangChainLlamaindex の統合により、生成 AI アプリケーションを簡単に構築します。ターンキーの拡張機能を使用すると、数回クリックするだけで Firestore を主要な AI サービスと統合できます。これにより、自動エンベディング生成、言語翻訳、画像分類などのユースケースが利用可能になります。
  • 永続的な無料枠: Firestore には十分な無料枠が用意されているため、スタートアップや小規模プロジェクトが、初期費用なしで成長に合わせてスケールアップできます。

Firestore は Google Cloud と Firebase の一部として、Firebase Auth、BigQuery、その他多くのサービスと簡単に統合してアプリケーションを強化できます。リアルタイムのコラボレーション ツールからモバイルアプリやエンタープライズ プラットフォームまで、Firestore は成功に必要なツールを提供します。

今すぐお試しください。使用量が少ない場合は無料枠をご利用いただけます。強力で信頼性が高く、スケーラブルなドキュメント データベースのメリットをぜひご体験ください。

Google Cloud でビジネスの課題を解決する

新規のお客様には、Google Cloud で使用できる無料クレジット $300 分を差し上げます。

参考情報

  • リレーショナル データベースとは:リレーショナル データベースの基礎を学びます。行と列でデータを構造化する方法や、強整合性を実現するためにリレーショナル データベースを使用するタイミングなどについて説明します。
  • NoSQL データベースとは:Key-Value ストア、ドキュメント ストア、ワイドカラム ストアなどのさまざまな種類の NoSQL データベースについて説明し、非構造化データをどのように処理するかを確認する
  • Firestore を使ってみる: このガイドに沿って、最初の Firestore データベースを設定し、データを追加して、Google Cloud でスケーラブルなアプリケーションの構築を開始します。

次のステップ

$300 分の無料クレジットと 20 以上の無料枠プロダクトを活用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud