DynamoDB-基本概念

DynamoDBを使用する前に、その基本的なコンポーネントとエコシステムについて理解しておく必要があります。DynamoDBエコシステムでは、テーブル、属性、およびアイテムを操作します。テーブルはアイテムのセットを保持し、アイテムは属性のセットを保持します。属性は、それ以上の分解を必要としないデータの基本要素、つまりフィールドです。

主キー

主キーはテーブルアイテムの一意の識別手段として機能し、セカンダリインデックスはクエリの柔軟性を提供します。DynamoDBは、テーブルデータを変更することでレコードイベントをストリーミングします。

テーブルの作成には、名前だけでなく主キーも設定する必要があります。テーブルアイテムを識別します。2つのアイテムがキーを共有することはありません。DynamoDBは2種類の主キーを使用します-

  • Partition Key−この単純な主キーは、「パーティションキー」と呼ばれる単一の属性で構成されます。内部的には、DynamoDBはキー値をハッシュ関数の入力として使用してストレージを決定します。

  • Partition Key and Sort Key −「複合主キー」と呼ばれるこのキーは、2つの属性で構成されています。

    • パーティションキーと

    • ソートキー。

    DynamoDBは最初の属性をハッシュ関数に適用し、同じパーティションキーを持つアイテムを一緒に保存します。並べ替えキーによって順序が決定されます。アイテムはパーティションキーを共有できますが、ソートキーは共有できません。

主キー属性は、スカラー(単一)値のみを許可します。文字列、数値、またはバイナリデータ型。非キー属性には、これらの制約はありません。

二次インデックス

これらのインデックスを使用すると、代替キーを使用してテーブルデータをクエリできます。DynamoDBはそれらの使用を強制しませんが、クエリを最適化します。

DynamoDBは2種類のセカンダリインデックスを使用します-

  • Global Secondary Index −このインデックスには、テーブルキーとは異なる可能性のあるパーティションキーとソートキーがあります。

  • Local Secondary Index −このインデックスは、テーブルと同じパーティションキーを持っていますが、ソートキーが異なります。

API

DynamoDBが提供するAPIオペレーションには、コントロールプレーン、データプレーン(作成、読み取り、更新、削除など)、ストリームの操作が含まれます。コントロールプレーン操作では、次のツールを使用してテーブルを作成および管理します-

  • CreateTable
  • DescribeTable
  • ListTables
  • UpdateTable
  • DeleteTable

データプレーンでは、次のツールを使用してCRUD操作を実行します-

作成する 読んだ 更新 削除

PutItem

BatchWriteItem

GetItem

BatchGetItem

クエリ

スキャン

UpdateItem

DeleteItem

BatchWriteItem

ストリーム操作はテーブルストリームを制御します。次のストリームツールを確認できます-

  • ListStreams
  • DescribeStream
  • GetShardIterator
  • GetRecords

プロビジョニングされたスループット

テーブルの作成では、プロビジョニングされたスループットを指定します。これにより、読み取りと書き込み用にリソースが予約されます。容量単位を使用して、スループットを測定および設定します。

アプリケーションが設定されたスループットを超えると、要求は失敗します。DynamoDB GUIコンソールでは、設定されたスループットと使用されたスループットを監視して、より適切で動的なプロビジョニングを行うことができます。

一貫性を読む

DynamoDBは eventually consistent そして strongly consistent動的なアプリケーションのニーズをサポートするために読み取ります。結果整合性のある読み取りは、常に現在のデータを提供するとは限りません。

非常に一貫性のある読み取りは、常に現在のデータを配信します(機器の障害やネットワークの問題を除く)。結果整合性のある読み取りがデフォルト設定として機能し、でtrueの設定が必要です。ConsistentRead それを変更するパラメータ。

パーティション

DynamoDBは、データストレージにパーティションを使用します。これらのテーブルのストレージ割り当てにはSSDバッキングがあり、ゾーン間で自動的に複製されます。DynamoDBはすべてのパーティションタスクを管理し、ユーザーの関与を必要としません。

テーブルの作成では、テーブルはCREATING状態になり、パーティションが割り当てられます。アクティブ状態になったら、操作を実行できます。容量が最大に達したとき、またはスループットを変更したときに、システムはパーティションを変更します。