将具有动态生成名称的 DynamoDB 表导出到 S3
Export DynamoDB Tables with dynamically generated names to S3
我将时间序列数据存储在每天生成的 DynamoDB table 中 (Example)。 tables 的命名约定是 "timeseries_2019-12-20",其中 2019-12-20 取当前日期。我想将前几天 table 以 CSV 格式发送到 S3 存储桶。为此推荐的方法是什么?我正在查看 AWS Glue,但没有看到如何让它每天找到新的 table 名称。也许带有 cloudwatch 事件的 lambda 函数会更好? DynamoDB table 的体积并不大,存储了几百个数字。
因此您可以按照以下步骤实现此目的:
假设您在 lambda 中使用 boto3(python)
- 用今天的日期计算昨天的日期。
- 通过将前缀(匹配 table 名称)作为 DynamoDBTargets 添加到 Glue create/update 爬虫 boto3 API 调用 [1] 并启动爬虫来传递此日期。
- 爬虫在 Glue 目录中完成创建 table 后,您可以将其导入 Glue ETL 并将其转换为 CSV。
为 DynamoDB 创建一个 lambda 触发器 table 以便触发 Glue 爬虫,或者您可以安排爬虫在每天的某个时间 运行。
我将时间序列数据存储在每天生成的 DynamoDB table 中 (Example)。 tables 的命名约定是 "timeseries_2019-12-20",其中 2019-12-20 取当前日期。我想将前几天 table 以 CSV 格式发送到 S3 存储桶。为此推荐的方法是什么?我正在查看 AWS Glue,但没有看到如何让它每天找到新的 table 名称。也许带有 cloudwatch 事件的 lambda 函数会更好? DynamoDB table 的体积并不大,存储了几百个数字。
因此您可以按照以下步骤实现此目的:
假设您在 lambda 中使用 boto3(python)
- 用今天的日期计算昨天的日期。
- 通过将前缀(匹配 table 名称)作为 DynamoDBTargets 添加到 Glue create/update 爬虫 boto3 API 调用 [1] 并启动爬虫来传递此日期。
- 爬虫在 Glue 目录中完成创建 table 后,您可以将其导入 Glue ETL 并将其转换为 CSV。
为 DynamoDB 创建一个 lambda 触发器 table 以便触发 Glue 爬虫,或者您可以安排爬虫在每天的某个时间 运行。