LoginSignup
8
5

More than 3 years have passed since last update.

AWS Glueについて

Last updated at Posted at 2019-09-03

AWS Glue?
なにそれ美味しいの?レベルが現状。
その為キャッチアップの内容をざっくりまとめていく。それに伴い、気になった用語等々も併せて拾っていく。

AWS Glueとは

  • データ処理を自動化
  • 日々行われるデータ収集やETL処理を自動化およびサーバレス化

👉 サーバレスでデータの加工が出来るヨ

ETLって?

  • Extract (抽出する)
  • Transform (変換)
  • Load (格納)

リモートソースから情報を取得し、定義されたフォーマットとスタイルに変換し、データベース、データソース、またはデータウェアハウスにロードする統合アプローチのこと

Glueの文脈での用語

  • データストア:
    未加工のCSV, JSONによるログデータやアプリで使用している既存のDBなど
  • データカタログ :
    データ分析のために整備された領域
  • クローラ:
    様々なデータストアからデータカタログに集約させる
  • ジョブ:
    データカタログ内のデータをETLする

Glueはフルマネージドであり、その処理はスケールアウトするため、ユーザはデータ規模やインフラ運用を意識することなく、データを加工するスクリプト(ETLの"T"に対応)の作成に集中することが出来る。
ほかにも、Glueは、下記機能を備えている

  • データカタログ上のテーブルメタデータのバージョン管理機能
  • クローラでの入力データからのスキーマ自動推論機能
  • クラシファイアでの検査に基づきスキーマの変更を検知する機能
    など

クローラ

データストアのデータをデータカタログに移住させるために使用する機能。

目的
  1. 散在する複数のデータストアそれぞれの見張り、最新データの発見
  2. それらのデータをデータカタログへと集約
  3. データカタログを最新に保つ
出来ること
  • クラシファイア(デフォ有、カスタム可)という要素を通じて、カラム名変更・型変換などの簡単な変換処理
  • 半構造データをテーブルの形式に整える
  • スキーマの変更検知

作成されたクローラには、ジョブ実行方法(オンデマンドか、スケジュールベースか、イベントベースか)が定義されている。
たとえば、クローラを定期実行させておくことで、データカタログがデータストアに対しおおむね最新であることが保証される。

ジョブ

より分析に適した形にするために、ETL処理をする機能

目的

クローラを使って単にデータをデータカタログへと移住させただけでは、クエリを叩けてもデータが使いにくく、ユーザにとって分析が難しい場合がある。
このとき、より分析に適した形にするために、ETL処理を行うため。

Glueにおけるジョブとは、ETL作業を実行するビジネスロジック。
ジョブが開始されると、そのジョブに対応するETL処理を行うスクリプトが実行される。
こちらもクローラと同様に定期実行などの自動化が可能である。

備考

ユーザは、ジョブ作成者として、抽出元(データソース)、およびロード先(データターゲット)を定義する。
ただし、データソースおよびデータターゲットは、どちらもデータカタログ上のデータです。
ユーザは、ジョブ処理環境を調整したり、生成されるスクリプトをビジネスニーズに基づいて編集したりする。

最終的に、Apache Spark API (PySpark) スクリプトが生成される。
👉自動生成...すごい...近未来感...

参考

8
5
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
8
5