如何在DynamoDB中添加列

Aru*_*mar 55 amazon-web-services nosql amazon-dynamodb

有没有办法在Amazon的AWS中的DynamoDB中向现有表添加新列?

谷歌没有帮助,

http://docs.aws.amazon.com/cli/latest/reference/dynamodb/update-table.html?highlight=update%20table中的UpdateTable查询没有任何与添加新列相关的信息.

fae*_*anj 115

DynamoDB不需要架构定义,因此没有"列"这样的东西.您只需添加具有新属性的新项目即可.

  • @Costa只要您的代码在其PutItem调用中包含新属性,DynamoDB就会接受它.没有其他记录具有该属性并不重要. (7认同)
  • 因此,用户可以使用额外的字段上传他们的"个人资料信息",发电机会立即接受它吗?或者我必须以管理员身份进入并添加它? (4认同)
  • 我相信您不需要一次操作就可以迭代并为每个调用UpdateItem (2认同)
  • @HrushikeshDhumal,您可能在用户界面中看不到新字段,因为您没有查询它。Dynamodb 将在项目中存储具有新属性的数据 - 除了哈希键(以及排序键,如果存在)之外,无需定义属性。 (2认同)

bvd*_*vdb 11

好吧,让我们不要在关于“字段”和“列”之间区别的语义讨论中被拖累。“列”这个词确实让我们想起了关系数据库,而 dynamodb 不是。本质上,这意味着dynamodb 没有外键

Dynamodb 确实有“主分区键”和“索引分区键”,就像关系数据库一样。

添加数据时,您确实需要尊重这些键。但是除了这些要求之外,您不必预先定义您的字段(除了前面提到的那些分区键)。

假设您对此不熟悉,还有一些额外的好做法:

  • 为每条记录添加一个数字字段,以秒为单位存储创建时间。Dynamodb 具有可选的清理功能,这需要您的数据中包含此类字段。
  • 您不能在 dynamodb 中使用日期,因此您必须将它们存储为数字字段或字符串。鉴于前面提到的评论,您可能更喜欢它们的数字类型。
  • 不要在其中存储大文档,因为最大获取大小为 16MB,最大记录大小为 400KB。幸运的是,AWS 也有一个 DocumentDB。