メインコンテンツまでスキップ

AWS Glue

Overview

AWS Glueは、データレイク上のデータを分析するためにデータの前処理をおこなうサービス。

データレイクとは(湖)

音声・動画・ログデータといったさまざまな媒体から生成されるデータを整形・変換される前の状態で保存できる、データの「貯蔵庫」
データレイクを活用することで、大量のデータが保存でき、必要なときに必要なデータを取得して活用することが可能になる。
また、生データを分析対象のデータにするためには、データの前処理としてETL処理をおこなう。
AWSだとS3が該当する。

  • Extract(抽出)
  • Transform(変換)
  • Load(格納) ETLは上記の頭文字をつなげたもの。

Extract(抽出)

分析に必要なデータを抽出する。
不要なデータは抽出しないため分析処理を効率よく進めることができる。

Transform(変換)

データを書き出しやすいように、一定の規則に従いデータを加工・変換する。
必要に応じて重複値の除去やデータのグループ化などを行う。

Load(格納)

加工・変換したデータを、分析実行するデータウェアハウスなどのデータストアにデータを格納する。

Glueの特徴

Glueには次のような特徴があります。

  1. サーバーレスで利用可能
  2. フルマネージドサービス
  3. セキュアな暗号化に対応
  4. データをETLの処理するコードを自動的に生成
  5. 他のAWSサービスと容易に連携が可能

Glueの機能

Glueには大きく分けて5つの機能が備わっている。

Image from Gyazo

クローラー

データレイクを定期的に巡回し、メタデータを取得・保存するプログラム。
取得したメタデータをデータカタログに登録・更新する。
メタデータとは、データそのものではなく、データに関する属性などの付帯情報を記述したデータ。たとえば、文書データであればタイトルや作成者名、保存場所などのことです。

データカタログ

クローラーが取得したメタデータを保持する場所。
データカタログをもとに、必要なデータを取得して分析処理をおこなう。

ジョブ

ETL処理を実行するための処理単位。
ジョブの種類には、Python ShellとApache Sparkがある。
Glueが自動生成したコードや自分自身で作成したコード、既存のコード(オンプレミスで動作していたものなど)を実行してデータ変換とターゲットへの格納をおこないます。

トリガー

トリガーを起動することで、ジョブとクローラーを実行できる。

ワークフロー

複数のジョブやクローラーの実行とモニタリングを管理します。データ抽出からジョブを実行したデータ出力まで一連の処理を自動化することが可能。

サーバーレスETL処理の使い分けの例

サーバーレスでETL処理をおこなう場合、Glue以外の選択肢としてLambdaを使用するケースがある。
どちらのサービスを選ぶかは、データの規模やETL処理の目的、ジョブの実装方法などによって使い分ける必要がある。
それぞれの機能・特徴や利用シーンを次の表にまとめています。

Image from Gyazo