LoginSignup
0
0

zero-ETL integration(preview版)の検証

Last updated at Posted at 2023-10-11
1 / 41

アジェンダ

1. 概要
2. 前提
3. 実装方法
4. 追加検証
5. 所感
6. さいごに


概要

AWSは、Amazon Aurora MySQLのデータをAmazon Redshiftにニアリアルタイムで同期させる新サービス「 Amazon Aurora MySQL zero-ETL integration with Amazon Redshift」(以下、ゼロETL)をパブリックプレビューとして提供開始したことを発表しました。
※東京リージョンで利用可能
※2022年11月の「AWS re:Invent 2022」で発表


AWSにはいくつかデータベースのサービスがあります。
これらのデータベースからAmazon Reshiftにデータを集約してデータ分析を行う際に発生する、いわゆるETLの手間が課題となっていました。
image.png


以下図のように、通常は複数のデータソースから分析までにパイプラインが必要です。
ゼロETLは、ニアリアルタイムでAmazon Redshiftにデータ集約を可能にすることで、このETLの課題を解決するとして提供されるサービスです。
ETLの部分を簡単かつ自動でやってしまおう、ということがゼロETLの基本的な概念です。
image.png


前提

・現在はpreview版であること
 →今回の検証内容から仕様が変わる可能性がある
・挙動確認が主な検証となること
 →ゼロETLを検証している記事が着手時点でなかったため
・AWS環境が準備されていること
 →すでに検証で使用するIAMユーザが払いだされている状態からスタート


実装方法

大枠での流れは以下です。
①カスタマイズされた DB クラスターパラメータグループで Aurora MySQL ソースを設定
②Amazon Redshift Serverless デスティネーションをその名前空間に必要なリソースポリシーで設定
③大文字と小文字を区別する識別子を有効にするためRedshift Serverlessワークグループを更新
④必要な権限を設定
⑤ゼロETL統合を作成
⑥Amazon Redshiftにある統合からデータベースを作成


イメージ図
以下、イメージ図です。
       image.png


カスタマイズされた DB クラスターパラメータグループで
Aurora MySQL ソースを設定


パラメータグループの作成
グループ名と説明は任意の名称を設定します。
image.png


パラメータグループの設定変更
ゼロETLに必要なbinlog(※Server層が出力するログ)に関する値を変更します。
コメントのログを待たずに、トランザクションのイベント送信を可能にし、並行して動作するための設定値変更です。(=ニアリアルタイムの実現)
image.png


データベース作成
Aurora(MySQL Compatible)を選択し、バージョンは3.03.1以上を選択します。
    image.png


DBクラスター識別子・マスターユーザ名・マスターパスワードには
制約に沿った値を任意で設定します。
    image.png


セキュリティグループの作成
セキュリティグループは公式のdemoだとデフォルトですが
最後にMySQLから接続してゼロETLの実装結果を確認するため、パブリックアクセスの接続を「あり」および、セキュリティグループの新規作成と設定が必要です。
image.png


さきほど設定したパラメータを選択し、
今回は検証ですのでデータベースの削除保護を解除しておきます。
image.png


Amazon Redshift Serverless デスティネーションを
その名前空間に必要なリソースポリシーで設定


Redshift serverlessワークグループの作成
ワークグループの名称を任意に設定します。ベース容量は最小値としておきます。
※本来は8が最小値となるがゼロETL作成については32が最小値
image.png


名前空間の作成
名前空間の名称に任意の値を設定し、制約に沿ってアカウント情報を入力します。
image.png


ユーザの追加
AWS ユーザーまたはロールの Amazon Resource Name (ARN)、またはこの名前空間で統合の作成が許可されている AWS アカウント ID (IAM プリンシパル) のいずれかを入力します。
アカウント ID は、root ユーザーの ARN として保存されます。
image.png


RDSとの接続
ゼロETL統合のデータソースであるAurora MySQL DB クラスターのARNを指定します。
image.png


大文字と小文字を区別する識別子を有効にするため
Redshift Serverlessワークグループを更新


ここではRedshift Serverlessワークグループの識別子を更新します。
理由はAurora MySQLはデフォルトで大文字と小文字を区別するのに対して、Redshiftはデフォルトで区別されないためです。AWS Cloud Shellを使用します。
※AWSに掲載されているコマンドをコピーして使用
image.png


必要な権限を設定


権限の追加
ゼロETL統合を作成するには、ユーザーまたはロールに適切なIAM権限を持つアイデンティティベースのポリシーがアタッチされている必要があります。
※以下エラーは一般公開前の想定内エラー
image.png


ゼロETL統合を作成


ゼロETLはRDSの画面から作成します。
RDSの左側に新規として「ゼロのETL統合」とあり、こちらから作成することができます。
ゼロETL自体に料金はかかりません。
image.png


ゼロETLでは以下イメージ図の矢印部分を作成するのが目的なので
ソースを選択できる箇所では、さきほど作成したRDSのデータベースを選択する必要があります。
image.png


Amazon Redshiftにある統合からデータベースを作成


統合IDの取得
ここからゼロETLのデータ先であるRedshiftの設定です。
Redshiftのクエリエディタで以下SQLを実行すると統合のIDを取得することができます。
image.png


統合を使用したデータベース作成
さきほど取得したIDをFROM句に指定し、データベースを作成します。
image.png


今回はもう1つRDSのデータベースを作成して統合を確認したいので
上記の手順で同じようにデータベースを作成します。
注意点としては、1つのRedshift名前空間に対して2つのRDSデータソースを紐づけるので、統合の設定にはRDS2:Redshift1の設定にすることがポイントです。
image.png


実装確認
MySQLでデータベースとテーブルを作成しテストデータを投入します。
Redshift側でSELECTすると時間を要することなく、作成したテーブルとそのデータの中身を確認することができました。
image.png


追加で作成した2つ目のデータソースも同じように
時間を要することなくニアリアルタイムでデータを確認することができました。
image.png


また、それぞれのデータソースで作成したデータを
Redshift上でJOINして、表示できることを確認しました。
image.png


追加検証

AWS公式ページでpreview版時点での制約が公開されています。
そのなかで今回は★の部分について追加検証を実施しました。
image.png


今回の検証
追加検証としては以下を検証ポイントとします。
・クエリごとに反映されないものがあるか
image.png


検証結果
検証結果は以下の通りです。
候補でピックアップしたクエリはすべて反映することがわかりました。
image.png


詳細
たとえば「UPDATE」を例にすると
RDS側でUPDATEした内容がニアリアルタイムでRedshift側に反映されるか
反映されないものなどはあるかという観点で確認しました。
image.png


またMySQL側で統合用に作成したデータベースに対して
Redshift側からデータベースを修正することができないこともわかりました。
※テーブルの作成、挿入、削除など
image.png


所感

今回の検証を実施して気になった点は以下です。
・ETLのT(加工)の部分の役割
 →ゼロETLは抽出(E)と格納(L)ができるサービス
 →Tで複雑な加工をしている場合は移行方法が不明
・データ量とリアルタイム性の相関
 →データ量やテーブル量によってリアルタイム性が下がることはあるか不明
・ゼロETLが実現した場合の動向
 →ETLなどコードを書くエンジニアが今後求められることが変わる
 →ゼロETLが実現すると価値があるサービス・業務があるか
   (=リアルタイム性に価値があるもの)


さいごに

preview版でのゼロETL検証は以上です。
みなさまの業務の一助となれていましたら幸いです。

appendix
株式会社ジールでは、初期費用が不要で運用・保守の手間もかからず、ノーコード・ローコードですぐに手元データを分析可能なオールインワン型データ活用プラットフォーム「ZEUSCloud」を提供しております。
ご興味がある方は是非下記のリンクをご覧ください:
https://www.zdh.co.jp/products-services/cloud-data/zeuscloud/

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