Data types supported by DynamoDB include those specific to attributes, actions, and your coding language of choice.
DynamoDB supports a large set of data types for table attributes. Each data type falls into one of the three following categories −
Scalar − These types represent a single value, and include number, string, binary, Boolean, and null.
Document − These types represent a complex structure possessing nested attributes, and include lists and maps.
Set − These types represent multiple scalars, and include string sets, number sets, and binary sets.
Remember DynamoDB as a schemaless, NoSQL database that does not need attribute or data type definitions when creating a table. It only requires a primary key attribute data types in contrast to RDBMS, which require column data types on table creation.
Numbers − They are limited to 38 digits, and are either positive, negative, or zero.
String − They are Unicode using UTF-8, with a minimum length of >0 and maximum of 400KB.
Binary − They store any binary data, e.g., encrypted data, images, and compressed text. DynamoDB views its bytes as unsigned.
Boolean − They store true or false.
Null − They represent an unknown or undefined state.
List − It stores ordered value collections, and uses square ([...]) brackets.
Map − It stores unordered name-value pair collections, and uses curly ({...}) braces.
Sets must contain elements of the same type whether number, string, or binary. The only limits placed on sets consist of the 400KB item size limit, and each element being unique.
DynamoDB API holds various data types used by actions. You can review a selection of the following key types −
AttributeDefinition − It represents key table and index schema.
Capacity − It represents the quantity of throughput consumed by a table or index.
CreateGlobalSecondaryIndexAction − It represents a new global secondary index added to a table.
LocalSecondaryIndex − It represents local secondary index properties.
ProvisionedThroughput − It represents the provisioned throughput for an index or table.
PutRequest − It represents PutItem requests.
TableDescription − It represents table properties.
DynamoDB provides support for primitive data types, Set collections, and arbitrary types for Java.