• データモデルとAPI
  • DynamoDB API: コントロールブレインとデータブレイン
  • DynamoDB API: DynamoDB Streams

 

データモデルとAPI

DynamoDBではデータ項目に対する更新およびクエリなどの操作を、AWS Management Console または APIを介して行います。CreateTable API を使用してテーブルを作成したら、PutItem API または BatchWriteItem API を使用して項目を挿入できます。テーブルに追加した項目は、GetItem や BatchGetItems を使用して、または Query API を使用して (テーブルで複合プライマリキーが有効化されており使用されている場合) 取得できます。

またDynamoDB ストリームは、過去 24 時間以内にテーブルのデータに対して行われた項目レベルの変更を時系列ストリームとして提供したものですが、簡単な API 呼び出しでストリームにアクセスできます。ストリームを使用すると、変更された直近の DynamoDB で他のデータストアを最新の状態に維持したり、テーブルに対する変更内容に基づいてアクションを実行したりできます。

各種言語向けの公式SDKが用意されています。

 

DynamoDB API: コントロールブレインとデータブレイン

コントロールプレーンの操作では、DynamoDB テーブルを作成、管理できます。また、インデックス、ストリーム、およびテーブルに依存する他のオブジェクトを操作できます。

  • CreateTable – 新しいテーブルを作成します。オプションで、1 つ以上のセカンダリインデックスを作成し、テーブルに対して DynamoDB Streams を有効にできます。
  • DescribeTable – プライマリキーのスキーマ、スループット設定、インデックス情報など、テーブルに関する情報を返します。
  • ListTables – リストのすべてのテーブルの名前を返します。
  • UpdateTable – テーブルまたはそのインデックスの設定を変更、テーブルの新しいインデックスを作成または削除、またはテーブルの DynamoDB Streams 設定を変更します。
  • DeleteTable – テーブルとそのすべての依存オブジェクトを DynamoDB から削除します。

データプレーンオペレーションでは、テーブルのデータで、作成、読み込み、更新、および削除 (CRUD とも呼ばれます) アクションを実行できます。一部のデータプレーンオペレーションでも、secondary index からデータを読み込むことができます。

  • PutItem – 新しい項目を作成するか、古い項目を (すべての属性を含め) 新しい項目で置き換えます。指定したテーブルに同じプライマリキーを持つ項目が存在する場合、既存の項目は新しい項目に完全に置き換えられます。条件付き 演算子を使用して、所定の条件に一致する属性値を持つ項目のみを置き換えたり、その項目が存在しない場合にのみ新しい項目を挿入したりすることもできま す。
  • BatchWriteItem – 1 回のトランザクションとしてではなく、1 回のリクエストにより複数のテーブル間で複数の項目を挿入、置換、削除します。Put または Delete で最大 25 項目のバッチをサポートし、合計リクエストサイズは最大 16 MB です。
  • UpdateItem – 既存の項目の属性を編集します。条件付き演算子を使用して、項目の属性値が所定の条件に一致する場合にのみ更新を実行することもできます。
  • DeleteItem – プライマリキーを使用してテーブルから 1 つの項目を削除します。条件付き演算子を使用して、項目の属性値が所定の条件に一致する場合にのみ項目を削除することもできます。
  • GetItem – GetItem 演算は、プライマリキーに一致する項目の属性セットを返します。GetItem 演算は、デフォルトでは、結果的に整合性のある読み込みを提供します。ご利用のアプリケーションで結果的に整合性のある読み込みを使用できない場合は、 ConsistentRead を使用します。
  • BatchGetItems – BatchGetItems 演算は、複数の項目の属性を複数のテーブルから、それぞれのプライマリキーを使用して返します。16 件の応答のサイズ制限は 1 MB で、最大 100 個の項目を返します。強い整合性と結果整合性の両方をサポートします。
  • Query – テーブルのプライマリキーを使用して、または、セカンダリインデックスからインデックスキーを使用して、1 つ以上の項目を取得します。比較演算子や式を使用すると、テーブルのクエリの範囲を絞りこむことができます。また、非キー属性に対してフィルタを使用する ことで、クエリ結果をフィルタリングすることもできます。強い整合性と結果整合性の両方をサポートします。応答 1 件あたりのサイズ上限は 1 MB です。
  • スキャン – テーブルまたはセカンダリインデックスの全体をフルスキャンして、すべての項目および属性を取得します。リターンセットを制限するには、1 つまたは複数の属性と照合するフィルタを指定します。

 

 

 

DynamoDB API: DynamoDB Streams

DynamoDB Streams API を使用すると、開発者は、更新を使用して変更する前後の項目レベルのデータを受け取ることができます。それを使用して、DynamoDB を基礎として構築されたアプリケーションにお好みの拡張機能を作成できます。

DynamoDB ストリームはテーブルごとに有効にする必要があります。既存の DynamoDB テーブルで DynamoDB ストリームを有効にするには、AWS マネジメントコンソールからテーブルを選択し、[Overview] タブを選択し、[Manage Stream] ボタンをクリックし、表示のタイプを選択し、それから [Enable] をクリックします。

• Liststreams:すべてのストリームのリスト、または特定のテーブルのストリームのみを返します。

• DescribeStream:Amazon リソースネーム (ARN)、アプリケーションが最初のいくつかのストリームレコードの読み込みを開始できる場所など、ストリームに関する情報を返します。

• GetShardIterator:シャードイテレーターを返します。これは、ストリームからレコードを取得するためにアプリケーションが使用するデータ構造です。

 

 

 

本サイト上に掲載されているまとめ記事が、毎週ステップメールで受け取ることもできます。

 

 

参考文献