使用 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 定价

优势

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

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

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

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

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

重要概念

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

集成

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

数据库集群

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

目标数据仓库

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

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

限制

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

一般限制

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

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

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

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

  • 零 ETL 集成目前不支持数据筛选。

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

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

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

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

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

  • 不支持 XA 事务。

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

Aurora MySQL 限制

  • 您的源数据库集群必须运行 Aurora MySQL 版本 3.05(与 MySQL 8.0.32 兼容)或更高版本。

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

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

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

  • ALTER TABLE 分区操作会导致您的表重新同步,以便将数据从 Aurora 重新加载到 Amazon Redshift。该表在重新同步时将不可用于查询。

Aurora PostgreSQL 预览版限制

重要

Aurora PostgreSQL 与 Amazon Redshift 功能的零 ETL 集成已发布预览版。文档和特征都可能会更改。您仅可在测试环境中使用此功能,而不要在生产环境中使用。有关预览条款和条件,请参阅 Amazon 服务条款中的测试版和预览

  • 您的源数据库集群必须运行 Aurora PostgreSQL(与 PostgreSQL 15.4 兼容和支持零 ETL)。

  • 您只能在美国东部(俄亥俄州)(us-east-2)Amazon Web Services 区域的 Amazon RDS 数据库预览环境中为 Aurora PostgreSQL 创建和管理零 ETL 集成。您可以使用预览环境来测试 PostgreSQL 数据库引擎软件的测试版、候选发布版和早期生产版本。

  • 您只能使用 Amazon Web Services Management Console为 Aurora PostgreSQL 创建和管理集成。您无法使用 Amazon Command Line Interface(Amazon CLI)、Amazon RDS API 或任何 Amazon SDK。

  • 创建源数据库集群时,您选择的参数组必须已经配置了所需的数据库集群参数值。之后您无法创建新的参数组,然后将其与集群关联。有关所需参数的列表,请参阅步骤 1:创建自定义数据库集群参数组

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

  • 目前,作为集成源的 Aurora PostgreSQL 数据库集群不对逻辑复制数据执行垃圾回收。

  • 在源 Aurora PostgreSQL 数据库集群中创建的所有数据库都必须使用 UTF-8 编码。

  • 列名称不能包含以下任何字符:逗号(,)、分号(;)、圆括号 ( )、大括号 { }、换行符(\n)、制表符(\t)、等号(=)和空格。

  • 与 Aurora PostgreSQL 的零 ETL 集成不支持以下各项:

    • Aurora Serverless v2 数据库实例。您的源数据库集群必须使用预调配数据库实例。

    • 自定义数据类型或由扩展创建的数据类型。

    • 源数据库集群上的子事务

    • 重命名源数据库集群中的架构或数据库。

    • 从数据库集群快照还原或使用 Aurora 克隆创建源数据库集群。如果要将现有数据引入预览版集群,则必须使用 pg_dumppg_restore 实用程序。

    • 在源数据库集群的写入器实例上创建逻辑复制插槽。

    • 需要超大属性存储技术(TOAST)的大字段值。

    • ALTER TABLE 分区操作 这些操作可能导致您的表重新同步并最终进入 Failed 状态。如果表失败,您必须删除并重新创建它。

Amazon Redshift 限制

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

配额

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

名称 默认值 描述
集成 100 Amazon Web Services 账户内的集成总数。
每个目标数据仓库的集成数 50 向单个目标 Amazon Redshift 数据仓库发送数据的集成数量。
每个源集群的集成数量 对于 Aurora MySQL 为 5,对于 Aurora PostgreSQL 为 1 从单个源数据库集群发送数据的集成数量。

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

支持的区域

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