首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在亚马逊S3中实现CDC

在亚马逊S3中实现CDC
EN

Stack Overflow用户
提问于 2020-01-30 03:34:46
回答 2查看 1.7K关注 0票数 0

我对云空间还是个新手。作为我们当前项目的一部分,我们正在尝试在亚马逊S3存储桶中创建一个数据湖。将会有另一个S3层,它将包含在上一层中发生的CDC。架构团队建议使用Talend或Streamsets。有没有其他方式可以实现从S3到另一个S3 bucket的CDC?

EN

回答 2

Stack Overflow用户

发布于 2020-05-16 05:14:30

实现CDC或修补CDC始终是从事务性源提取数据时的一项重要任务。而S3中的对象是不可变的,因此S3没有提供自己的任何东西来合并捕获的变更数据。在S3或AWS数据湖中,有几种方法可以实现CDC补丁。

首先,您需要确保您的ETL工具管道(Stream-sets/NiFi/Sqoop)应该能够从源系统获取更新的事务/记录(通过使用last_modified_date列等或通过事务日志),并将其放置在相同的s3 diff路径或不同的s3存储桶(CDC-s3)中。

现在,要将这个增量(CDC)合并到基表中,您可以使用下面提到的两种方法之一:

如果您在您的环境中使用AWS EMR或

  1. ,我建议您使用Apache-hudi。现在是开源的,但这是由Uber早先设计的,用于在数据湖中提供事务表的工具。即使在实时场景中,它也可以合并基础数据中的CDC补丁,这可能会节省您在数据湖中实现lambda架构的精力。请参考此链接- https://aws.amazon.com/blogs/aws/new-insert-update-delete-data-on-s3-with-amazon-emr-and-apache-hudi/
  2. Recently data bricks推出的一个令人惊叹的功能是Delta 。这种使用增量湖的方法真的很棒,并为您提供了开箱即用的性能。Delta lake为您的数据湖提供ACID事务的功能,并在流和批处理场景中提供更好的性能。请参考这些链接,其中已使用AWS DMS和S3实施了delta-lake。CDC https://databricks.com/blog/2019/03/19/efficient-upserts-into-data-lakes-databricks-delta.html
  3. One另一种方法是,您可以编写自己的自定义https://databricks.com/blog/2019/07/15/migrating-transactional-data-to-a-delta-lake-using-aws-dms.html -job来执行此功能,如以下链接中所述,但如果您的数据集很大,这将是一个缓慢且昂贵的操作,并且您可能需要一些其他技术来进行实时CDC修补。请参阅链接- change data capture in spark
票数 2
EN

Stack Overflow用户

发布于 2020-01-30 14:26:24

您必须使用ETL/ELT工具来捕获CDC。(据我所知) S3不可能自己处理这个问题。

但是,您也可以考虑AWS Glue或Matillion,因为它们是AWS原生的,因此兼容性可能比Talend更好(附注:我还没有使用Talend)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59974352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档