将 AWS Kinesis 和 Kinesis Firehose 添加到现有的 DynamoDB

Adding AWS Kinesis and Kinesis Firehose to an existing DynamoDB

我们希望添加 Kinesis Streams 和 Kinesis Firehose 以将数据从我们的 DynamoDB 操作数据存储迁移到 S3。

我已经创建了 Kinesis Stream 和 Kinesis Firehose Delivery Stream 来将数据发送到 S3 存储桶。所有插入、修改和删除事件都被捕获、转换并添加到 S3 存储桶中,前缀为数据/[YEAR]/[MONTH]/[DAY]。

我的问题是关于启用 Kinesis 之前 DynamoDB 中的数据。将数据迁移到 S3 的最佳方法是什么。我知道您可以从 DynamoDB table 导出到 S3,但这会将数据放入预定义的文件夹中。

这里有什么最佳方法吗?

DynamoDB Stream 和 DynamoDB Export 的格式不同,因为它们服务的用例略有不同。然而,可以从两者创建一个视图。如果您想对从 DynamoDB 导出到 S3 的数据进行 运行 分析查询,您可能希望使用 Athena 作为您的 SQL 引擎。

  1. 使用 DynamoDB Export 从 DynamoDB 导出数据 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataExport.html)
  2. 在该导出上创建 Athena table
  3. 通过 Firehose 启用 DynamoDB 流到 S3 (https://aws.amazon.com/blogs/big-data/build-seamless-data-streaming-pipelines-with-amazon-kinesis-data-streams-and-amazon-kinesis-data-firehose-for-amazon-dynamodb-tables/)
  4. 在该流上创建 Athena table
  5. 为这些 table 创建一个统一的视图,使它们易于查询。