DynamoDB のグローバルセカンダリインデックスの多重定義 - Amazon DynamoDB

DynamoDB のグローバルセカンダリインデックスの多重定義

Amazon DynamoDB には、テーブルあたりの 20 グローバルセカンダリインデックスのデフォルトのクォータがありますが、実際には 20 以上のデータフィールドでインデックスを作成できます。スキーマが均一であるリレーショナルデータベース管理システム (RDBMS) のテーブルとは対照的に、DynamoDB のテーブルでは、一度に多数の異なるタイプのデータ項目を保持することができます。さらに、異なる項目に含まれている同じ属性に、まったく異なる種類の情報を含めることができます。

さまざまな種類のデータを保存する DynamoDB テーブルレイアウトの次の例を考えてみましょう。

GSI 多重定義のテーブルスキーマ。

Data 属性。すべての項目に共通ですが、親項目に応じて内容が異なります。テーブルのソートキーをパーティションキーとして使用し、Data 属性をソートキーとして使用するテーブルのグローバルセカンダリインデックスを作成した場合、その 1 つのグローバルセカンダリインデックスを使用してさまざまな異なるクエリを作成できます。例えば、次のようなクエリがあります。

  • Employee_Name をパーティションキーバリューとして使用し、従業員の名前 (Murphy, John など) をソートキーバリューとして使用し、グローバルセカンダリインデックスの名前で従業員を検索します。

  • グローバルセカンダリインデックスを使用して、倉庫 ID (Warehouse_01 など) を検索して特定の倉庫で作業しているすべての従業員を検索します。

  • 最新の採用者のリストを取得して、HR_confidential のグローバルセカンダリインデックスをパーティションキーバリューとして使用し、日付範囲をソートキーバリューとして使用してクエリします。