はじめに

完了

Azure Cosmos DB は、Azure で動作するフル マネージド Microsoft NoSQL データベースです。 NoSQL データベースである Azure Cosmos DB は、水平方向にスケーラブルであると同時に非リレーショナルです。 Azure Cosmos DB には水平方向のスケーラビリティがあるため、一般的なリレーショナル データベースのサイズをはるかに超えて拡張できます。 また、Azure Cosmos DB では、データに対するリレーショナル制約が適用されないため、Azure Cosmos DB は予測可能なパフォーマンスを提供できます。

このレベルのスケーラビリティを実現するには、データのモデリングとパーティション分割に関する NoSQL データベースに固有の概念、手法、技術について理解しておくことが重要です。 また、参照整合性の維持などのリレーショナル概念が NoSQL の世界にどのように適用されるのかを理解しておくことも重要です。

Diagram that illustrates the horizontal scalability of Azure Cosmos DB. :

シナリオ

あなたは、オンライン注文を管理するデータベースを設計している小売スタートアップ企業で働いているとします。 効率的なデータベース設計の提案に取り組んでいます。 基になるリレーショナル モデルが与えられています。 あなたは、スケーラビリティ、効率性、パフォーマンスを向上させるため、モデルを NoSQL に移行しようとしています。 これまでにほとんどのエンティティをモデル化しましたが、モデル化してさらに最適化する必要のあるエンティティが他にもあります。

学習内容

このモジュールでは、製品と販売注文のエンティティをモデル化することにより、eコマース アプリケーション用の NoSQL データベースの再設計を完了します。 このプロセスでは、次の概念について学習し、適用します。

  • 非正規化: 製品データをモデル化するときに、この概念を適用します。 その後、データをリレーショナル方式で格納する場合と、NoSQL データベース用にモデル化した場合とで、パフォーマンスとコストの違いを測定します。
  • 参照整合性: "変更フィード" と呼ばれる機能を使用して、2 つの異なるコンテナーに格納されているデータ間の参照整合性を維持する方法を学習します。 この eコマースのシナリオでは、変更フィードを使用して、カテゴリの名前が変更されたときにカテゴリのすべての製品を自動的に更新する方法を説明します。
  • エンティティの結合: 同じコンテナーに異なるエンティティを格納する概念を調べ、NoSQL モデルでこの手法を適用できる場合を説明する方法を学習します。
  • 集計の非正規化: データの集計値のクエリを頻繁に実行する場合にクエリのパフォーマンスを向上させる手法を適用します。 この手法は、サブクエリで最初に "グループ化と集計" を実行してから、結果に対して "並べ替え" を行う "外側のクエリ" を実行する必要があるクエリでも役に立ちます。 この手法には Azure Cosmos DB のトランザクション機能が使用されます。そのプロセスの一部である、"トランザクション バッチ" という SDK 機能について学習します。

主な目標

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

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

  • 高度なモデリングとパーティション分割戦略を使用して、データ エンティティ間のリレーションシップを管理します。
  • 変更フィードを使用して、データの参照整合性を維持します。
  • データの事前集計と非正規化の戦略を実装して、データモデルのパフォーマンスとスケーリングを向上させます。
  • 1 つのコンテナーでエンティティ型を混在させて、ストレージとコンピューティングを最適化する