增加和减少来自 AWS DataPipeline 的 DynamoDb RCU
Increase & Decrease DynamoDb RCU from AWS DataPipeline
我有一个 AWS DynamoDb table 是写密集型的。我已经使用 10,000
WCU 和 1000
RCU 在配置容量模式下配置它。
我正在使用 AWS Datapipeline 将 DynamoDb 内容导出到 S3。管道配置读取吞吐率75%
.
在此设置中导出 ~150GB
数据大约需要 ~2 hours
。当我将 RCU 增加到 10,000
时,导出在不到 20 分钟内完成。
DataPipeline 中是否有任何方法可以仅在我的管道 运行ning 时增加预配的 RCU?由于此管道配置为 运行 一天仅一次。
您无法从数据管道作业中控制 DynamoDB 容量。
但是,您可以使用 AWS Step Functions orchestrate ETL jobs with other arbitrary steps. So, your solution could be a scheduled CloudWatch event that starts a Step Function 来:
- 设置 DynamoDB 的容量 table。 (我认为您需要为此编写一个简单的 Lambda 函数,因为 Step Functions 无法直接执行此操作。)
- 调用启动数据管道作业的 Lambda
- 等待作业完成
- 重置 table
的读取容量
其他资源
- A GitHub repository 带有示例 ETL 编排工作流程。
- Another example 在 AWS Step Functions 上编排 ETL 作业。该示例包括一个定期检查作业状态的循环。
- DynamoDB 的 UpdateTable API documentation
我有一个 AWS DynamoDb table 是写密集型的。我已经使用 10,000
WCU 和 1000
RCU 在配置容量模式下配置它。
我正在使用 AWS Datapipeline 将 DynamoDb 内容导出到 S3。管道配置读取吞吐率75%
.
在此设置中导出 ~150GB
数据大约需要 ~2 hours
。当我将 RCU 增加到 10,000
时,导出在不到 20 分钟内完成。
DataPipeline 中是否有任何方法可以仅在我的管道 运行ning 时增加预配的 RCU?由于此管道配置为 运行 一天仅一次。
您无法从数据管道作业中控制 DynamoDB 容量。
但是,您可以使用 AWS Step Functions orchestrate ETL jobs with other arbitrary steps. So, your solution could be a scheduled CloudWatch event that starts a Step Function 来:
- 设置 DynamoDB 的容量 table。 (我认为您需要为此编写一个简单的 Lambda 函数,因为 Step Functions 无法直接执行此操作。)
- 调用启动数据管道作业的 Lambda
- 等待作业完成
- 重置 table 的读取容量
其他资源
- A GitHub repository 带有示例 ETL 编排工作流程。
- Another example 在 AWS Step Functions 上编排 ETL 作业。该示例包括一个定期检查作业状态的循环。
- DynamoDB 的 UpdateTable API documentation