AWS

【DynamoDB】属性のデータタイプ

属性にはデータタイプが存在します。

データタイプは大きく分類するとスカラー型、ドキュメント型、セット型に分けられます。
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のテーブルの基本操作について説明します。

© DeNnie.Lab All Rights Reserved.