ETLの使い分けについて
ETLの処理速度改善のため、MySQLデータフロー、RedShiftデータフロー、Blend機能の利用の選択肢があると認識しているのですが、
データ量や実現したい処理によってどれを選ぶべきかガイドライン等ありますでしょうか?
例)
・100,000件以下のデータ処理の場合はMagicETL
・100,000件以上で単純なデータ結合のみの場合はBlend
・100,000件~XX件程度までの複雑なETLの場合はMySQLデータフロー
・上記以上のデータ量やWindow関数を利用したい場合はRedshiftデータフロー(※日本語の列名が利用できない制限あり)
よろしくお願いいたします。
ベストアンサー
-
私の感覚で恐縮ですが、Blendだけで処理できるケースは以外と少なく、2000万件以上の入力データの場合はRedshiftになるかと思います。(日本語列だと英語列に直す必要がありますが)
1、MySQLデータフローETLでは提供されていない関数を要する場合。(SUBSTRING、LIKE、EXISTS句など)
Stored Procedureを用いる場合。
データ型の変換を多用する場合。
2、RedShiftデータフロー
入力データセットが英語カラムであることが前提
MySQLにないWIndow関数(NTILEなど)の関数を使用する場合。
数千万件の大量データを処理する場合。
3、Blend機能
型の変換が不要で簡易な結合やUNION処理を行う場合。
0
答え
-
私の感覚で恐縮ですが、Blendだけで処理できるケースは以外と少なく、2000万件以上の入力データの場合はRedshiftになるかと思います。(日本語列だと英語列に直す必要がありますが)
1、MySQLデータフローETLでは提供されていない関数を要する場合。(SUBSTRING、LIKE、EXISTS句など)
Stored Procedureを用いる場合。
データ型の変換を多用する場合。
2、RedShiftデータフロー
入力データセットが英語カラムであることが前提
MySQLにないWIndow関数(NTILEなど)の関数を使用する場合。
数千万件の大量データを処理する場合。
3、Blend機能
型の変換が不要で簡易な結合やUNION処理を行う場合。
0 -
ご回答ありがとうございます。承知しました。
0 -
データフロー:ユニークキー1万件以上同士のデータ結合ができない(これはエラーとならず、当たらないという結果がでてしまうのでわかりにくい。)
ブレンド:ブレンドしたデータセットをETLで呼び出すことができない
というデメリットを聞いております。
ご参考になれば。
1 -
ご回答ありがとうございます!
>データフロー:ユニークキー1万件以上同士のデータ結合ができない(これはエラーとならず、当たらない>という結果がでてしまうのでわかりにくい。)
これ分かりにくいですよね。今はエラーになるみたいです。
>ブレンド:ブレンドしたデータセットをETLで呼び出すことができない
データセット一覧からDataFusionでフィルタして、データセット詳細画面から変換をクリックすると
MagicETLの入力データセットとして利用できるみたいですが、どのタイミングでデータフローが自動実行されるかなどまだ使いこなせてません。これも確認したかった・・・
1 -
こちらこそありがとうございます!私の情報が古かったようです。。。
データフロー:今はエラーになるみたいです。
→こちらそうなんですね、、、最新の状況を確認できてなかったです。
以前試した時はひも付きなしになって困っていました。。。改善されてよかったです。
>ブレンド:MagicETLの入力データセットとして利用できる
→本当ですね!以前できなかったので驚きました。。。これも改善されてよかったです。
>データフローが自動実行
これってブレンドでしょうか?ブレンドは確かに設定ないですね。更新されたら更新されるのでしょうか。試してみるしかないかもしれませんね。
とても助かりました。
0 -
ご返信ありがとうございます!
>データフローが自動実行
>これってブレンドでしょうか?ブレンドは確かに設定ないですね。更新されたら更新されるのでしょう>か。試してみるしかないかもしれませんね。
今試してみてたんですが、データフローでブレンドのデータセット更新時に実行をチェックしておくと、
ブレンドが参照しているデータセットが更新されたタイミングで、ブレンドのデータセットが更新され、
データフローもちゃんと実行されました!
0 -
なるほど、データフロー側でしたか!
データフローの設定は忘れがちですよね、デフォルトチェックでも良い気がしますが。。。
(閃き行き?)
色々とありがとうございました!
0