使用 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 及其他 AWS 服务的集成。
要创建零 ETL 集成,您需要将 Aurora 数据库集群指定为源,并将 Amazon Redshift 数据仓库指定为目标。该集成会将数据从源数据库复制到目标数据仓库中。
下图阐明了此功能:
该集成还会监控数据管道的运行状况,并在可能的情况下从问题中恢复。您可以创建多个 Aurora 数据库集群与单个 Amazon Redshift 命名空间的集成,从而使您能够获得跨多个应用程序的全面洞察。
有关零 ETL 集成的定价的更多信息,请参阅 Amazon Aurora 定价
主题
- 优势
- 重要概念
- 限制
- 配额
- 支持的区域
- 开始使用 Aurora 与 Amazon Redshift 的零 ETL 集成
- 创建 Aurora 与 Amazon Redshift 的零 ETL 集成
- Aurora 与 Amazon Redshift 零 ETL 集成的数据筛选
- 向源 Aurora 数据库集群中添加数据并在 Amazon Redshift 中对其进行查询
- 查看和监控 Aurora 与 Amazon Redshift 的零 ETL 集成
- 修改 Aurora 与 Amazon Redshift 的零 ETL 集成
- 删除 Aurora 与 Amazon Redshift 的零 ETL 集成
- Aurora 与 Amazon Redshift 的零 ETL 集成问题排查
优势
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 集成。您必须先删除集成,接着切换,然后重新创建集成。
-
一个数据库集群必须至少包含一个数据库实例才能成为集成的来源。
-
如果源集群是 Aurora 全局数据库中的主数据库集群,并且它故障转移到其中的一个辅助集群,则集成将变为非活动状态。您必须删除并重新创建集成。
-
如果源数据库正在积极创建另一个集成,则无法为其创建集成。
-
最初创建集成或重新同步表时,从源到目标的数据做种可能需要 20-25 分钟或更长时间,具体取决于源数据库的大小。这种延迟可能导致副本滞后延长。
-
某些数据类型不支持。有关更多信息,请参阅 Aurora 和 Amazon Redshift 数据库之间的数据类型差异。
-
不支持 XA 事务。
-
对象标识符(包括数据库名称、表名、列名等)只能包含字母数字字符、数字、$ 和 _(下划线)。
-
系统表、临时表和视图不会复制到 Amazon Redshift。
Aurora MySQL 限制
-
源数据库集群必须运行受支持的 Aurora MySQL 版本。有关受支持的版本的列表,请参阅 支持与 Amazon Redshift 进行零 ETL 集成的区域和 Amazon 数据库引擎。
-
零 ETL 集成依赖于 MySQL 二进制日志(binlog)来捕获持续数据更改。请勿使用基于二进制日志的数据筛选,因为这可能会导致源数据库和目标数据库之间的数据不一致。
-
零 ETL 集成仅适用于配置为使用 InnoDB 存储引擎的数据库。
-
不支持带有预定义表更新的外键引用。具体而言,
CASCADE
、SET NULL
和SET DEFAULT
操作不支持ON DELETE
和ON UPDATE
规则。尝试使用对另一个表的此类引用创建或更新表会使该表进入失败状态。 -
ALTER TABLE
分区操作会导致您的表重新同步,以便将数据从 Aurora 重新加载到 Amazon Redshift。该表在重新同步时将不可用于查询。有关更多信息,请参阅 我的一个或多个 Amazon Redshift 表需要重新同步。
Aurora PostgreSQL 预览版限制
重要
预览版已终止:Aurora PostgreSQL 与 Amazon Redshift 的零 ETL 集成预览版已终止。感谢您的参与和反馈。请继续关注有关该功能的可用性和增强功能的进一步动态。
-
您的源数据库集群必须运行 Aurora PostgreSQL(与 PostgreSQL 15.4 兼容和支持零 ETL)。
-
您只能在美国东部(俄亥俄州)(us-east-2)AWS 区域的 Amazon RDS 数据库预览环境
中为 Aurora PostgreSQL 创建和管理零 ETL 集成。您可以使用预览环境来测试 PostgreSQL 数据库引擎软件的测试版、候选发布版和早期生产版本。 -
您只能使用 AWS Management Console为 Aurora PostgreSQL 创建和管理集成。您无法使用 AWS Command Line Interface(AWS CLI)、Amazon RDS API 或任何 AWS SDK。
-
创建源数据库集群时,您选择的参数组必须已经配置了所需的数据库集群参数值。之后您无法创建新的参数组,然后将其与集群关联。有关所需参数的列表,请参阅步骤 1:创建自定义数据库集群参数组。
-
创建集成后,您无法对其进行修改。如果您需要更改某些设置,则必须删除集成并重新创建集成。
-
目前,作为集成源的 Aurora PostgreSQL 数据库集群不对逻辑复制数据执行垃圾回收。
-
在源 Aurora PostgreSQL 数据库集群中创建的所有数据库都必须使用 UTF-8 编码。
-
与 Aurora PostgreSQL 的零 ETL 集成不支持以下各项:
-
Aurora Serverless v2 数据库实例。您的源数据库集群必须使用预调配数据库实例。
-
自定义数据类型或由扩展创建的数据类型。
-
源数据库集群上的子事务
。 -
重命名源数据库集群中的架构或数据库。
-
从数据库集群快照还原或使用 Aurora 克隆创建源数据库集群。如果要将现有数据引入预览版集群,则必须使用
pg_dump
或pg_restore
实用程序。 -
在源数据库集群的写入器实例上创建逻辑复制插槽。
-
需要超大属性存储技术(TOAST)的大字段值。
-
ALTER TABLE
分区操作 这些操作可能导致您的表重新同步并最终进入Failed
状态。如果表失败,您必须删除并重新创建它。
-
Amazon Redshift 限制
有关与零 ETL 集成相关的 Amazon Redshift 限制的列表,请参阅《Amazon Redshift 管理指南》中的注意事项。
配额
您的账户有以下关于 Aurora 和 Amazon Redshift 的零 ETL 集成的限额。除非另行指定,否则每个限额将基于区域。
名称 | 默认值 | 描述 |
---|---|---|
集成 | 100 | AWS 账户内的集成总数。 |
每个目标数据仓库的集成数 | 50 | 向单个目标 Amazon Redshift 数据仓库发送数据的集成数量。 |
每个源集群的集成数量 | 对于 Aurora MySQL 为 5,对于 Aurora PostgreSQL 为 1 | 从单个源数据库集群发送数据的集成数量。 |
此外,Amazon Redshift 对每个数据库实例或集群节点中允许的表数量设置了某些限制。有关更多信息,请参阅《Amazon Redshift 管理指南》中的 Amazon Redshift 中的配额和限制。
支持的区域
Aurora 与 Amazon Redshift 的零 ETL 集成在 AWS 区域的子集中提供。有关受支持的 区域的列表,请参阅支持与 Amazon Redshift 进行零 ETL 集成的区域和 Amazon 数据库引擎。