0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RDS for MySQL-Redshift のゼロ ETL統合とソートキー変更

Last updated at Posted at 2025-02-12

はじめに

2024年9月のアップデートで、Amazon RDS for MySQL と Amazon RedshiftのゼロETL統合が一般提供されるようになりました。また、以前まではゼロETL統合によってレプリケートされたテーブルでは設定されたソートキーを変更できませんでしたが、今回のアップデートによりソートキーの変更が可能となりました。その他、RDS MySQLにおいて、以前は対象テーブルの絞り込みができませんでしたが、今回のアップデートでは絞り込みが可能となりました。本記事では、これらの機能の検証結果について紹介させていただきます。

ゼロETL統合とは

ゼロETL統合は、DB同士を直接接続し、データをレプリケートするアーキテクチャです。従来のETLプロセスで必要となるデータパイプラインの構築を省略し、円滑にDB間のデータ移動を行うことが出来ます。
現在、RedshiftのゼロETL統合に対応しているDBは、RDS for MySQL、Aurora MySQL、Aurora PostgreSQLの3種類です。

検証項目

  1. ゼロETL統合の作成
  2. ソートキーの変更
  3. テーブルのフィルタリング

メリット

1. ゼロETL統合の作成

・リアルタイムのデータアクセスを提供する
・ETLパイプライン構築のコストをカットできる

2. ソートキーの変更

・ダウンタイム無しでのソートキー変更が可能となる
・「AUTO」に設定することで、データに基づいて自動的にソートキーを最適化される

3. テーブルのフィルタリング

・レプリケートするテーブルを選択することが出来る

前提条件

以下の記事の手順に従い、ETL統合作成の事前準備が必要となります。

検証結果

1. ゼロETL統合の作成

1.AWSのホーム画面で「RDS」を選択
※検索欄で「Amazon RDS」を検索でも可
スクリーンショット 2025-01-10 144628.png

2.「ゼロのETL統合」を選択
スクリーンショット 2025-01-10 144815.png

3.「ゼロETL統合を作成する」を押下
スクリーンショット 2024-12-25 163052.png

4.「統合識別子」を入力し、「次へ」を押下
スクリーンショット 2024-12-25 163741.png

5.「RDSデータベースの参照」を押下
スクリーンショット 2024-12-25 164246.png

6.「ソースデータベース」を選択し、「選択」を押下
スクリーンショット 2024-12-25 172639.png

7.「次へ」を押下
スクリーンショット 2025-01-09 095049.png

※データフィルタリングオプションのカスタマイズが可能
フィルタータイプとフィルター式を入力することで、レプリケートするテーブルをフィルタリングすることが出来る

例.RDSに以下のテーブルが存在すると仮定

DB テーブル名
kensyoB books_table
kensyoB books_table_recode_l
kensyoB books_table_recode_s
kensyoB books_table_recode_001
kensyoB2 books_table
設定対象 フィルタータイプ・フィルター式  フィルター例
テーブル 【含む】
*.books_table
kensyoB.books_table
kensyoB2.books_table
テーブル 【含む】
./._recode.*/
kensyoB.books_table_recode_l
kensyoB.books_table_recode_s
テーブル 【含む】
./books_table_./
【除外】
./._recode.*/
kensyoB.books_table_recode_001
DB 【含む】
kensyoB.*
kensyoB.books_table
kensyoB.books_table_recode_l
kensyoB.books_table_recode_s
kensyoB.books_table_recode_001

8.「Redshiftデータウェアハウスの閲覧」を押下
スクリーンショット 2025-01-09 102848.png

9.ターゲットデータウェアハウスを選び「選択」を押下
スクリーンショット 2025-01-09 103309.png

※選択するクラスターのステータスは「ACTIVE」の必要あり

10.「次へ」を押下
スクリーンショット 2025-01-09 103726.png

11.「ゼロETL統合を作成する」を押下
スクリーンショット 2025-01-09 104324.png

12.RDSにレプリケート用のテーブルが存在することを確認
スクリーンショット 2025-01-09 104911.png

13.Amazon Redshiftの画面にて、「クエリエディタv2」を押下
スクリーンショット 2025-01-09 105109.png

14.以下のSQLを実行し、統合IDを取得

SELECT integration_id FROM SVV_INTEGRATION;

スクリーンショット 2025-01-10 145018.png

15.以下のSQLを実行し、データベースを作成

CREATE DATABASE [データベース名] FROM INTEGRATION [統合ID];

スクリーンショット 2025-01-10 145205.png

16.作成したデータベース内に、RDSのテーブルが存在することを確認
スクリーンショット 2025-01-09 110108.png

※Redshiftのテーブルに対して、INSERTやDELETEなどのテーブル操作を行った場合、エラーが発生する。

2. ソートキーの変更

1.検証用テーブルにおいて、ソートキーが設定されていることを確認
スクリーンショット 2025-01-10 145337.png

2.以下のSQLを実行し、ソートキーを変更

ALTER TABLE [DB名].[テーブル名] ALTER SORTKEY ([ソートキー名]);

スクリーンショット 2025-01-10 145529.png

3.ソートキーが変更されたことを確認
スクリーンショット 2025-01-10 150055.png

3. テーブルのフィルタリング

1.RDSに以下の検証用テーブルが存在することを確認

DB テーブル名
kensyoB books_table_recode_l
kensyoB books_table
kensyoB books_table_A00
kensyoB books_table_fujita1216_2
kensyoB books_table_recode_s
kensyoB2 books_table_A00
kensyoB2 books_table_A01

スクリーンショット 2025-01-09 113832.png

2.ゼロETL統合に以下のフィルター式を設定

設定対象 フィルタータイプ・フィルター式 
テーブル 【含む】
./._recode.*/

スクリーンショット 2025-01-10 150237.png

3.Redshiftにて、テーブルがフィルタリングされていることを確認
スクリーンショット 2025-01-10 150426.png

終わりに

今回検証したゼロETL統合は、RDSに保存したデータをRedshiftで高速に分析したい場合や、RDSのデータとRedshiftのデータを組み合わせて分析した場合などに利用できるサービスだと思います。
初めてゼロETL統合を使用した所感として、かなりシンプルな操作での作成が可能だと思いました。ETLパイプライン作成の時間・金銭のコストがかからないことは魅力的なので、単純なデータ移行の際には使いやすいサービスであると感じました。

参考文献

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?