使用 Amazon RDS 与 Amazon Redshift 的零 ETL 集成 - Amazon Relational Database Service

使用 Amazon RDS 与 Amazon Redshift 的零 ETL 集成

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

借助零 ETL 集成,您的 RDS 数据库中的数据在 Amazon Redshift 中随时可供使用。一旦这些数据进入 Amazon Redshift,您就可以使用 Amazon Redshift 的内置功能为分析、机器学习和人工智能工作负载提供支持,例如机器学习、实体化视图、数据共享、对多个数据存储和数据湖的联合访问以及与 Amazon SageMaker、Amazon QuickSight 及其他 AWS 服务的集成。

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

下图阐明了此功能:

零 ETL 集成

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

优势

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

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

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

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

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

重要概念

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

集成

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

数据库

从中复制数据的 RDS 数据库可以指定单可用区或多可用区数据库实例,或多可用区数据库集群。

目标数据仓库

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

多个源数据库可以写入同一个目标。

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

限制

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

一般限制

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

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

  • 不能在相同的源数据库和目标数据库之间创建多个集成。

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

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

  • 如果源数据库实例已停止,则无法删除集成。

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

  • 如果源数据库正在积极创建另一个集成,则无法为其创建集成。

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

  • 某些数据类型不支持。有关更多信息,请参阅 RDS 和 Amazon Redshift 数据库之间的数据类型差异

  • 不支持 XA 事务。

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

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

RDS for MySQL 限制

  • 源数据库必须运行受支持的 RDS for MySQL 版本。有关受支持的版本的列表,请参阅 支持与 Amazon Redshift 进行 Amazon RDS 零 ETL 集成的区域和数据库引擎

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

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

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

  • ALTER TABLE 分区操作会导致您的表重新同步,以便将数据从 RDS 重新加载到 Amazon Redshift。该表在重新同步时将不可用于查询。有关更多信息,请参阅 我的一个或多个 Amazon Redshift 表需要重新同步

Amazon Redshift 限制

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

配额

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

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

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

支持的区域

RDS 与 Amazon Redshift 的零 ETL 集成在 AWS 区域的子集中提供。有关受支持的 区域的列表,请参阅支持与 Amazon Redshift 进行 Amazon RDS 零 ETL 集成的区域和数据库引擎