在发电机表上执行迁移的惯用方法是什么?

时间:2015-06-01 18:23:06

标签: amazon-web-services amazon-dynamodb

假设我有一个名为Person的发电机表,它有2个字段,name(字符串),age(int)。假设它具有TB值的数据并且经历了少量的读取吞吐量,但是写入吞吐量 ton 。现在我想添加一个名为Phone(string)的新字段。将数据从一个表移动到另一个表的最佳方法是什么?

注意 Dynamo不允许您重命名表,并且字段不能为空。

以下是我认为的选项:

  • 将表转储到.csv,运行一个脚本(一夜之间,因为它是一个TB值的数据),为这个文件添加一个默认的电话号码。 (不理想,也会丢失提交到旧表中的所有新数据,除非我将服务脱机以执行迁移(在这种情况下不是一个选项))。
  • 使用SCAN api电话。 (SCAN将读取所有值,然后将在新表上消耗大量写入吞吐量以将所有旧数据插入其中)。
  

如何在没有大表的情况下执行发电机迁移   重大数据丢失?

1 个答案:

答案 0 :(得分:1)

你不需要做任何事情。这是NoSQL,而不是SQL。 (也就是没有惯用的方法来做到这一点,因为你通常不需要迁移NoSQL) 只需使用附加键开始编写条目。

以前记录的记录将没有此密钥。你通常做的是有一个缺失时使用的默认值。

如果您想要回填,只需通过并读取值+将值与附加字段放在一起。您可以通过扫描在一次运行中执行此操作,或者在访问数据时再次懒惰地执行此操作。