Dynamodb:使用CreateTable在AttributeType Map,List,JSON中创建一个表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dynamodb:使用CreateTable在AttributeType Map,List,JSON中创建一个表相关的知识,希望对你有一定的参考价值。

如何在DyanamoDB中创建一个包含AttributeType Set,Map或JSON的表。我不想通过插入(PutItem)或更新数据来创建表结构,因为我需要在投影中创建一个包含Map,List或JSON属性的索引。我需要创建一个创建时间(CreateTable)。我也更喜欢使用AWS CLI。以下示例:

{
TableName : "Music",
KeySchema: [       
    { 
        AttributeName: "Artist", 
        KeyType: "HASH", //Partition key
    }
],
AttributeDefinitions: [
    { 
        AttributeName: "Artist", 
        AttributeType: "S" 
    },
    { 
        AttributeName: "instruments" 
        AttributeType: // Map or List or JSON type 
    }

],

... }

答案

在创建DynamoDB表时,您只能定义属于键定义的属性。换句话说,只有在创建DynamoDB表时才能定义哈希键和排序键属性。散列和排序键属性必须是标量属性。

文档和设置数据类型不能是键属性的一部分。此外,您无法在这些属性类型上创建索引。

标量类型 - 标量类型只能表示一个值。标量类型是数字,字符串,二进制,布尔值和null。

文档类型 - 文档类型可以表示具有嵌套属性的复杂结构 - 例如您可以在JSON文档中找到的。文档类型是列表和地图。

设置类型 - 集类型可以表示多个标量值。集类型是字符串集,数字集和二进制集。

以上是关于Dynamodb:使用CreateTable在AttributeType Map,List,JSON中创建一个表的主要内容,如果未能解决你的问题,请参考以下文章

AWS DynamoDB 之间的查询错误

seata的AT模式入门使用

使用 spring-data-dynamodb 在 GSI 中查询 dynamoDB 中的 id 列表

Mysql不使用索引

DynamoDB 写入太慢

如何在 DynamoDb 中加入两个表?