向源 RDS 数据库中添加数据并查询数据 - Amazon Relational Database Service

向源 RDS 数据库中添加数据并查询数据

要完成创建将数据从 Amazon RDS 复制到 Amazon Redshift 的零 ETL 集成,您必须在目标目的地中创建数据库。

要连接 Amazon Redshift,请连接到您的 Amazon Redshift 集群或工作组,并创建一个引用集成标识符的数据库。然后,您可以向源 RDS 数据库中添加数据,并在 Amazon Redshift 或 Amazon SageMaker 中查看复制的数据。

创建目标数据库

在开始将数据复制到 Amazon Redshift 中之前,创建集成后,您必须在目标数据仓库中创建一个数据库。此数据库必须包含对集成标识符的引用。您可以使用 Amazon Redshift 控制台或查询编辑器 v2 来创建数据库。

有关创建目标数据库的说明,请参阅在 Amazon Redshift 中创建目标数据库

向源数据库中添加数据

在配置集成后,您可以将一些数据添加到您希望复制到数据仓库的 RDS 数据库中。

注意

Amazon RDS 与目标分析仓库中的数据类型存在差异。有关数据类型映射的表,请参阅RDS 和 Amazon Redshift 数据库之间的数据类型差异

首先,使用您选择的 MySQL 客户端连接到源数据库。有关说明,请参阅连接到 MySQL 数据库实例

然后,创建一个表并插入一行示例数据。

重要

确保该表有主键。否则,它无法复制到目标数据仓库。

以下示例使用 MySQL Workbench 实用程序

CREATE DATABASE my_db; USE my_db; CREATE TABLE books_table (ID int NOT NULL, Title VARCHAR(50) NOT NULL, Author VARCHAR(50) NOT NULL, Copyright INT NOT NULL, Genre VARCHAR(50) NOT NULL, PRIMARY KEY (ID)); INSERT INTO books_table VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');

在 Amazon Redshift 中查询您的 Amazon RDS 数据

将数据添加到 RDS 数据库后,数据会复制到目标数据库并准备好供查询。

查询复制的数据
  1. 导航到 Amazon Redshift 控制台,然后从左侧导航窗格中选择查询编辑器 v2

  2. 连接到您的集群或工作组,然后从下拉菜单中选择您通过集成创建的目标数据库(本示例中为 destination_database)。有关创建目标数据库的说明,请参阅在 Amazon Redshift 中创建目标数据库

  3. 使用 SELECT 语句来查询您的数据。在本例中,您可以运行以下命令,从您在源 RDS 数据库中创建的表中选择所有数据:

    SELECT * from my_db."books_table";
    在查询编辑器中运行 SELECT 语句。结果是添加到 Amazon RDS 数据库中的单行示例数据。
    • my_dbRDS 数据库模式名称。

    • books_tableRDS 表名称。

也可以使用命令行客户端查询数据。例如:

destination_database=# select * from my_db."books_table"; ID | Title | Author | Copyright | Genre | txn_seq | txn_id ----+–------------+---------------+-------------+------------------------+----------+--------+ 1 | The Shining | Stephen King | 1977 | Supernatural fiction | 2 | 12192
注意

为了区分大小写,请对架构、表和列名使用双引号(" ")。有关更多信息,请参阅 enable_case_sensitive_identifier

RDS 和 Amazon Redshift 数据库之间的数据类型差异

表显示 RDS for MySQL 数据类型与相应目标数据类型的映射。Amazon RDS 目前仅支持将这些数据类型用于零 ETL 集成。

如果源数据库中的表包含不受支持的数据类型,则该表将不同步并且目的地目标无法使用该表。从源到目标的流式传输仍在继续,但数据类型不受支持的表不可用。要修复该表并使其在目标目的地中可用,您必须手动恢复重大更改,然后通过运行 ALTER DATABASE...INTEGRATION REFRESH 来刷新集成。

注意

您无法刷新与 Amazon SageMaker 智能湖仓的零 ETL 集成。而是应删除并尝试重新创建集成。

RDS for MySQL

RDS for MySQL 数据类型 目标数据类型 描述 限制
INT INTEGER 有符号的四字节整数
SMALLINT SMALLINT 有符号的二字节整数
TINYINT SMALLINT 有符号的二字节整数
MEDIUMINT INTEGER 有符号的四字节整数
BIGINT BIGINT 有符号的八字节整数
INT UNSIGNED BIGINT 有符号的八字节整数
TINYINT UNSIGNED SMALLINT 有符号的二字节整数
MEDIUMINT UNSIGNED INTEGER 有符号的四字节整数
BIGINT UNSIGNED DECIMAL(20,0) 可选精度的精确数字
DECIMAL(p,s) = NUMERIC(p,s) DECIMAL (p,s) 可选精度的精确数字

不支持精度大于 38 和比例大于 37

DECIMAL(p,s) UNSIGNED = NUMERIC(p,s) UNSIGNED DECIMAL (p,s) 可选精度的精确数字

不支持精度大于 38 和比例大于 37

FLOAT4/REAL REAL 单精度浮点数
FLOAT4/REAL UNSIGNED REAL 单精度浮点数
DOUBLE/REAL/FLOAT8 DOUBLE PRECISION 双精度浮点数
DOUBLE/REAL/FLOAT8 UNSIGNED DOUBLE PRECISION 双精度浮点数
BIT(n) VARBYTE(8) 长度可变的二进制值
BINARY(n) VARBYTE(n) 长度可变的二进制值
VARBINARY (n) VARBYTE(n) 长度可变的二进制值
CHAR(n) VARCHAR (n) 长度可变的字符串值
VARCHAR (n) VARCHAR (n) 长度可变的字符串值
TEXT VARCHAR(65535) 长度可变、最多 65535 个字符的字符串值
TINYTEXT VARCHAR(255) 长度可变、最多 255 个字符的字符串值
MEDIUMTEXT VARCHAR(65535) 长度可变、最多 65535 个字符的字符串值
LONGTEXT VARCHAR(65535) 长度可变、最多 65535 个字符的字符串值
ENUM VARCHAR(1020) 长度可变、最多 1020 个字符的字符串值
SET VARCHAR(1020) 长度可变、最多 1020 个字符的字符串值
DATE DATE 日历日期(年、月、日)
DATETIME TIMESTAMP 日期和时间(没有时区)
TIMESTAMP(p) TIMESTAMP 日期和时间(没有时区)
TIME VARCHAR(18) 长度可变、最多 18 个字符的字符串值
YEAR VARCHAR(4) 长度可变、最多 4 个字符的字符串值
JSON SUPER 作为值的半结构化数据或文档