テーブル列
Amazon DynamoDB テーブルはスキーマレスであり、connector では以下の二つの方法でスキーマをアンカバーします。
動的スキーマ
テーブルのカラムは最初の数行をスキャンすることで動的に決定されます。RowScanDepth プロパティを変更することで、スキャンする行数を調節することができます。カラム名のほかに、行スキャンがデータ型を決定します。次のテーブルは、どのようにAmazon DynamoDB でサポートされている異なるデータ型がconnector においてモデル化されているかを説明します。
Amazon DynamoDB 型 | モデル化された型 | エンコーディング | サンプル値 | |
Boolean | Boolean | Not Required | True | |
String | String | Not Required | USA | |
Blob | String | Not Required | ||
Number | Double | Not Required | 24.0 | |
String Array | String | JSON Array | ["USA","Canada","UK"] | |
Number Array | String | JSON Array | [20,200.5,500] | |
Blob Array | JSON Array | JSON Array | ["ABCD","EFGH"] | |
Document | JSON Object | JSON Object | {"Address":"123 Fake Street","City":"Chapel Hill","Zip":"27516"} | |
List | JSON Array | JSON Array | [{"S":"mystring"},{"NS":[1,2]},{"N":4}] |
静的スキーマ
動的に組成されるスキーマを使う代わりに、自分でスキーマを定義することも可能です。これにより、射影されるカラムを管理できるほか、boolean、datetime など、別のデータ型を使用することができます。独自のスキーマを作成するには、CreateSchema ストアドプロシージャを参照してください。新しいスキーマファイルのFileName(フルパス)およびTableName を、Amazon DynamoDB テーブルの名前に合致するように指定し、カラムリストを編集し、お客様自身のテーブルとして利用します。
スキーマレス処理
テーブルスキーマはメタデータを報告する際に必要ですが、データの選択、挿入、更新、削除ではスキーマに存在しないカラムからのデータが扱われることがあります。まだスキーマテーブルが存在していないカラムのデータ型は、指定されたデータに基づいて動的に決定されます。詳しくは、DynamoDB クエリ を参照してください。