我需要使用亚马逊数据管道将我的 dynamoDB 表数据备份到 S3。
我的问题是-我可以使用单个数据管道将多个 dynamoDB 表备份到 S3,还是必须为每个表创建一个单独的管道?
另外,由于我的表有一个 year_month 前缀(ex- 2014_3_tableName),我正在考虑使用 datapipeline SDK 在月份更改时更改管道定义中的表名。这行得通吗?有替代/更好的方法吗?
谢谢!!
我需要使用亚马逊数据管道将我的 dynamoDB 表数据备份到 S3。
我的问题是-我可以使用单个数据管道将多个 dynamoDB 表备份到 S3,还是必须为每个表创建一个单独的管道?
另外,由于我的表有一个 year_month 前缀(ex- 2014_3_tableName),我正在考虑使用 datapipeline SDK 在月份更改时更改管道定义中的表名。这行得通吗?有替代/更好的方法吗?
谢谢!!
如果您通过 DynamoDB 控制台的导入/导出按钮设置数据管道,则必须为每个表创建单独的管道。如果您直接使用 Data Pipeline(通过 Data Pipeline API 或通过 Data Pipeline 控制台),则可以在同一管道中导出多个表。对于每个表,只需添加一个额外的 DynamoDBDataNode 和一个 EmrActivity 以将该数据节点链接到输出 S3DataNode。
关于您的 year_month 前缀用例,使用数据管道 sdk 定期更改表名似乎是最好的方法。另一种方法可能是复制导出 EmrActivity 正在运行的脚本(您可以在活动的“步骤”下看到脚本位置),而不是通过检查当前来更改 hive 脚本确定表名称的方式日期。您需要复制此脚本并将修改后的脚本托管在您自己的 S3 存储桶中,并将 EmrActivity 指向该位置而不是默认位置。我以前没有尝试过任何一种方法,但理论上两者都是可行的。
有关导出 DynamoDB 表的更多一般信息可以在DynamoDB 开发人员指南中找到,更多详细信息可以在AWS Data Pipeline 开发人员指南中找到。
这是一个老问题,但我在最后几天一直在寻找答案。添加多个 DynamoDBDataNode 时,您仍然可以使用单个 S3DataNode 输出。只需通过在 EmrActivity Step 字段中指定不同的 output.directoryPath 来区分 S3 存储桶中的文件夹。
像这样: #{output.directoryPath}/newFolder
每个新文件夹都会在 s3 存储桶中自动创建。