Dynamodb-basic-concepts
DynamoDB-基本概念
DynamoDBを使用する前に、その基本的なコンポーネントとエコシステムに精通する必要があります。 DynamoDBエコシステムでは、テーブル、属性、アイテムを操作します。 テーブルにはアイテムのセットが保持され、アイテムには属性のセットが保持されます。 属性は、さらに分解する必要のないデータの基本要素、つまりフィールドです。
主キー
主キーはテーブルアイテムを一意に識別する手段として機能し、セカンダリインデックスはクエリの柔軟性を提供します。 DynamoDBストリームは、テーブルデータを変更することにより、レコードイベントをストリーミングします。
テーブルの作成では、名前を設定するだけでなく、主キーも設定する必要があります。テーブル項目を識別します。 キーを共有するアイテムは2つありません。 DynamoDBは2種類の主キーを使用します-
- パーティションキー-この単純なプライマリキーは、「パーティションキー」と呼ばれる単一の属性で構成されます。内部的に、DynamoDBはハッシュ値の入力としてキー値を使用してストレージを決定します。
- パーティションキーとソートキー-このキーは「複合プライマリキー」と呼ばれ、2つの属性で構成されています。
- パーティションキーと
- ソートキー。 + DynamoDBは最初の属性をハッシュ関数に適用し、同じパーティションキーを持つアイテムを一緒に保存します。ソートキーによって順序が決定されます。 アイテムはパーティションキーを共有できますが、ソートキーは共有できません。
主キー属性では、スカラー(単一)値のみが許可されます。文字列、数値、またはバイナリのデータ型。 非キー属性にはこれらの制約はありません。
二次インデックス
これらのインデックスにより、代替キーを使用してテーブルデータをクエリできます。 DynamoDBは使用を強制しませんが、クエリを最適化します。
DynamoDBは2種類のセカンダリインデックスを使用します-
- グローバルセカンダリインデックス-このインデックスにはパーティションキーとソートキーがあり、テーブルキーとは異なる場合があります。
- ローカルセカンダリインデックス-このインデックスはテーブルと同じパーティションキーを持っていますが、ソートキーは異なります。
API
DynamoDBが提供するAPI操作には、コントロールプレーン、データプレーン(作成、読み取り、更新、削除など)、およびストリームの操作が含まれます。 コントロールプレーンの操作では、次のツールを使用してテーブルを作成および管理します-
- CreateTable
- DescribeTable
- ListTables
- UpdateTable
- DeleteTable
データプレーンでは、次のツールを使用してCRUD操作を実行します-
Create | Read | Update | Delete |
---|---|---|---|
PutItem BatchWriteItem a |
GetItem BatchGetItem 問い合わせ Scan |
UpdateItem |
DeleteItem BatchWriteItem |
ストリーム操作はテーブルストリームを制御します。 次のストリームツールを確認できます-
- ListStreams
- DescribeStream
- GetShardIterator
- GetRecords
プロビジョニングされたスループット
テーブルの作成では、プロビジョニングされたスループットを指定します。これにより、読み取りおよび書き込み用のリソースが予約されます。 容量単位を使用して、スループットを測定および設定します。
アプリケーションが設定されたスループットを超えると、要求は失敗します。 DynamoDB GUIコンソールを使用すると、設定済みおよび使用済みのスループットを監視して、より優れた動的なプロビジョニングを実現できます。
一貫性の読み取り
DynamoDBは、動的アプリケーションのニーズをサポートするために、 _ eventually consistent_ および strongly consistent 読み取りを使用します。 最終的に一貫した読み取りでは、常に現在のデータが配信されるとは限りません。
強い整合性のある読み取りは、常に最新のデータを提供します(機器の障害またはネットワークの問題を除く)。 最終的に整合性のある読み取りがデフォルト設定として機能し、 ConsistentRead パラメーターをtrueに設定して変更する必要があります。
パーティション
DynamoDBは、データストレージにパーティションを使用します。 これらのテーブルのストレージ割り当てには、SSDバッキングがあり、ゾーン間で自動的に複製されます。 DynamoDBはすべてのパーティションタスクを管理するため、ユーザーの関与は必要ありません。
テーブルの作成では、テーブルはCREATING状態になり、パーティションが割り当てられます。 ACTIVE状態に達すると、操作を実行できます。 システムは、容量が最大に達するか、スループットを変更するとパーティションを変更します。