amazon-web-services - 从 AWS DataPipeline 增加和减少 DynamoDb RCU
问题描述
我有一个写密集型的AWS DynamoDb表。我已经使用10,000
WCU 和1000
RCU 将其配置为预置容量模式。
我正在使用AWS Datapipeline将 DynamoDb 内容导出到 S3。流水线配置了读吞吐率75%
。
在此设置~2 hours
中导出数据需要花费时间。~150GB
当我将 RCU 增加到10,000
导出时,不到 20 分钟就完成了。
DataPipeline 中是否有任何方法可以仅在我的管道运行时增加预置的 RCU?由于此管道配置为一天仅运行一次。
解决方案
您无法从数据管道作业中控制 DynamoDB 容量。
但是,您可以使用 AWS Step Functions 将ETL 作业与其他任意步骤进行编排。因此,您的解决方案可能是一个计划的CloudWatch 事件,它启动一个 Step Function来:
- 设置 DynamoDB 表的容量。(我认为您需要为此编写一个简单的 Lambda 函数,因为 Step Functions 无法直接执行此操作。)
- 调用启动数据管道作业的 Lambda
- 等待作业完成
- 重置表的读取容量
其他资源
- 具有示例 ETL 编排工作流程的GitHub 存储库。
- 在 AWS Step Functions 上编排 ETL 作业的另一个示例。该示例包括一个定期检查作业状态的循环。
- DynamoDB 的UpdateTable API 文档
推荐阅读
- python - 如何将两个重叠的导入语句合并为一个
- sql - 无法将新列添加到具有 TIMESTAMP 数据类型的 SQL Server 表
- python - 将 pandas Dataframe 写入数据类型完整的 Dynamo DB 表
- java - 为什么 Java 将我的第二个实例的参数分配给一个类的两个实例?
- amazon-web-services - 使用 IAM 承担角色的 API 身份验证
- swift - 遇到 failureExecption 时如何在 XCTest 中停止等待
- python - 气流 DAG 失败 - 错误 - HTTP 错误 404:未找到
- c# - 使用具有更改间隔的表单计时器
- node.js - 无法在我的 MacOS catalina 10.15.7 上安装 npm 包,几乎尝试了 stackoverflow 上的所有解决方案
- android - 如何将星级评分插入firebase