DynamoDB テーブルのデータモデリング - Amazon DynamoDB

DynamoDB テーブルのデータモデリング

データモデリングに進む前に、DynamoDB の基礎を理解することが重要です。DynamoDB は、柔軟なスキーマを可能にする key-value NoSQL データベースです。各項目のキー属性以外の一連のデータ属性は、均一または個別のいずれかにすることができます。DynamoDB のキースキーマは、パーティションキーで項目を一意に識別する単純なプライマリキー形式であるか、パーティションキーとソートキーの組み合わせで項目を一意に定義する複合プライマリキー形式のいずれかです。パーティションキーは、データの物理的な場所を特定して取得するためにハッシュ化されます。そのため、データを均等に分散させるには、カーディナリティが高く、水平方向にスケーラブルな属性をパーティションキーとして選択することが重要です。ソートキー属性は、キースキーマではオプションです。ソートキーを使用すると、1 対多リレーションシップをモデル化し、DynamoDB で項目コレクションを作成できます。ソートキーは範囲キーとも呼ばれます。ソートキーを使用して項目コレクション内の項目をソートし、柔軟な範囲ベースの操作を可能にすることもできます。

DynamoDB のキースキーマの詳細とベストプラクティスについては、以下を参照してください。

DynamoDB で追加のクエリパターンをサポートするには、多くの場合、セカンダリインデックスが必要になります。セカンダリインデックスは、同じデータがベーステーブルとは異なるキースキーマで整理されているシャドウテーブルです。ローカルセカンダリインデックス (LSI) は、ベーステーブルと同じパーティションキーを共有し、代替のソートキーを使用することでベーステーブルの容量を共有できます。グローバルセカンダリインデックス (GSI) では、ベーステーブルとは異なるパーティションキーと異なるソートキー属性を使用できます。つまり、GSI のスループット管理はベーステーブルとは独立しています。

セカンダリインデックスとベストプラクティスの詳細については、以下を参照してください。

ここで、データモデリングをもう少し詳しく見てみましょう。高度に最適化された柔軟なスキーマを設計するプロセスは、DynamoDB に限らず、どの NoSQL データベースであっても習得が難しいスキルと言えます。このモジュールの目標は、ユースケースから本番環境へと導く、スキーマ設計のメンタルフローチャートの開発を支援することにあります。まず、あらゆる設計の基本となる、シングルテーブル設計とマルチテーブル設計の選択について簡単に説明します。次に、アプリケーションの組織上またはパフォーマンス上のさまざまな結果を達成するために使用できる多様な設計パターン (構成要素) を確認します。最後に、ユースケースや業界別に異なる完全なスキーマ設計パッケージを紹介します。

データ、データ下のブロック、ブロック下の基盤の概念的な相互関係を示す画像。