【问题标题】:AWS CloudFormation AttributeType for DynamoDb Boolean and List data types适用于 DynamoDb 布尔和列表数据类型的 AWS CloudFormation AttributeType
【发布时间】:2019-11-11 20:18:43
【问题描述】:

我正在尝试使用 AWS CloudFormation 创建 AWS DynamoDB 表,
我对在表中为布尔数据类型指定什么感到困惑,
在模板文件中。

我在表格中的数据显示为布尔类型 -

还得到了一个List类型的数据-

但在文档上显示它只有 3 种类型可以指定 -

我正在关注此 CloudFormation 参考文档 -

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb amazon-cloudformation


    【解决方案1】:

    BOOL DynamoDB 的有效数据类型;但不幸的是,不适用于主键属性。造成这种情况的一个原因可能是只有两个可能值(truefalse)的分区键不能使分区对大量数据有效。

    有关这方面的官方说明可以在 AWS 的文档中找到: Core Components of Amazon DynamoDB

    具体来说:

    每个主键属性必须是一个标量(意味着它只能保存一个值)。主键属性允许的唯一数据类型是字符串、数字或二进制。其他非关键属性没有此类限制。

    【讨论】:

      【解决方案2】:

      会为布尔字段推荐以下内容,例如:IsActive: (1) IsActive : {string} - “真/假”或“是/否” (2) IsActive : {number} - 1 -true/yes 和 0 -false/no.

      AttributeType 只能是 {string/number/Binary}。

      【讨论】:

        【解决方案3】:

        您打算将其用作索引吗?如果不是,您不需要这些列,即使您的模板也会失败,说明您有一个未在任何索引中使用的列。因为 Dynamo 是 schemaless。除非你可以使用BOOLtype作为数据类型。

        【讨论】:

        • 所以我不需要在使用CloudFormation创建表时指定所有字段?只有主键和索引?
        • 是的,插入数据时将创建其余列
        • DyanmoDB表定义中指定的所有属性都必须在表的Key或索引的键中使用。键中只能使用字符串、数字和二进制类型。因此只能指定这三种类型。
        猜你喜欢
        • 2020-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-30
        • 1970-01-01
        • 1970-01-01
        • 2021-08-11
        • 2018-05-20
        相关资源
        最近更新 更多