首页 > 代码库 > 从S3中导入数据到Dynamodb

从S3中导入数据到Dynamodb

本节如果你已经从Dynamodb中导出过数据,而且导出的文件以及被存入S3。文件内部结构会在Verify Data Export File 中描写叙述。

我们称之前导出数据的原始表为source table,数据将要被导入的表为destination table。你能够将S3中的导出文件导入到dynamodb的表中。可是要先确保满足以下条件:
  • The destination table 已经存在。 (导入任务不会为你创建表)
  • The destination table 与 source table 有同样的名称。
  • The destination table 与 source table 有同样的结构。

Destination table不一定要是空的。然而,导入进程会替换掉表中有相同主键的数据。

比如,你有一个Customer 表,它的主键是CustomerId。而且仅仅有三个items (CustomerId 1, 2, and 3)。

假设要导入的文件里相同包括CustomerID 为1, 2, and 3的items。这些在destination table中的items将会被导入文件里的数据替换。假设文件里还包括CustomerId为4的item,那么这个item会被增加到destination table中。

Destination table 能够在不同的AWS region。比如。如果你有个一个 Customer table在US West (Oregon) region,然后将它的数据导出到了Amazon S3中。你能够将它导入到在 EU (Ireland) region中有同样表明,同样主键的表中。这样的做法被称为 cross-region 导出和导入。

注意到AWS管理控制台同意你一次导出多个表的数据。可是,不同的是,你一次仅仅能导入一个表。

从S3导入数据到DynamoDB
  1. 登陆AWS管理控制台,然后打开dynamodb控制台: https://console.aws.amazon.com/dynamodb/.
  2. (可选) 假设你想做块区域导入。点击右上角的Select a Region 然后选择要导入的表的区域。控制台会显示该区域下的全部表。

    假设destination table不存在的话。你须要先创建它。

  3. 在 Amazon DynamoDB Tables 页面, 点击 Export/Import.
  4. 在 Export/Import 页面,选择一个你要导入的表,然后点击 Import into DynamoDB.
  5. 在 Create Import Table Data Pipeline 页面,按以下步骤操作:
    1. S3 Input Folder 文本框中输入导入文件相应的 Amazon S3 URI。比如: s3://mybucket/exports这个URI的规则应该是这样 s3://bucketname/folder :
      • bucketname 是S3中bucket的名称
      • folder 表示存放要导入的文件的名称
    2. 导入任务会通过指定的S3位置找到相应的文件。文件内部结构会在Verify Data Export File 中描写叙述。
    3. S3 Log Folder 文本框中输入一个S3 URI,导出过程的日志将被存储在对应的folder中。比如:s3://mybucket/logs/
      S3 Log Folder URI的格式和 S3 Output Folder的格式同样。

    4. 在 Throughput Rate 文本框中可选择一个百分比。

      这个比率表示在导出过程中会消耗读吞吐量的上限。比如,如果你要导出的表的读吞吐量是20,同一时候你设置的百分比是40%。

      那么导出时所消耗的吞吐量将不会超过8.
      假设你在导出多个表。这个 Throughput Rate 将会被应用到每一个表中。

    5. Execution Timeout 文本框,输入导出任务的超时时长。假设导出任务在这个时长内还没运行完毕,此任务会失败。

    6. Send notifications to 文本框,输入一个email地址。在 pipeline被创建后。你将会收到一封email邀请订阅Amazon SNS。假设你接受了此邀请,在每次运行导出操作时你都将会收到email通知。

    7. Data Pipeline Role, 选择 DataPipelineDefaultRole.
    8. Resource Role, 选择 DataPipelineDefaultResourceRole
  6. 确认好以上设置然后点击 Create Export Pipeline.
你的 pipeline 如今将被创建;这个过程可能会花费几分钟完毕。

要查看当前状态。移步 Managing Export and Import Pipelines.

导入任务会在你的pipeline创建好后马上运行。

从S3中导入数据到Dynamodb