首页 > 解决方案 > 将数据从 Aurora 流式传输到用于 Data Lake 的 S3

问题描述

我正在尝试使用 S3 创建一个数据湖,其中数据来自 Aurora,最终来自其他来源;但是,我在创建具有成本效益的解决方案时遇到了麻烦。
我一直在研究使用数据迁移服务 (DMS) 将数据从 Aurora流式传输到 S3。因为数据以csv格式
到达 S3 : (1)初始加载:(column1,column2,column3,...) (2)数据变化:(D/U/I,column1,column2,column3, ...) [D: delete, U: update: I: insert] 我一直在尝试转换数据,以使 S3 存储桶仅包含没有前缀 D/U/I 的数据。



为了执行这种转换,我想到了使用以下模型:

Aurora -> Dirty S3 Bucket -> Curated S3 Bucket -> Athena 从Curated S3 Bucket查询

Dirty S3 Bucket 包含(column1, column2, column3, ...)(D/U/I, column1, column2, column3, ...)格式的数据。当新数据到达此存储桶时,会发送一条 SNS 消息,并且 lambda 函数应读取新到达的文件,转换数据,并将其放入Curated S3 Bucket中,其中Curated S3 Bucket仅包含格式为(第 1 列,第 2 列,第 3 列,...)

假设来自 Aurora 的所有数据都有created_atupdated_at列,我想到了:

需要注意的是,这个计算只针对一个表;将有 5 个以上的表具有相似的费率。
因此,每月的费用将大于3,000 美元

是否有一种更具成本效益的方式将数据从 aurora 流式传输到 s3?
还是我必须求助于获取 Aurora DB 的每日快照以降低成本?

标签: amazon-web-servicesamazon-s3streamingamazon-auroradata-lake

解决方案


是的,您可以创建一个连接到 Aurora 并将数据带到 s3 的 lambda。在参数存储(在系统管理器内)中,您可以保存为每个表带来的最后一条记录的日期时间,因此您的 lambda 仅查找更新并将最后一条记录的日期保存在参数存储中。


推荐阅读