使用 Aurora 与 Amazon Redshift 的零 ETL 集成 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Aurora 与 Amazon Redshift 的零 ETL 集成

Aurora 与 Amazon Redshift 的零 ETL 集成支持使用 Amazon Redshift 对来自 Aurora 的 PB 级事务数据进行近乎实时的分析和机器学习(ML)。这是一个完全托管式解决方案,用于在事务数据写入 Aurora 数据库集群后,使这些数据在 Amazon Redshift 中可用。提取、转换加载(ETL)是将来自多个来源的数据合并到一个大型中央存储库的过程。

零 ETL 集成可使您的 Aurora 数据库集群中的数据可在写入数据更新后的几分钟内在 Amazon Redshift 中使用。一旦这些数据进入 Amazon Redshift,您就可以使用 Amazon Redshift 的内置功能为分析、机器学习和人工智能工作负载提供支持,例如机器学习、具体化视图、数据共享、对多个数据存储和数据湖的联合访问以及与 Amazon SageMaker、Amazon QuickSight 及其它 Amazon Web Services的集成。

要创建零 ETL 集成,您需要将 Aurora 数据库集群指定为,并将 Amazon Redshift 数据仓库指定为目标。该集成会将数据从源数据库复制到目标数据仓库中。

下图阐明了此功能:


            零 ETL 集成

            零 ETL 集成

该集成还会监控数据管道的运行状况,并在可能的情况下从问题中恢复。您可以创建多个 Aurora 数据库集群与单个 Amazon Redshift 命名空间的集成,从而使您能够获得跨多个应用程序的全面洞察。

对于用来创建和处理在零 ETL 集成过程中创建的变更数据的现有 Amazon Aurora 和 Amazon Redshift 资源,您需要为它们付费。这些资源包括因启用增强型二进制日志记录所使用的额外 I/O 和存储空间、初始数据导出的快照导出成本(用于为您的 Amazon Redshift 数据库做种)、用于存储所复制数据的额外 Amazon Redshift 存储空间,以及从源到目标的跨可用区数据传输。您不需要为数据更改的日常复制付费。有关更多信息,请参阅 Amazon Aurora 定价Amazon Redshift 定价

优点

Aurora 与 Amazon Redshift 的零 ETL 集成有以下主要好处:

  • 帮助您从多个数据来源获得整体见解。

  • 无需构建和维护执行提取、转换、加载(ETL)操作的复杂数据管道。零 ETL 集成通过为您预调配和管理管道来消除构建和管理管道所带来的挑战。

  • 减少运营负担和成本,让您专注于改进应用程序。

  • 让您利用 Amazon Redshift 的分析和机器学习功能从事务数据和其他数据中获得见解,从而有效应对关键的、时间敏感的事件。

重要概念

在开始使用零 ETL 集成时,请考虑以下概念:

集成

完全管理的数据管道,可自动将事务数据和模式从 Aurora 数据库集群复制到 Amazon Redshift 数据仓库。

源数据库

从中复制数据的 Aurora 数据库集群。您可以指定使用预调配的数据库实例或 Aurora Serverless v2 数据库实例作为源的集群。多个源数据库可以写入同一个目标。对源数据库的设置有一些限制,如限制中所述。

目标数据仓库

将数据复制到的 Amazon Redshift 数据仓库。有两种类型的数据仓库:预调配集群数据仓库和无服务器数据仓库。预调配集群数据仓库是一个由称作节点的各种计算资源构成的集合,这些节点已整理到名为集群的组中。无服务器数据仓库由存储计算资源的工作组和存放数据库对象和用户的命名空间组成。两个数据仓库都运行 Amazon Redshift 引擎并包含一个或多个数据库。

有关更多信息,请参阅《Amazon Redshift 开发人员指南》中的数据仓库系统架构

限制

以下限制适用于 Aurora 与 Amazon Redshift 的零 ETL 集成。

一般限制

  • 数据库集群必须与目标 Amazon Redshift 数据仓库位于同一区域。

  • 创建集成后,您无法对其进行修改。如果您需要更改某些设置,例如集成名称,则必须删除集成并重新创建。

  • 如果集群已有集成,则无法重命名数据库集群或其任何实例。

  • 您无法删除已有集成的数据库集群。您必须先删除所有关联的集成。

  • 如果您停止源数据库集群,则在恢复集群之前,可能不会将最后几个事务复制到目标数据仓库。

  • Amazon Aurora 仅支持单可用区和多可用区数据库实例部署作为集成源。它目前不支持多可用区数据库集群。

  • 零 ETL 集成目前不支持表级筛选。

  • 如果您的集群是蓝绿部署的源,则在切换期间,蓝色和绿色环境无法具有现有的零 ETL 集成。您必须先删除集成,接着切换,然后重新创建集成。

  • 如果源集群是 Aurora 全局数据库中的主数据库集群,并且它故障转移到其中的一个辅助集群,则集成将变为非活动状态。您必须删除并重新创建集成。

  • 最初创建集成或重新同步表时,从源到目标的数据做种可能需要 20-25 分钟或更长时间,具体取决于源数据库的大小。这种延迟可能导致受影响表的副本滞后延长。

  • 某些数据类型不支持。有关支持的数据类型的列表,请参阅 Aurora 和 Amazon Redshift 数据库之间的数据类型差异

  • 零 ETL 集成仅适用于配置为使用 InnoDB 存储引擎的数据库。

  • 某些 ALTER TABLE 分区操作(包括DROP PARTITIONDISCARD PARTITIONTRUNCATE PARTITIONEXCHANGE PARTITION)会导致您的表重新同步,以便将数据从 Aurora 重新加载到 Amazon Redshift。重新同步时,该表将无法进行查询。

  • 不支持带有预定义表更新的外键引用。具体而言,CASCADESET NULLSET DEFAULT 操作不支持 ON DELETEON UPDATE规则。尝试使用对另一个表的此类引用创建或更新表会使该表进入失败状态。

  • 对象标识符(包括数据库名称、表名、列名等)只能包含字母数字字符、数字、$ 和 _(下划线)。

Aurora MySQL 限制

  • 您的源数据库集群必须运行 Aurora MySQL 版本 3.05.0(与 MySQL 8.0.32 兼容)或更高版本。目前不支持 Aurora PostgreSQL。

  • 零 ETL 集成依赖于 MySQL 二进制日志(binlog)来捕获持续数据更改。我们建议您不要使用基于二进制日志的数据过滤,因为这可能会导致源数据库和目标数据库之间的数据不一致。

  • Aurora MySQL 系统表、临时表和视图不会复制到 Amazon Redshift。

Amazon Redshift 限制

有关与零 ETL 集成相关的 Amazon Redshift 限制的列表,请参阅《Amazon Redshift 管理指南》中的注意事项

配额

您的账户有以下关于 Aurora 和 Amazon Redshift 的零 ETL 集成的限额。除非另行指定,否则每个限额将基于区域。

名称 默认值 描述
集成 100 Amazon Web Services 账户内的集成总数。
每个目标数据仓库的集成数 25 向单个目标 Amazon Redshift 数据仓库发送数据的集成数量。
每个源集群的集成 5 从单个源数据库发送数据的集成数量。

此外,Amazon Redshift 对每个数据库实例或集群节点中允许的表数量设置了某些限制。有关更多信息,请参阅《Amazon Redshift 管理指南》中的 Amazon Redshift 中的配额和限制

支持的区域

Aurora 与 Amazon Redshift 的零 ETL 集成在某些 Amazon Web Services 区域中提供。有关受支持的 区域的列表,请参阅与 Amazon Redshift 的零 ETL 集成