LoginSignup
1
0

Redshift Zero-ETL でAuroraからテーブルやデータベースをフィルタリングしてRedshiftにレプリケーション

Last updated at Posted at 2024-03-24

Redshift Zero-ETLのデータフィルタリング機能

Zero-ETLのデータフィルタリング機能がリリースされたので試してみました。
基本的には思ったように動きました。

テストケース

先にどんなテストするかを書いちゃいます(フィルタ機能のテストではない観点もあります)。

  1. 新規でZero-ETL機能を有効化した場合、フィルタ条件に含まれるテーブルの過去分のレコードが転送されるか確認。
  2. フィルタ条件に含まれるテーブル名のテーブルへの追加レコードが転送される確認。
  3. フィルタ条件に含まれるテーブル名 のテーブルを新規で作成した場合にそのテーブルが転送される確認。
  4. フィルタ条件に含まれるデータベース名とテーブル名のテーブルが転送される確認。
  5. フィルタ条件に含まれないテーブル名のテーブルが転送されない確認。
  6. フィルタ条件に含まれないデータベース名のテーブルが転送されない確認。

RDSでZero-ETL設定

Zero-ETL設定の詳細はこちらです。AuroraとRedshiftの双方で設定が必要です。今回はZero-ETL自体の設定はほとんど省きます。

Zero-ETLのフィルタリング設定の詳細はこちらです。本日のメインです。

Aurora側でZero-ETL統合を作成

フィルタリング機能にフォーカスして確認

正規表現で以下のように記載
「含める」以外に「除外」も設定可能

my_db.*,my_db2.books_table

今回は以下のように、「データベースmy_dbの全テーブルを対象とする」と「テーブルmy_db2.books_tableのみ」のフィルタリングを設定します。

スクリーンショット 2024-03-24 9.34.52.png

設定するとこんな感じで表示されます。
※このフィルター機能がリリース前からZero-ETLを使っている場合、「フィルター式=*.*」「フィルタータイプ=Include」となってます。

スクリーンショット 2024-03-24 9.33.37.png

Redshift側でZero−ETLで転送する先のRedshiftのデータベースを作成

CLIなら次のコマンドで作成

CREATE DATABASE demo_zeroetl_2 FROM INTEGRATION '7c8bdf22-bafa-4b4c-914a-aca5abc28707';

GUIなら[統合からデータベースを作成]をクリックして作成

スクリーンショット 2024-03-24 11.32.00.png

RDSの事前状態

  • my_db
    • books_table (レコード有り)
  • my_db2
    • テーブルなし

my_dbとmy_db2の2つのデータベースがあることを確認
スクリーンショット 2024-03-24 9.29.50.png

my_dbには既存でbooks_tableがありレコードが入っていることを確認
スクリーンショット 2024-03-24 9.30.35.png

my_db2にはテーブルがないことを確認
スクリーンショット 2024-03-24 9.30.58.png

テスト

①新規でZero-ETL機能を有効化した場合、フィルタ条件に含まれるテーブル名の過去分のレコードが転送されるか確認

データベースmy_dbの既存テーブルbooks_tableがZero-ETLされること。
新規でZero-ETLを有効化したら、過去分のデータが転送されたことを確認。
スクリーンショット 2024-03-24 11.34.58.png

②フィルタ条件に含まれるテーブル名のテーブルへの追加レコードが転送される確認

データベースmy_dbの既存テーブルbooks_tableに追加したレコードが転送されること

Auroraでレコードを1件追加

スクリーンショット 2024-03-24 11.39.06.png

Auroraで追加した1件のレコードが転送され、Redshiftに反映されたことを確認
スクリーンショット 2024-03-24 11.39.21.png

③フィルタ条件に含まれるテーブル名 のテーブルを新規で作成した場合にそのテーブルが転送される確認

データベースmy_dbの新規テーブルは転送されることを確認

Auroraでテーブルbooks_table2を追加。レコードを1件追加。

スクリーンショット 2024-03-24 11.42.18.png

Auroraで追加したテーブルとレコードが転送され、Redshiftに反映されたことを確認

スクリーンショット 2024-03-24 11.42.35.png

④フィルタ条件に含まれるデータベース名とテーブル名のテーブルが転送される確認

データベースmy_db2の新規テーブルbooks_tableが転送されることを確認

Auroraでデータベースmy_db2にテーブルbooks_tableを作成。レコードを1件追加
スクリーンショット 2024-03-24 11.45.26.png

Auroraで作成したテーブルとレコードが転送され、Redshiftに反映されたことを確認

スクリーンショット 2024-03-24 11.46.06.png

⑤フィルタ条件に含まれないテーブル名のテーブルが転送されない確認

データベースmy_db2の新規テーブルtestは転送されないことを確認

スクリーンショット 2024-03-24 11.48.13.png

フィルタ条件に含まれないデータベースmy_db2のテーブルtestは転送されず、Redshiftに反映されないことを確認

スクリーンショット 2024-03-24 11.50.59.png

⑥フィルタ条件に含まれないデータベース名のテーブルが転送されない確認

データベースmy_db3の新規テーブルtestは転送されないことを確認

スクリーンショット 2024-03-24 11.50.02.png

フィルタ条件に含まれないデータベースmy_db3のテーブルtestは転送されず、Redshiftに反映されないことを確認

スクリーンショット 2024-03-24 11.50.59.png

注意点

RDBのエンジンごとのZero-ETL対応状況 (2024/03/22現在)

  • Aurora MySQL
    • GA/Version/Filter/Tokyo Region = Yes/3.05(MySQL 8.0.32互換)/Yes/Yes
  • Aurora PostgreSQL
    • GA/Version/Filter/Tokyo Region = No(Preview)/15.4/No/No
  • RDS MySQL
    • GA/Version/Filter/Tokyo Region = No(Preview)/8.0.28/No/Yes
  • RDS PostgreSQL
    • No
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0