所以我在四处寻找使用Data Migration Service Chance数据捕获将数据从MSSQL传输到S3以及Redshift所能实现的目标。
redshift测试很好,如果我删除源数据库中的一条记录,则一两秒钟后,该记录将从Redshift中消失。与插入/更新等相同。
但是S3 ...
您从第一个满载中获得原始记录。
然后,如果您更新源中的记录,则S3会收到记录的新副本,并标有“ I”。
如果删除一条记录,则会获得该记录的另一个副本,并标记为“ D”。
所以我的问题是-我该怎么办? 如何查询我的S3存储桶以查看数据集的“当前”状态反映了源数据库?
我是否必须自己编写一些脚本脚本来提取所有这些文件并进行处理,执行插入/更新和删除操作,直到最终解析回“正常”数据集?
欢迎任何见识!
答案 0 :(得分:1)
包含“ I”,“ D”或“ U”的记录实际上是CDC数据(更改数据捕获)。这有时被称为“历史”或“历史数据”。这种类型的数据在数据仓库中有一些应用,也可以在许多机器学习用例中使用。
现在到下一点,为了获得数据集的“当前”状态,您必须自己编写脚本/编码。您可以使用AWS Glue执行任务。例如This post explains something similar。
如果您不想维护粘合代码,那么一种捷径是不直接将s3目标与DMS一起使用,而是使用Redshift目标,并且一旦应用了所有CDC,就可以使用Redshift unload command将最终副本卸载到S3上。