亚马逊AWS官方博客

Amazon Aurora PostgreSQL 和 Amazon DynamoDB 与 Amazon Redshift 的零 ETL 集成现已正式推出



今天,我很高兴地宣布兼容 Amazon Aurora PostgreSQL 的版本Amazon DynamoDBAmazon Redshift 的零 ETL 集成已正式发布。零 ETL 集成可无缝地在 Amazon Redshift 中提供事务或操作数据,无需构建和管理执行提取、转换、加载(ETL)操作的复杂数据管道。它可以自动将源数据复制到 Amazon Redshift,同时更新源数据,供您在 Amazon Redshift 中用于分析和机器学习(ML)功能,以获得及时的见解并有效应对关键的时间敏感型事件。

使用这些新的零 ETL 集成,您可以对来自不同应用程序的数据进行统一分析,而不必构建和管理不同的数据管道,将来自多个关系和非关系数据来源的数据写入单个数据仓库。在本文中,我提供了两个分步演练,介绍如何开始使用 Amazon Aurora PostgreSQL 和 Amazon DynamoDB 与 Amazon Redshift 的零 ETL 集成。

要创建零 ETL 集成,您需要指定来源并将 Amazon Redshift 指定为目标。该集成将数据从源数据仓库复制到目标数据仓库,使其在 Amazon Redshift 中无缝可用,并监控管道的运行状况。

我们来探索一下这些新的集成是如何工作的。在本文中,您将学习如何创建零 ETL 集成,将数据从不同的源数据库(Aurora PostgreSQL 和 DynamoDB)复制到同一个 Amazon Redshift 集群。您还将学习如何从 Aurora PostgreSQL 源数据库中选择多个表或数据库,将数据复制到同一个 Amazon Redshift 集群。您将观察零 ETL 集成如何提供灵活性,而无需承担构建和管理多个 ETL 管道的运营负担。

开始使用 Aurora PostgreSQL 与 Amazon Redshift 的 零 ETL 集成
在创建数据库之前,先创建自定义集群参数组,因为 Aurora PostgreSQL 与 Amazon Redshift 的零 ETL 集成需要 Aurora 数据库集群参数的特定值。在 Amazon RDS 控制台中,前往导航窗格中的参数组。我选择创建参数组

我为参数组名称描述输入 custom-pg-aurora-postgres-zero-etl。我为引擎类型选择 Aurora PostgreSQL,为参数组系列选择 aurora-postgresql16(零 ETL 集成适用于 PostgreSQL 16.4 或更高版本)。最后,我为类型选择数据库集群参数组,然后选择创建

接下来,我通过在参数组页面选择新创建的集群参数组来编辑它。我选择操作,然后选择编辑。我设置了以下集群参数设置:

  • rds.logical_replication=1
  • aurora.enhanced_logical_replication=1
  • aurora.logical_replication_backup=0
  • aurora.logical_replication_globaldb=0

我选择保存更改

接下来,我创建一个 Aurora PostgreSQL 数据库。创建数据库时,您可以根据需要设置配置。记得从可用版本中选择 Aurora PostgreSQL(兼容 PostgreSQL 16.4 或更高版本),并在附加配置部分为数据库集群参数组选择自定义集群参数组(在本例中为 custom-pg-aurora-postgres-zero-etl)。

数据库可用后,我连接到 Aurora PostgreSQL 集群,创建一个名为 books 的数据库,在该数据库的默认架构中创建一个名为 book_catalog 的表,并插入用于零 ETL 集成的示例数据。

为了开始零 ETL 集成,我使用了现有的 Amazon Redshift 数据仓库。要创建和管理 Amazon Redshift 资源,请访问 Amazon Redshift 入门指南

在 Amazon RDS 控制台中,我转到导航窗格中的零 ETL 集成选项卡,然后选择创建零 ETL 集成。我输入 postgres-redshift-zero-etl 作为集成标识符,并使用 Amazon Aurora 与 Amazon Redshift 的 零 ETL 集成作为集成描述。我选择下一步

在下一页上,我选择浏览 RDS 数据库来选择源数据库。对于数据筛选选项,我使用 database.schema.table 模式。我在 Aurora PostgreSQL books 数据库中加入了我的名为 book_catalog 的表。筛选器中的 * 将替代 books 数据库内所有架构中的 book_catalog 表。我选择 Include 作为筛选器类型并将 books.*.book_catalog 输入到筛选器表达式字段中。我选择下一步

在下一页上,我选择浏览 Redshift 数据仓库,然后选择现有的 Amazon Redshift 数据仓库作为目标。我必须在目标上指定授权主体和集成源,以使 Amazon Aurora 能够复制到数据仓库并启用区分大小写功能。Amazon RDS 可以在设置期间为我完成这些步骤,或者我可以在 Amazon Redshift 中手动配置它们。在这个演示中,我选择为我修复,然后选择下一步

在修复了数据仓库的区分大小写参数和资源策略后,我在下一个添加标签和加密页面上选择下一步。查看配置后,我选择创建零 ETL 集成

集成成功后,我选择集成名称来查看详细信息。

现在,我需要从集成中创建一个数据库,以完成设置。我前往 Amazon Redshift 控制台,在导航面板中选择零 ETL 集成并选择我刚创建的 Aurora PostgreSQL 集成。我选择从集成中创建数据库

我选择 books 作为源命名的数据库并输入 zeroetl_aurorapg 作为目的地数据库名称。我选择创建数据库

数据库创建完成后,我返回到 Aurora PostgreSQL 集成页面。在此页面上,我选择查询数据来连接到 Amazon Redshift 数据仓库,以观察数据是否被复制。当我在 zeroetl_aurorapg 数据库中运行选择查询时,我看到 in book_catalog 表中的数据已成功复制到 Amazon Redshift。

正如我一开始所说,您可以从 Aurora PostgreSQL 源数据库中选择多个表或数据库,以将数据复制到同一个 Amazon Redshift 集群。要将另一个数据库添加到相同的零 ETL 集成中,我所要做的就是以 database.schema.table 的形式向数据筛选选项添加另一个筛选器,以将数据库部分替换为我要复制的数据库名称。在本演示中,我将选择要复制到同一数据仓库的多个表。我在 Aurora PostgreSQL 集群中创建了另一个名为 publisher 的表,并将示例数据插入其中。

我编辑数据筛选选项以包括用于复制的 publisher 表。为此,我前往 postgres-redshift-zero-etl 详细信息页面然后选择修改。我在筛选器表达式字段中使用逗号附加 books.*.publisher。我选择继续。我查看更改并选择保存更改。我观察到,集成详细信息页面上的已筛选数据表部分现在包含 2 个用于复制的表。

当我切换到 Amazon Redshift 查询编辑器并刷新表时,我可以看到新的 publisher 表及其记录已复制到数据仓库。

现在我已经完成了 Aurora PostgreSQL 与 Amazon Redshift 的零 ETL 集成,让我们使用相同的数据仓库创建一个 DynamoDB 零 ETL 集成。

开始使用 DynamoDB 与 Amazon Redshift 的零 ETL 集成
在本部分中,我将继续使用名为 Book_Catalog 的现有 Amazon DynamoDB 表创建 Amazon DynamoDB 零 ETL 集成。该表中有 2 个项目:

我前往 Amazon Redshift 控制台并在导航窗格中选择零 ETL 集成。然后,我选择创建零 ETL 集成旁边的箭头,然后选择创建 DynamoDB 集成。我输入 dynamodb-redshift-zero-etl 作为集成名称,并使用 Amazon DynamoDB 与 Amazon Redshift 的零 ETL 集成作为描述。我选择下一步

在下一页上,我选择浏览 DynamoDB 表,然后选择 Book_Catalog 表。在创建集成之前,我必须指定包含授权主体和集成源的资源策略,并在源表上启用时间点故障恢复(PITR)。Amazon DynamoDB 可以为我执行此操作,或者我可以手动更改配置。我选择为我修复以自动应用集成所需的资源策略,并在 DynamoDB 表上启用 PITR。我选择下一步

然后,我选择我现有的 Amazon Redshift Serverless 数据仓库作为目标,然后选择下一步

我在添加标签和加密页面再次选择下一步,然后在查看和创建页面中选择创建 DynamoDB 集成

现在,我需要从集成中创建一个数据库,以完成设置,就像我对 Aurora PostgreSQL 零 ETL 集成所做的那样。在 Amazon Redshift 控制台中,我选择了 DynamoDB 集成,然后选择通过集成创建数据库。在弹出屏幕中,我输入 zeroetl_dynamodb 作为目的地数据库名称,然后选择创建数据库

创建数据库后,我前往 Amazon Redshift 零 ETL 集成页面,并选择我创建的 DynamoDB 集成。在此页面上,我选择查询数据来连接到 Amazon Redshift 数据仓库,以观察是否复制了 DynamoDB Book_Catalog 表中的数据。当我在 zeroetl_dynamodb 数据库中运行选择查询时,我看到数据已成功复制到 Amazon Redshift。请注意,DynamoDB 数据复制在 SUPER datatype 列中,可以使用 PartiQL sql 访问。

我在 DynamoDB Book_Catalog 表中插入另一个条目。

当我切换到 Amazon Redshift 查询编辑器并刷新选择查询时,我可以看到新记录已复制到数据仓库。

Aurora PostgreSQL 与具有 Amazon Redshift 的 DynamoDB 之间的零 ETL 集成可帮助您统一来自多个数据库集群的数据,并解锁数据仓库中的见解。Amazon Redshift 允许跨数据库查询和基于多个表的实体化视图,使您有机会整合和简化分析资产、提高运营效率和优化成本。您不再需要担心设置和管理复杂的 ETL 管道。

现已推出
Aurora PostgreSQL 与 Amazon Redshift 的零 ETL 集成现已在美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)、亚太地区(香港)、亚太地区(孟买)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)和欧洲地区(斯德哥尔摩)AWS 区域推出。

Amazon DynamoDB 与 Amazon Redshift 的零 ETL 集成现已在所有商业区域、中国和 GovCloud AWS 区域推出。

有关定价信息,请访问 Amazon AuroraAmazon DynamoDB 定价页面。

要开始使用此功能,请访问使用 Aurora 与 Amazon Redshift 的零 ETL 集成Amazon Redshift 零 ETL 集成文档。

— Esra


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。