【问题标题】:Export DynamoDB Tables with dynamically generated names to S3将具有动态生成名称的 DynamoDB 表导出到 S3
【发布时间】:2019-12-23 12:09:21
【问题描述】:

我将时间序列数据存储在每天生成的 DynamoDB 表中 (Example)。表的命名约定为“timeseries_2019-12-20”,其中 2019-12-20 采用当前日期。我想以 CSV 格式将前几天的表发送到 S3 存储桶。推荐的方法是什么?我正在查看 AWS Glue,但没有看到如何让它每天找到新的表名。也许带有 cloudwatch 事件的 lambda 函数会更好? DynamoDB 表的大小并不大,存储了几百个数字。

【问题讨论】:

  • 除了日期之外,表名格式是否保持不变,即 timeseries_2019-12-20,timeseries_2019-12-21,timeseries_2019-12-22 ??
  • @PrabhakarReddy 是正确的。我想有一种不那么具有挑战性的方法来做到这一点,但我很难看到它。现在,通过使用 AWS SAM 调用 lambda 函数来创建每日表,并调用另一个 lambda 函数将项目放入表中。理想情况下,我希望通过 AWS SAM 调用第三个 lambda 函数,将发电机表导出到 s3。到目前为止我还没有看到这个。

标签: amazon-s3 amazon-dynamodb aws-glue


【解决方案1】:

因此,您可以通过以下步骤来实现:

假设你在 lambda 中使用 boto3(python)

  1. 使用今天的日期计算昨天的日期。
  2. 通过将前缀(匹配表名称)作为 DynamoDBTargets 添加到 Glue 创建/更新爬虫 boto3 API 调用 [1] 并启动爬虫来传递此日期。
  3. 一旦爬虫在 Glue 目录中创建完表,您就可以将其导入 Glue ETL 并将其转换为 CSV。

为 DynamoDB 表创建一个 lambda 触发器,以便触发 Glue 爬虫,或者您可以安排爬虫在每天的某个时间点运行。

【讨论】:

  • 是的,这行得通,我在第 2 步时被挂断了。谢谢!
猜你喜欢
  • 2013-03-28
  • 1970-01-01
  • 2019-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 2019-09-15
相关资源
最近更新 更多