DynamoDB のグローバルセカンダリインデックスの多重定義
Amazon DynamoDB には、テーブルあたりの 20 グローバルセカンダリインデックスのデフォルトのクォータがありますが、実際には 20 以上のデータフィールドでインデックスを作成できます。スキーマが均一であるリレーショナルデータベース管理システム (RDBMS) のテーブルとは対照的に、DynamoDB のテーブルでは、一度に多数の異なるタイプのデータ項目を保持することができます。さらに、異なる項目に含まれている同じ属性に、まったく異なる種類の情報を含めることができます。
さまざまな種類のデータを保存する DynamoDB テーブルレイアウトの次の例を考えてみましょう。
Data
属性。すべての項目に共通ですが、親項目に応じて内容が異なります。テーブルのソートキーをパーティションキーとして使用し、Data
属性をソートキーとして使用するテーブルのグローバルセカンダリインデックスを作成した場合、その 1 つのグローバルセカンダリインデックスを使用してさまざまな異なるクエリを作成できます。例えば、次のようなクエリがあります。
Employee_Name
をパーティションキーバリューとして使用し、従業員の名前 (Murphy, John
など) をソートキーバリューとして使用し、グローバルセカンダリインデックスの名前で従業員を検索します。グローバルセカンダリインデックスを使用して、倉庫 ID (
Warehouse_01
など) を検索して特定の倉庫で作業しているすべての従業員を検索します。最新の採用者のリストを取得して、
HR_confidential
のグローバルセカンダリインデックスをパーティションキーバリューとして使用し、日付範囲をソートキーバリューとして使用してクエリします。