## 视频
<video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video>
## 导读
拥有多个数据孤岛会导致数据在整个组织中处于不同的来源,从而难以执行分析和实现数据访问的民主化。为了能够将所有数据集中到一个地方,您可能需要设置不同的数据流、批处理作业或额外的 CDC 组件,这可能会增加架构的复杂性。在本论坛中,您将了解如何通过在亚马逊云科技上使用 Flink CDC 来简化跨事务 DB 的实时同步和摄取,并最终打破数据孤岛。
## 演讲精华
<font color = "grey">以下是小编为您整理的本次演讲的精华,共1100字,阅读时间大约是6分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font>
数据孤岛问题对寻求商业洞察的公司来说是一个严重挑战。根据在委内瑞拉出生并居住在西班牙的四年来一直专注于亚马逊云科技的流媒体解决方案架构师Francisco Murillo的解释,许多组织的关键信息分散在不同的数据孤岛中,如交易数据库和数据仓库等。过去,他们依赖于每日ETL批量作业将这些孤岛中的数据提取并加载到中央数据仓库进行分析。然而,这种方法存在高延迟的问题,因为利益相关者必须在完成批量作业(通常需24小时)后才能获得新见解。此外,这些批量作业在处理大量数据方面的并行处理限制也使得处理时间更长。
以现实生活中的一例为例,在欺诈检测场景中,如果公司早晨收到了有关某事件的可疑警报,等到每日批量作业完成后,可能已经太晚了,无法采取任何行动。企业需要在第一时间做出响应并进行实时分析。由于这些挑战,企业在遵守服务等级协议(SLA)以及快速响应业务需求方面的灵活性受到限制。
随着数据量每年呈指数级增长,企业领导者需要更快地获取见解来指导决策。流数据技术有望解决数据集成和数据分析方面的这些挑战。据Murillo所说,诸如Apache Kafka、[Amazon Kinesis](https://aws.amazon.com/cn/kinesis/?trk=cndc-detail)和Amazon MSK等流解决方案与传统批量处理方式截然不同。它们持续运行,处理源源不断的数据,而非安排批次处理。这使得实时分析和即时见解能在毫秒或秒级别内获得,而无需等待数小时或数天。流数据技术仅处理已更改的数据,从而避免重复工作并提高架构的成本效率。例如,它只传输增量插入、更新和删除,而不是移动整个表或数据库。这些技术还可以水平扩展,即使数据量增加,仍能实现高吞吐量和高响应速度。客户只需启动更多资源即可处理额外的流量。
关键的数据流集成能力在于变化数据捕获(CDC)技术。CDC技术能够从源系统中获取数据变化,包括旧数据值、新数据值、元数据和更改类型(插入、更新或删除)等详细信息。为了实现这一功能,需要利用像Kafka这样的流存储层来收集更改事件。接下来,可以使用Apache Flink等流分析框架处理这些CDC事件,以执行加工、聚合等操作。此外,输出数据还可以实时同步到其他系统,从而替代传统的每日批量处理方式。
然而,正如Murillo所提到的那样,构建具有一致性和容错保证的自定义分布式流应用程序是一项具有挑战性的任务。Apache Flink被设计为专门针对大规模流处理需求。它提供了诸如精确一次事件处理和故障期间的一致状态等关键保障。用户可以通过SQL、Java、Scala或Python编写Flink应用程序,并提供从低级到简单声明式SQL的API选项。该框架在后台处理分布、扩展和容错等方面的复杂性。
Flink拥有一个活跃的开源社区,有超过300名来自亚马逊云科技的贡献者提交了2200多个拉取请求并进行了300多次代码审查。由于亚马逊云科技客户对于为何亚马逊没有提供针对Flink的完全托管服务的疑问,因此亚马逊推出了[Amazon Kinesis](https://aws.amazon.com/cn/kinesis/?trk=cndc-detail) Analytics(现名为Amazon Managed Streaming for Apache Flink),以便在使用Flink工作负载时无需管理基础设施。
Flink的一个显著优势是其针对MySQL、MongoDB和Oracle等数据库的CDC连接器。这避免了将数据库更改流式传输到Kafka的单独CDC工具的需求。Flink的连接器可以直接与数据库事务日志集成,以捕捉发生的插入、更新和删除操作。这些记录将被流式传输到Flink进行处理。
这些都是通过Flink的动态表功能实现的,它们会跟踪对数据库的更改,以提供一个一致的视图。当在源数据库中插入或更新记录时,Flink会消费更改事件并更新动态表。在删除记录时,将从动态表中删除相应记录。这使得对更改流的连续查询成为可能。
Flink通过实时更新用户点击量来维护网站内容。每当有新的点击事件发生,总数就会增加;若点击被取消,总数则会减少。应用程序始终保持准确的实时视图。
关键在于确定CDC数据的流向和处理衍生见解的流式处理。其他需要准确反映数据库更改的系统需要一个能够处理插入、更新和删除流的"upsert"接收器。基于[Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail)的事务性数据湖如Delta Lake和Apache Hudi提供了upsert功能,以及压缩、快照隔离和模式强制执行等功能。
通过使用Flink的Hudi和Iceberg连接器,可以将CDC数据流式传输到数据湖,并通过Athena进行查询。这种架构降低了分析的延迟,提供了跨孤岛的一致视图,并通过消除步骤简化了流式ETL管道。数据湖成为了真实来源。
Murillo展示了一个参考架构,该架构使用Flink的MySQL数据库CDC连接器、Flink SQL的变更流处理以及在S3中存储的Hudi表。这里的客户故事是直接CDC集成和实时同步,而无需单独的Kafka集群。Flink的动态表提供对变更事件的流处理和连续查询。Hudi实现在数据湖上的upsert和压缩。Athena查询提供快速的交互式访问,同时具有一致的视图。
对于必须将CDC数据提供给多个应用程序的情况,MSK Connect提供了针对包括MySQL和PostgreSQL在内的数据库的Kafka连接器。数据库更改可以实时流传输到MSK集群。然后,Flink应用程序可以利用动态表处理这些主题。输出可以被流传输到S3或回流到MSK供其他消费者使用。可以使用Lambda函数或运行Flink作业的EMR集群添加额外的处理。
关键是结合亚马逊云科技的流处理管理服务以简化和自动缩放。客户可以专注于流处理逻辑,而不是基础设施或运营。亚马逊云科技服务处理无差别的繁重工作。
总的来说,Apache Flink的集成CDC连接器与Hudi等交易数据湖相结合,使得跨孤岛的实时数据集成成为可能,同时也降低了复杂性。通过将数据库更改流式传输到Flink应用程序中,实现了对持续分析的支持。亚马逊云科技的托管服务,如MSK、Flink和Athena,简化了部署架构。随着组织寻求更快地获取关于不断增长的数据量的见解,这是一种打破数据孤岛的现代解决方案。
**下面是一些演讲现场的精彩瞬间:**
实时跨区域数据流动和处理有助于获取深入洞察。
![](https://d1trpeugzwbig5.cloudfront.net/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC/images/rebranded/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC_0.png)
领导者表示,Apache Flink可以轻松扩展处理器以满足不断增加的数据处理需求,同时具有与各种亚马逊云科技数据源(如Kinesis和RDS)集成的流处理能力。
![](https://d1trpeugzwbig5.cloudfront.net/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC/images/rebranded/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC_1.png)
近日,领导者推出了Amazon Managed Service for Apache Flink,被视为实现实时数据转换和分析的最简单方法。
![](https://d1trpeugzwbig5.cloudfront.net/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC/images/rebranded/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC_2.png)
领导者强调,客户需要一个能够在S3数据上执行更新、合并和删除操作的服务,以便实现实时同步并解决小文件问题。
![](https://d1trpeugzwbig5.cloudfront.net/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC/images/rebranded/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC_3.png)
领导者表示,Hudi作为最受欢迎的开源表格式,与亚马逊云科技DMS集成良好,并能指定主键以及用于变更数据捕获的列。
![](https://d1trpeugzwbig5.cloudfront.net/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC/images/rebranded/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC_4.png)
建议与会者先在re:Invent参加活动,参观完现代应用和开源专区后再回答观众提问。
![](https://d1trpeugzwbig5.cloudfront.net/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC/images/rebranded/OPN402-Break_down_data_silos_using_real_time_synchronization_with_Flink_CDC_5.png)
## 总结
这段视频探讨了如何利用Apache Flink的变更数据捕获(CDC)功能来解决数据孤岛问题并实现实时数据同步。演讲者首先概述了传统数据集成方法所面临的挑战,即采用每日批处理ETL作业的方式。这种方法存在较高的延迟和有限的并行性问题。随后,他解释了一种更优的解决方案,即通过使用CDC技术捕捉数据更改,并仅递增地处理已更新的记录。
Apache Flink被描述为一个构建可扩展的有状态的流处理应用程序的理想框架。其CDC连接器允许直接从MySQL和MongoDB等数据库中提取更改事件。此外,Flink的动态表提供了统一的流和批量处理模型,实现了对实时数据的持续查询。
在处理CDC流并将其写入目的地(例如数据湖)时,需要使用upsert语义来保持数据的一致性。这种支持upserts以及针对S3等对象存储的压缩的分布式数据湖格式包括Apache Hudi。Flink还提供了用于将数据写入Hudi表的连接器。
演讲者展示了一个参考架构,该架构使用了[Amazon RDS](https://aws.amazon.com/cn/rds/?trk=cndc-detail)、MSK Connect、Flink和Hudi on S3。数据库更改通过Debezium流式传输到Kafka,然后在Flink Studio笔记本中消费这些更改,并通过SQL进行聚合,最终将这些数据插入到Hudi表中。这样一来,数据湖就可以使用Athena进行查询。
总的来说,Flink的CDC连接器简化了实时数据提取的过程。当与事务性数据湖结合使用时,这可以构建实时数据管道,从而打破数据孤岛并实现系统同步。
## 演讲原文
## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!
[2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站")
[点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯!
[点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯!
## 即刻注册亚马逊云科技账户,开启云端之旅!
[【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“")
[【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")