まとめ
このモジュールでは、Azure Cosmos DB のような NoSQL データベースのデータのモデリングとパーティション分割に関する主要な概念と手法について学習しました。 これらを、リレーショナル データベースから NoSQL データベースに移行する必要のある eコマース アプリケーションに適用しました。 このモジュールで学習した内容は次のとおりです。
- リレーショナル データベースと NoSQL データベースの違い: 一般的に垂直方向にスケーラブルなリレーショナル データベースに対し、Azure Cosmos DB のような NoSQL データベースが水平方向にどのようにスケーラブルであるかについて学習しました。
- データをモデリングするためのアクセス パターンの使用: アプリケーションのデータへのアクセス パターンを理解することが、データのモデリング方法とパーティション分割方法にどのように重要な役割を果たすかについて学習しました。
- 埋め込みと参照: 1 つのドキュメント内に異なるエンティティを埋め込む方がよい場合と、データを参照して別の行として格納する方がよい場合について学習しました。
- パーティション キーの選択: パーティション キーを選択するための主要な概念について学習しました。 これらの概念には、ホット パーティションを回避する方法や、読み取りと書き込みの両方が多いワークロードを処理する方法などが含まれます。
- 検索または参照データのモデリング: 最後に、他のデータの検索または参照として使用されるデータをモデリングする方法について学習しました。
NoSQL データベース用にモデリングするために、これらすべての概念と手法をリレーショナル データベースに適用しました。 3 つの顧客エンティティをモデリングし、それらを 1 つのドキュメントに埋め込みました。 その結果、データに対する要求数が減り、パフォーマンスが向上しました。
製品カテゴリと製品タグのエンティティもモデリングしました。 また、小さなルックアップ テーブルに必要な全体のストレージとスループットを削減するために特別な手法を使用しました。
このモジュールが完了したので、次のことができるようになりました。
- データのアクセス パターンを決定します。
- 効率的でスケーラブルな NoSQL データベースをサポートするデータ モデルとパーティション分割の戦略を適用します。
詳細情報
- NoSQL データベースとリレーショナル データベースの違いについて
- Azure Cosmos DB のデータ モデリング
- 現実の例を使用して Azure Cosmos DB のデータをモデル化およびパーティション分割する方法
- Azure Cosmos DB でのパーティション分割と水平スケーリング
- パーティション分割戦略とプロビジョニング済みスループット コスト