使用 Amazon Data Firehose(预览版)将更改从数据库复制到 Apache Iceberg 表

今天,我们宣布推出Amazon Data Firehose的新功能预览版,该功能可捕获 PostgreSQL 和 MySQL 等数据库中所做的更改,并将更新复制到Amazon Simple Storage Service (Amazon S3)上的Apache Iceberg表。

Apache Iceberg 是一种用于执行大数

据分析的高性能开源表格式。Apache Iceberg 为 S3 数据湖带来了 SQL 表的可靠性和简单性,并使Apache SparkApache FlinkTrinoApache HiveApache Impala等开源分析引擎能够同时处理相同的数据。

这项新功能提供了一种简单的端到端解决方案,可以流式传输数据库更新,而不会影响数据库应用程序的事务性能。您可以在几分钟内设置 Data Firehose 流,以从数据库提供变更数据捕获 (CDC)更新。现在,您可以轻松地将来自不同数据库的数据复制到 Amazon S3 上的 Iceberg 表中,并将最新数据用于大规模分析和机器学习 (ML) 应用程序。

典型的Amazon Web Services (AWS)企业客户使用数百个数据库来处理事务应用程序。为了对最新数据执行大规模分析和机器学习,他们希望捕获数据库中的更改(例如插入、修改或删除表中的记录时),并以开源表格式(例如 Apache Iceberg)将更新传递到其数据仓库或 Amazon S3 数据湖。

为许多客户开发了提取

转换和加载 (ETL) 作业来定期从数据库中读取数据。但是,ETL 读取器会影响数据库事务性能,而批处理作业可能会在数据可用于分析之前增加几个小时的延迟。为了减轻对数据库事务性能的影响,客户希望能够流式传输数据库中所做的更改。此流称为变更数据捕获 (CDC) 流。

我遇到了多个使用开源分布式系统(例如Debezium)的客户,这些系统带有连接到流行数据库的连接器、Apache Kafka Connect集群和 Kafka Connect Sink,用于读取事件并将其传递到目的地。此类系统的初始配置和测试涉及安装和配置多个开源组件。这可能需要几天或几周的时间。设置完成后,工程师必须监控和管理集群,并验证和应用开源更新,这会增加运营开销。

借助这一新的数据流功能

Amazon Data Firehose 增加了从数据库获取 CDC 流并将其持续复制到 Amazon S3 上的 Apache Iceberg 表的功能。您可以通过指定源和目标来设置 Data Firehose 流。Data Firehose 捕获并持续复制初始数据快照,然后将对选定数据库表所做的所有后续更改作为数据流进行复制。为了获取 CDC 流,Data Firehose 使用数据库复制日志,这减少了对数据库事务性能的影响。当数据库更新量增加或减少时,Data Firehose 会自动对数据进行分区,并保留记录,直到它们被传送到目标。您不必配置容量或管理和微调集群。除了数据本身之外,Data Firehose 还可以使用与数据库表相同的架构自动创建 Apache Iceberg 表作为初始 Data Firehose 流创建的一部分,并根据源架构更改自 韩国电报数据 动改进目标架构(例如添加新列)。

韩国电报数据

由于 Data Firehose 是一项完全托管的服务,因此您不必依赖开源组件、应用软件更新或承担运营开销。

使用 Amazon Data Firehose 将数据库更改持 需求生成与潜在客户生成:关键区别以及如何将两者结合起来 续复制到 Amazon S3 中的 Apache Iceberg 表,为您提供了一个简单、可扩展、端到端托管解决方案,可将 CDC 流传送到您的数据湖或数据仓库中,您可以在其中运行大规模分析和 ML 应用程序。

让我们看看如何配置新的管道


为了向您展示如何创建新的 CDC 管道,我使 aqb 目录AWS 管理控制台设置了一个 Data Firehose 流。与往常一样,我也可以选择使用AWS 命令​​行界面 (AWS CLI) AWS SDK AWS CloudFormationTerraform

在本演示中,我选择Amazon Relational Database Service (Amazon RDS)上的 MySQL 数据库作为源。Data Firehose 还可与Amazon Elastic Compute Cloud (Amazon EC2)上的自管理数据库配合使用。为了在不将流量暴露给互联网的情况下在我的虚拟私有云 (VPC)(数据库部署的位置)和 RDS API 之间建立连接,我创建了一个AWS PrivateLink VPC 服务终端节点。您可以按照Amazon RDS 文档中的说明了解如何为 RDS API 创建 VPC 服务终端节点

 

滚动至顶部