・AWS Glue
フルマネージドのサーバーレスETLサービス。
データソース(S3やDynamoDBなど)からデータを抽出し、変換・統合したデータをターゲットのデータベース(S3やRDSなど)へ格納するといったデータ分析における橋渡しの役割を担います。
ETLとは、データのExtract(抽出)・Transform(変換)・Load(書き出し)を意味する用語で、様々なデータソースを基に、データを統合してデータウェアハウス(DWH)へ格納する一連のプロセスのことをいいます。
データ分析を行う上で「ETL」は重要は要素。
AWSには、代表的なETLツールとして「AWS Glue」「AWS Data Pipeline」がある。
・AWS Glue
クローラーは、データソースからデータを抽出し、データカタログを作成。
データカタログとは、抽出したデータのメタデータ(データの属性情報)が保存されたもの。データそのものではなく、データソースのどのデータをどのような方法で抽出するか などの情報が保存されています。
作成したデータカタログを基に、ETLエンジンがデータソースからデータを抽出し、ターゲットへ書き出す処理を行います。このデータの変換およびターゲットへ書き出す処理を「ジョブ」と呼びます。変換処理は、既存のETLツールであるApache SparkやScalaを用いて自動生成したり、生成されたスクリプトを自分で編集することができます。
なお、Glueで作成したデータカタログは、Amazon EMRやAmazon Athenaなどの分析・クエリ実行サービスなどからも参照でき、Glueのクローラーで抽出したデータに対してAthenaでSQLクエリを実行する、といった利用もできます。
・AWS Data Pipeline
データの移動や変換を自動化するサービス。例えば、Amazon S3からDynamoDBへデータを取り込んだり、RDSからRedshiftへのデータコピーなどを毎週土曜に行う、といった運用ができます。
S3やRDS、Redshiftなど、データの型が異なるストレージまたはデータベースであっても、変換および移行を行います。
・GlueとPipelineの使い分け
Glueはサーバーレスなサービスですが、Data Pipelineは処理の実行時にEC2インスタンスが起動されます。
また、Glueはデータ変換処理のベースにApache SparkやScalaを用いていますから、これらを利用したい場合はGlueを、そうでない場合にはData Pipelineを検討するといった使い分けができます。