AWS作業担当者ではないけれど、ETL処理の構成について知っておかないといけないとなって調べてみましたが、自分がほしい違いやまとめがなかったので、一旦まとめました。
- ETL処理とは?
- 用語解説1 ~AWS Glue(グルー) とは~
- 用語解説2 ~AWS Lambdaとは~
- 用語解説3 ~Talend とは~
- AWS Glue+lambdaでETL処理を行うメリット/デメリット
- AWS EC2 + talendでETL処理を行うメリット/デメリット
- 最後に
ETL処理とは?
そもそも、なぜETL処理をするのか?
それは、きれいなデータでデータ分析をするためです。分析には、データベースを使うことが多く、そこにデータを入れるために必要な処理がETL処理です。
例えば顧客情報の名前に半角スペースが入っている状態(ビット君)
⇒ ETL処理をした後には、半角スペースがない状態(ヒット君)となり扱いやすくなります。
ETL処理では、処理の流れ(パイプライン)を構築します。
たとえば「どこにデータを貯めて、どこからデータを取ってきて、どう加工して、どこにどうやってもっていくのか」という流れです。
ETL処理をフルスクラッチでプログラミングしても良いのですが、作業を効率化するためにETLツールを使うことが多いです。
それを効率的にできるツールが、"AWS Glue"と"talend"です。
用語解説1 ~AWS Glue(グルー) ~
AWS Glueとは?
「Apache Spark」というツールがあって始めて利用できるサービスです。
サーバ運用に関してはAWSが全ての作業を代行しています。
特徴は以下の2点。
・サーバレス(サーバ管理が不要)
・値の編集やフィルタリングにPythonのスキルが必須
AWS GlueはETL処理を準備+実行するAWSのサービスの一種です。
単純な処理でしたら自動生成したコードだけETL処理を実行できると思いますが、
値の編集やフィルタリングが必要な場合はプログラミングが必要です。
用語解説2 ~AWS Lambda~
Lambdaとは?
・作成したプログラムファイルを実行できるだけの環境(ツール)です。
特徴
・サーバー運用が不要です。
用語解説3 ~Talend ~
Talendとは?
これはAWSのサービスではありません。単なるETL開発ツールです。
・データ統合から、アプリケーション連携、ビジネス管理まで行える画期的な
統一プラットフォームです。
・OSS版(無償)は世界中の約4000社で利用されているデータ統合・連携ツールです。
Talendの特徴
・「バッチジョブを実現するETL」「リアルタイム連携を実現するESB」を同一プラットフォーム上で開発・運用できます。
・バッチとかの裏方で走らすジョブをGUIで簡単につくれるよ!というのが売りです。
・主な操作方法としては、
①Talendでジョブの流れを書いて、処理内容のバッチファイルを登録していく。
②job実行してほしいデータを取得。
と、いたってシンプルです。
AWS Glue+lambdaでETL処理を行うメリット/デメリット
PythonエンジニアがAWSサービスを駆使してETLを行う構成を前提にしています。
メリット |
デメリット |
変換処理を自由にカスタマイズできる |
学習コストとして、pythonのプログラミング知識が必要 |
AWSの他サービスとの連携でスケーラビリティを確保できる。 |
AWS以外(Azure)には連携が難しい |
サーバーレスによるインフラ面の料金コストが最小化 |
Glueからの操作だけでは複雑な処理は不可。大まかなプロセスまでは自動生成。 |
ETLの出力先をS3に統一することで、障害発生やメンテの影響が、DWH側に及ばない |
lambda関数で、以下の流れを実行して処理します。
①処理対象をクロールする
②クローラを実行してカタログTableを作成。
(※データベース内でETL処理対象をリスト化している)
③Job実行
このlambda関数を使用することによりプログラムで事前に設定が可能なので、エラー時の対応を設定できます。
AWS EC2 + talendでETL処理を行うメリット/デメリット
ETL処理はTalendで全て行う構成になります。
AWS EC2の環境を利用します。
メリット |
デメリット |
日本語ドキュメントはあるが、英語が必要な箇所も多々ある。 |
|
様々なデータソースにアクセスするため800を超えるコンポーネントを標準で提供されている。具体的には以下の通り。 (Hadoop、NoSQL、AWS、テキストファイル、RDBMS、Azure等) コンポーネントを別途購入する必要はない。 |
|
MQTTやAMQPをサポートし、計測データ、センサデータ、制御データなど”モノ”が発信する情報を収集することも可能。 |
ー |
Talend Open Studioは無料で利用できる。 (有料はあるがほぼ無料枠で対応可) |
|
商用ライセンスは基本的にデータ量やサーバー台数には依存せず、 開発者・システム運用者単位の使用料のため初期投資を抑えることができる。 よって、低コストでのデータ統合が可能。 |
サーバーは必要。よって、サーバー運用費は掛かる。 |
最後に
ツールの選定と最適な組み合わせは、各社システム構成やデータの性質によって変わってくるものなので難しいです。