將資料新增至來源 RDS 資料庫,並在 Amazon Redshift 中進行查詢 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將資料新增至來源 RDS 資料庫,並在 Amazon Redshift 中進行查詢

這是與 Amazon Redshift 的 Amazon RDS 零 ETL 整合 (預覽版本) 的發行前版本文件。文件和功能會隨時變更。我們建議僅在測試環境中使用此功能,不要在生產環境中使用。如需預覽版條款和條件,請參閱 AWS 服務條款中的 Beta 版和預覽版

若要完成建立 零 ETL 整合,將資料從 Amazon RDS 複製到 Amazon Redshift,您必須在 Amazon Redshift 中建立目的地資料庫。

首先,連線到您的 Amazon Redshift 叢集或工作群組,並建立參考整合識別碼的資料庫。然後,您可以將資料新增到來源 RDS 資料庫 Aurora 資料庫,並在 Amazon Redshift 中查看已複寫的資料。

在 Amazon Redshift 中建立目的地資料庫

在建立整合之後,您必須在目標資料倉儲中建立目的地資料庫,然後才能開始將資料複寫到 Amazon Redshift。此目的地資料庫必須包含整合識別符的參考。您可以使用 Amazon Redshift 主控台或查詢編輯器第 2 版來建立資料庫。

如需建立目的地資料庫的指示,請參閱在 Amazon Redshift 中建立目的地資料庫

將資料新增至來源資料資料

設定整合之後,您可以將一些資料新增至要複寫到 Amazon Redshift 資料倉儲的 RDS 資料庫

注意

Amazon RDS 與 Amazon Redshift 中的資料類型之間存在差異。如需資料類型映射的資料表,請參閱 RDS 與 Amazon Redshift 資料庫之間的資料類型差異

首先,使用您選擇的 MySQL 。如需說明,請參閱連接至執行 MySQL 資料庫引擎的資料庫執行個體

然後,建立資料表並插入一列範例資料。

重要

請確定資料表具有主索引鍵。否則,無法將其複寫到目標資料倉儲。

下列範例使用 MySQL 工作台公用程式

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 紅移中查詢您的亞馬遜 RDS 數據

將資料新增至 RDS 資料庫 之後,資料就會複寫到 Amazon Redshift,並可供查詢。

查詢複製的資料
  1. 導覽至 Amazon Redshift 主控台,然後從左側導覽窗格中選擇查詢編輯器第 2 版

  2. 連線到您的叢集或工作群組,然後從下拉式功能表中選擇您已從整合中建立的目的地資料庫 (在此範例中為 destination_database)。如需建立目的地資料庫的指示,請參閱在 Amazon Redshift 中建立目的地資料庫

  3. 使用 SELECT 陳述式來查詢您的資料。在此範例中,您可以執行下列命令,從您在來源 RDS 資料庫 中建立的表格中選取所有資料:

    SELECT * from my_db."books_table";
    • 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 資料庫之間的資料類型差異

表顯示適用於 MySQL 的 RDS 表格的對應顯示 Aurora MySQL SQL 應的 Amazon Redshift 資料類型的對應。Amazon RDS Amazon 目前僅支援這些資料類型進行零 ETL 整合。

如果來源資料庫資料中的資料表包含不受支援的資料類型,表格會不同步,而且 Amazon Redshift 目標無法使用該資料表。從來源到目標的串流會繼續進行,但是無法使用其中資料類型不受支援的資料表。若要修正資料表並使其可在 Amazon Redshift 中使用,您必須手動還原重大變更,然後執行 ALTER DATABASE...INTEGRATION REFRESH 以重新整理整合。

MySQL

RDS for MySQL 資料類型 Amazon Redshift 資料類型 描述 限制
INT INTEGER 帶正負號的 4 位元組整數
SMALLINT SMALLINT 帶正負號的 2 位元組整數
TINYINT SMALLINT 帶正負號的 2 位元組整數
MEDIUMINT INTEGER 帶正負號的 4 位元組整數
BIGINT BIGINT 帶正負號的 8 位元組整數
INT UNSIGNED BIGINT 帶正負號的 8 位元組整數
TINYINT UNSIGNED SMALLINT 帶正負號的 2 位元組整數
MEDIUMINT UNSIGNED INTEGER 帶正負號的 4 位元組整數
BIGINT UNSIGNED DECIMAL(20,0) 可選擇精確度 (有效位數) 的精確數值
十進制(p,s)= 數字(p,s) DECIMAL(p,s) 可選擇精確度 (有效位數) 的精確數值

不支援大於 38 且大於 37 的精確度

十進制(P,s)無符號 = 數字(p,s)無符號 DECIMAL(p,s) 可選擇精確度 (有效位數) 的精確數值

不支援大於 38 且大於 37 的精確度

FLOAT4/REAL REAL 單精度浮點數
FLOAT4/REAL UNSIGNED REAL 單精度浮點數
DOUBLE/REAL/FLOAT8 DOUBLE PRECISION 雙精度浮點數
DOUBLE/REAL/FLOAT8 UNSIGNED DOUBLE PRECISION 雙精度浮點數
位元 (n) VARBYTE(8) 可變長度二進位值
BINARY(n) 瓦字節 (n) 可變長度二進位值
VARBINARY(n) 瓦字節 (n) 可變長度二進位值
CHAR(n) VARCHAR(n) 可變長度字串值
VARCHAR(n) VARCHAR(n) 可變長度字串值
TEXT VARCHAR(65535) 可變長度字串值最多 65535 個位元組
TINYTEXT VARCHAR(255) 可變長度字串值最多 255 個位元組
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 半結構化資料或文件作為值