DynamoDB ソートキーを設定する方法

Dynamodb Sotokiwo She Dingsuru Fang Fa



DynamoDB は、テーブル内のデータを整理する機能により人気が高まり続けています。テーブル以外にも、DynamoDB には、データベースの使いやすさと、テーブルまたはデータベースのクエリとスキャンの処理に伴う便利さを支援する主キーがあります。

テーブルの作成時に DynamoDB のソートキーを設定する方法を理解すると、データの整理に大いに役立ちます。さらに、必要なときにいつでもデータを取得する効率が向上します。

この記事では、DynamoDB のソート キーに焦点を当てます。 DynamoDB のソートキーとは何かについて説明するだけでなく、それらを設定して使用する方法についても説明します。







DynamoDB ソートキーとは何ですか? また、いつ適用されますか?

ソートキーは、パーティション内のアイテムを整理するために DynamoDB で使用される属性です。通常、複数のアイテムのパーティション キーの値は似ていても、並べ替えキーの値は異なる場合があります。もちろん、DynamoDB はパーティション キーのみの使用と、パーティション キーとソート キーの両方を 1 つのテーブルに結合することをサポートしています。



このような場合、主キーはパーティション キーと並べ替えキーで構成され、それぞれの値は productID と productType です。複合キーと呼ばれるこの属性の組み合わせにより、アイテムの取得がより簡単かつ効率的になります。さらに、パーティション キーは内部 HASH 関数を使用し、ソート キーは RANGE 関数を使用します。



Dynamo DB テーブルでソートキーを設定する方法のステップバイステップガイド

パーティション キーと同様に、DynamoDB テーブルをセットアップすると、DynamoDB ソート キーが作成されます。どちらの場合も、最初にキー スキーマを作成する必要があります。並べ替えキーは独立しておらず、プライマリ複合キーまたはハッシュ範囲キーの組み合わせでパーティション キーと連携して機能するため、テーブルのパーティション キーを作成することから始めます。





ステップ 1: テーブルのパーティション キーを作成する

ソート キーは、パーティション キーと直接関係があります。また、DynamoDB の配置ではパーティション キーが最も支配的であるため、テーブル名を入力した後にパーティション キーを作成することから始めます。次の短縮構文を使用できます。

属性名=文字列、キータイプ=文字列 ...

簡略構文の属性タイプは、 文字列 (S)、数値 (N)、またはバイナリ (B)。ただし、パーティション キーを設定する際に省略形の構文が面倒な場合は、次の JSON 構文を使用できます。



[
{
'属性名': '文字列',
'KeyType': 'ハッシュ'
}
...
]

ステップ 2: ソートキーを追加する

次の JSON 構文を使用して、並べ替えキーの追加に進みます。ソートキーは ID であってはなりません。代わりに、属性 Type を使用してください。

[
{
'属性名': '文字列',
'KeyType': 'RANGE'
}
...
]

DynamoDB パーティション キーの作成時に HASH 関数を使用したことに注意してください。ここで、DynamoDB ソートキーを設定するときに RANGE 関数を使用します。

AWS マネジメント コンソールには、並べ替えキーを追加するオプション、示されているようにマークするオプション、キーを追加するオプションがあります。たとえば、新しい注文のテーブルで、customer_ID または order_ID をパーティション キーとして、invoice_number を並べ替えキーとして使用できます。

次の図を参照してください。

パーティション キーとソート キーの両方の属性が、文字列 (S)、数値 (N)、またはバイナリ (B) の形式であることに注意することが重要です。

Java では、パーティション キーとソート キーの両方のエントリを持つ Music テーブルは次のようになります。

パッケージcom.dynamoDbDemo.entity;
インポート com.amazonaws.services.dynamodbv2.datamodeling.*;

@DynamoDBTable(テーブル名 = '音楽')
公開クラス 音楽 {
プライベート ストリング アーティスト。
プライベート ストリング ソング タイトル。

@DynamoDBHashKey(attribute)
}

public void setSongTitle(String SongTitle) {
this.songTitle = songTitle;
}

@DynamoDBRangeKey(attribute) // ソートキー

public String getSongTitle() {
曲のタイトルを返します。
}

public void setSongTitle(String songTitle) {
this.songTitle = songTitle;
}

前のコマンドラインでは、DynamoDBTable は、プロパティをテーブル属性にマッピングするために使用される Java アノテーションであり、DynamoDBHashKey アノテーションはパーティションキーを属性とします。同様に、DynamoDBRangeKey アノテーションは、アイテムをソート キー属性専用にします。他の非プライマリ属性をテーブルに追加することができます。

結論

このガイドでは、DynamoDB テーブルにソート キーを設定する方法について説明します。一度作成したソート キー属性は変更できないことに注意してください。繰り返しますが、DynamoDB は、パーティション キーとソート キーを一緒に使用して、テーブルとインデックスのみをクエリすることに注意してください。ソート キーだけを使用してテーブルをクエリすることはできません。最初に必ずパーティション キーを指定してください。