属性にはデータタイプが存在します。
データタイプは大きく分類するとスカラー型、ドキュメント型、セット型に分けられます。
DynamoDBで使用できるデータタイプについて説明します。
スカラー
1つの値を表します。スカラー型には 数値、文字列、バイナリ、ブール、null が存在します。
数値
桁数
数値は正、負、0が使用できます。最大38桁になります。
日付の扱い
タイムスタンプ(UNIXタイムスタンプ)を登録したい場合、属性のデータタイプを数値にすることができます。
・UNIXタイムスタンプ
https://ja.wikipedia.org/wiki/UNIX時間
文字列
UTF-8 バイナリエンコードの Unicode です。
空の文字列は使用出来ます。
桁数
プライマリキーがパーティションキーのみの場合
・パーティションキーの最大長:2048バイト
プライマリキーが複合プライマリキーの場合
・パーティションキーの最大長:1024バイト
・ソートキーの最大長:1024バイト
日付の扱い
日付、タイムスタンプを登録したい場合、属性のデータタイプを文字列にすることができます。
日付は “ISO 8601 文字列” に準じています。
・ISO 8601
https://ja.wikipedia.org/wiki/ISO_8601
バイナリ
圧縮テキスト、暗号データ、イメージなどのバイナリデータを保存できます。
空のバイナリは使用出来ます。
登録する時は Base64エンコード して登録して下さい。
桁数
プライマリキーがパーティションキーのみの場合
・パーティションキーの最大長:2048バイト
プライマリキーが複合プライマリキーの場合
・パーティションキーの最大長:1024バイト
・ソートキーの最大長:1024バイト
ブール
Booleanはtrue、falseが使用できます。
Null
不明または未定義の属性を表します。
ドキュメント
ドキュメント型にはList、Mapが存在します。これらを組み合わせ入れ子にし、最大 32 レベルの深さまでデータ構造を表すことができます。
項目のサイズ制限 (400 KB) 内である限り、List、Map の値の最大数に制限はありません。
List
[・・・]で表され、複数の値に順序をつけ格納します。List内に格納するデータタイプは同じである必要はありません。
空のList( [] )は使用出来ます。
また、List内では空の文字列、空のバイナリが使用可能です。
以下はListの例になります。
exsample:["test",1,{"key":"value"}]
Map
{・・・}で表され、複数の値に順序はなく、キー、バリューのペアで格納できます。Map内に格納するデータタイプは同じである必要はありません。
空のMap( {} )は使用出来ます。
また、Map内では空の文字列、空のバイナリが使用可能です。
以下はMapの例になります。
{
key1: "value1",
key2: 2,
ListKey:[
"string",
{
Key3: "value3"
}
]
}
セット型
ドキュメント型にはList、Mapが存在します。これらを組み合わせ入れ子にし、最大 32 レベルの深さまでデータ構造を表すことができます。
項目のサイズ制限 (400 KB) 内である限り、Setsの値の最大数の制限はありません。
Sets
[・・・]で表され、複数の値を順序なく格納できます。
格納可能なデータタイプは数値、文字、バイナリで同じデータタイプを格納する必要があります。
空のSets( [] )は使用出来ません。
また、Map内では空の文字列、空のバイナリが使用可能です。
["test","test2","test3"]
最後に
次回はDynamoDBのテーブルの基本操作について説明します。