テーブルへのデータの書き込み - Amazon DynamoDB

テーブルへのデータの書き込み

リレーショナルデータベースのテーブルには、データのが含まれます。行はで構成されます。Amazon DynamoDB テーブルには、項目が含まれています。項目は属性で構成されます。

このセクションでは、テーブルに 1 つの行 (または項目) を書き込む方法を説明します。

トピック

SQL

リレーショナルデータベースのテーブルは、行と列で構成される、2 つのディメンションのデータ構造です。一部のデータベース管理システムは、通常、ネイティブ JSON または XML データ型を使用する半構造化データのサポートを提供します。ただし、実装の詳細はベンダー間で変わります。

SQL では、INSERT ステートメントを使用して、テーブルに行を追加します。

INSERT INTO Music (Artist, SongTitle, AlbumTitle, Year, Price, Genre, Tags) VALUES( 'No One You Know', 'Call Me Today', 'Somewhat Famous', 2015, 2.14, 'Country', '{"Composers": ["Smith", "Jones", "Davis"],"LengthInSeconds": 214}' );

このテーブルのプライマリキーは、Artist および SongTitle で構成されます。これらの列の値を指定する必要があります。

注記

この例では、Tags 列を使用して、Music テーブル内の曲に関する半構造化データを保存します。Tags 列は TEXT 型として定義され、MySQL で最大 65,535 文字を保存できます。

DynamoDB

Amazon DynamoDB では、SQL 互換のクエリ言語である PartiQL、または DynamoDB のクラシック API を使用してテーブルに項目を追加します。

PartiQL

Amazon DynamoDB では、ExecuteStatement アクションを使用して、Insert PartiQL ステートメントでテーブルに項目を追加します。

insert into Music value { 'Artist': 'No One You Know', 'SongTitle': 'Call Me Today', 'AlbumTitle': 'someonewhat famous', 'Year' : true, 'Genre' : 'Acme' }

このテーブルのプライマリキーは、Artist および SongTitle で構成されます。これらの属性の値を指定する必要があります。

注記

InsertExecuteStatement を使用したコード例については、DynamoDB 用の PartiQL 挿入ステートメント を参照してください。

Classic API

Amazon DynamoDB では、PutItem アクションを使用して、テーブルに項目を追加します。

{ TableName: "Music", Item: { "Artist":"No One You Know", "SongTitle":"Call Me Today", "AlbumTitle":"Somewhat Famous", "Year": 2015, "Price": 2.14, "Genre": "Country", "Tags": { "Composers": [ "Smith", "Jones", "Davis" ], "LengthInSeconds": 214 } } }

このテーブルのプライマリキーは、Artist および SongTitle で構成されます。これらの属性の値を指定する必要があります。

この PutItem 例に関する主要事項を示します。

  • DynamoDB では、JSON を使用して、ドキュメントのネイティブサポートを提供しています。これにより DynamoDB は Tags などの半構造化データを保存する場合に最適になります。また、JSON ドキュメント内からデータを取得および操作できます。

  • Musicテーブルには、プライマリキー (Artist および SongTitle) 以外には事前定義された属性はありません。

  • ほとんどの SQL データベースはトランザクション指向です。INSERT ステートメントを発行すると、データ変更は、COMMIT ステートメントを発行するまで永続的ではありません。Amazon DynamoDB によって、PutItem アクションの効果は、DynamoDB が HTTP 200 ステータスコード (OK) で応答する場合、永続的になります。

注記

PutItem を使用したコード例については、「DynamoDB および AWS SDK の開始方法」を参照してください。

次に、PutItem の他の例をいくつか示します。

{ TableName: "Music", Item: { "Artist": "No One You Know", "SongTitle": "My Dog Spot", "AlbumTitle":"Hey Now", "Price": 1.98, "Genre": "Country", "CriticRating": 8.4 } }
{ TableName: "Music", Item: { "Artist": "No One You Know", "SongTitle": "Somewhere Down The Road", "AlbumTitle":"Somewhat Famous", "Genre": "Country", "CriticRating": 8.4, "Year": 1984 } }
{ TableName: "Music", Item: { "Artist": "The Acme Band", "SongTitle": "Still In Love", "AlbumTitle":"The Buck Starts Here", "Price": 2.47, "Genre": "Rock", "PromotionInfo": { "RadioStationsPlaying":[ "KHCR", "KBQX", "WTNR", "WJJH" ], "TourDates": { "Seattle": "20150625", "Cleveland": "20150630" }, "Rotation": "Heavy" } } }
{ TableName: "Music", Item: { "Artist": "The Acme Band", "SongTitle": "Look Out, World", "AlbumTitle":"The Buck Starts Here", "Price": 0.99, "Genre": "Rock" } }
注記

PutItem に加えて、DynamoDB は、同時に複数の項目に書き込むための BatchWriteItem アクションもサポートします。