はじめに

完了

Azure Cosmos DB は、Azure で動作する Microsoft のフル マネージド NoSQL データベースです。 NoSQL データベースである Azure Cosmos DB は非リレーショナルであり、さらに水平方向にスケーラブルです (つまりスケールアウトします)。このスケールアウトする機能を実現するには、コンテナーにノードまたはパーティションを追加します。

このスケールアウトする機能により、理論的にはコンテナーを無限のサイズに拡大できます。 そのため、コンテナーのサイズが大きくなるにつれて、コンテナーで処理できる要求数も増え、コンテナーがどれだけ大きくなっても同じパフォーマンスを提供できます。

ただし、このレベルのスケーラビリティを実現するには、ユーザーはデータのモデリングとパーティション分割に関する Azure Cosmos DB に固有の概念と手法について理解しておく必要があります。 ユーザーは、NoSQL データベース全般の概念についても理解する必要があります。

シナリオ

オンライン注文を管理するデータベースを設計している小売スタートアップ企業で働いていると想像してください。 あなたは、Azure Cosmos DB for NoSQL を使用した効率的なデータベース設計に関する提案に取り組んでいます。 着手するにあたって、エンティティ リレーションシップ モデルが用意されています。 最大限のスケーラビリティ、パフォーマンス、効率を実現し、このタスクを達成するには、データを正しくモデル化する必要があります。

次のエンティティリレーションシップ ダイアグラム (ER モデル) は、対象とする予定の 9 つのエンティティの詳細を示しています。 このリレーショナル モデルには、9 個のエンティティがそれぞれ独自のテーブル内にあります。

アプリケーション例のリレーショナル モデルを示した図。

この実現方法

このモジュールでは、既存のリレーショナル データ モデルを、eコマース アプリケーション用の NoSQL データベースとして再設計します。 この過程で、次の概念について学習します。

  • リレーショナル データベースと NoSQL データベースの違い:NoSQL データベースとリレーショナル データベースの違いと、その理由について説明します。
  • アプリケーション データ アクセス パターンを使用してデータをモデル化する:アプリケーションによるデータの読み書き方法が、NoSQL データベースのそのモデリングにどのように影響するかについて説明します。
  • 埋め込みと参照:同じドキュメント内にデータを埋め込む必要がある場合と、データを別のドキュメントとして格納する必要がある場合について学習します。
  • パーティション キーの選択:スケールアウトする機能を実現し、読み取りまたは書き込み、またはその両方の負荷が高いワークロードを最適化するために、最適なパーティション キーを選択する上で必要な主要な概念について説明します。
  • 検索または参照データのモデリング:最後に、他のデータの検索または参照として使用されるデータをモデル化する方法について説明します。

主な目標

このモジュールと付随するモジュール「Azure Cosmos DB の高度なモデリング パターンを使用してデータベースを最適化する」を完了すると、Azure Cosmos DB にデプロイされる NoSQL データベース用にデータを適切にモデリングおよびパーティション分割するための知識とスキルが得られます。

このモジュールを終了すると、次のことができるようになります。

  • データのアクセス パターンを決定します。
  • 効率的でスケーラブルな NoSQL データベースをサポートするデータ モデルとパーティション分割の戦略を適用します。