ソース RDS データベースへのデータの追加と、Amazon Redshift でのクエリ - Amazon Relational Database Service

ソース RDS データベースへのデータの追加と、Amazon Redshift でのクエリ

これは、プレビューリリース中の Amazon RDS ゼロ ETL 統合と Amazon Redshift の統合に関するプレリリースドキュメントです。ドキュメントと機能はどちらも変更されることがあります。この機能については、テスト環境のみで使用し、本番環境では使用しないことをお勧めします。プレビューの利用規約については、「AWS のサービス条件」の「ベータ版とプレビュー」を参照してください。

Amazon RDS から Amazon Redshift にデータをレプリケートするゼロ ETL 統合の作成を終了するには、Amazon Redshift に送信先データベースを作成する必要があります。

まず、Amazon Redshift クラスターまたはワークグループに接続し、統合識別子を参照してデータベースを作成します。これで、ソースの RDS データベースにデータを追加し、Amazon Redshift でクエリを実行できます。

Amazon Redshift での送信先データベースの作成

Amazon Redshift へのデータの複製を開始する前に、統合を作成後、送信先データベースをターゲットのデータウェアハウスに作成する必要があります。この送信先データベースには、統合識別子への参照が含まれている必要があります。Amazon Redshift コンソールまたはクエリエディタ v2 を使用して、データベースを作成することができます。

デスティネーションデータベースを作成する手順については、「Amazon Redshift にデスティネーションデータベースを作成する」を参照してください。

ソースデータベースへのデータの追加

統合を設定した後で、Amazon Redshift データウェアハウスにレプリケートするデータを RDS データベースに追加できます。

注記

Amazon RDS と Amazon Redshift のデータ型には違いがあります。データ型マッピングの表については、「RDS データベースと Amazon Redshift データベースのデータタイプの違い」を参照してください。

まず、任意の MySQL クライアントを使用して、ソースデータベースに接続します。手順については、MySQL DB インスタンスへの接続 を参照してください。

次に、テーブルを作成し、1 行のサンプルデータを挿入します。

重要

テーブルにプライマリキーがあることを確認してください。そうしないと、ターゲットのデータウェアハウスに複製できません。

次の例では、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 データベースにデータを追加すると、Amazon Redshift にレプリケートされ、クエリを実行できるようになります。

複製されたデータをクエリするには
  1. Amazon Redshift コンソールに移動し、左側のナビゲーションペインから [クエリエディタ v2] を選択します。

  2. クラスターまたはワークグループに接続し、ドロップダウンメニュー (この例では destination_database) から送信先データベース (統合から作成したもの) を選択します。デスティネーションデータベースを作成する手順については、「Amazon Redshift にデスティネーションデータベースを作成する」を参照してください。

  3. SELECT ステートメントを使用してデータをクエリします。この例では、次のコマンドを実行して、ソースの RDS データベースで作成したテーブルからすべてのデータを選択します。

    SELECT * from my_db."books_table";
    Redshift クエリエディタ内で SELECT ステートメントを実行します。結果は、RDS データベースに追加されたサンプルデータの 1 行です。
    • my_db  は RDS データベーススキーマ名です。

    • books_table  は RDS テーブル名です。

コマンドラインクライアントを使用してデータをクエリすることもできます。例:

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 Redshift データタイプへのマッピングを示しています。Amazon RDS は現在、ゼロ ETL 統合ではこれらのデータ型のみをサポートしています。

ソースデータベースのテーブルにサポートされていないデータ型が含まれている場合、そのテーブルは同期されず、Amazon Redshift ターゲットで使用できなくなります。ソースからターゲットへのストリーミングは継続されますが、サポートされていないデータ型のテーブルは使用できません。テーブルを修正して Amazon Redshift で使用できるようにするには、変更内容を手動で元に戻し、ALTER DATABASE...INTEGRATION REFRESH を実行して統合を更新する必要があります。

RDS for 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) 精度の選択が可能な真数
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(65,535) 最大 65535 バイトの可変長文字列値
TINYTEXT VARCHAR(255) 最大 255 バイトの可変長文字列値
ENUM VARCHAR(1,020) 最大 1020 バイトの可変長文字列値
SET VARCHAR(1,020) 最大 1020 バイトの可変長文字列値
DATE DATE カレンダー日付 (年、月、日)
DATETIME TIMESTAMP 日付と時刻 (タイムゾーンなし)
TIMESTAMP(p) TIMESTAMP 日付と時刻 (タイムゾーンなし)
TIME VARCHAR(18) 最大 18 バイトの可変長文字列値
YEAR VARCHAR(4) 最大 4 バイトの可変長文字列値
JSON SUPER 値としての半構造化データまたは文書