AWS Glue?
なにそれ美味しいの?レベルが現状。
その為キャッチアップの内容をざっくりまとめていく。それに伴い、気になった用語等々も併せて拾っていく。
AWS Glueとは
- データ処理を自動化
- 日々行われるデータ収集やETL処理を自動化およびサーバレス化
👉 サーバレスでデータの加工が出来るヨ
ETLって?
-
Extract
(抽出する) -
Transform
(変換) -
Load
(格納)
リモートソースから情報を取得し、定義されたフォーマットとスタイルに変換し、データベース、データソース、またはデータウェアハウスにロードする統合アプローチのこと
Glueの文脈での用語
- データストア:
未加工のCSV, JSONによるログデータやアプリで使用している既存のDBなど - データカタログ :
データ分析のために整備された領域 - クローラ:
様々なデータストアからデータカタログに集約させる - ジョブ:
データカタログ内のデータをETLする
Glueはフルマネージドであり、その処理はスケールアウトするため、ユーザはデータ規模やインフラ運用を意識することなく、データを加工するスクリプト(ETLの"T"に対応)の作成に集中することが出来る。
ほかにも、Glueは、下記機能を備えている
- データカタログ上のテーブルメタデータのバージョン管理機能
- クローラでの入力データからのスキーマ自動推論機能
- クラシファイアでの検査に基づきスキーマの変更を検知する機能
など
クローラ
データストアのデータをデータカタログに移住させるために使用する機能。
目的
- 散在する複数のデータストアそれぞれの見張り、最新データの発見
- それらのデータをデータカタログへと集約
- データカタログを最新に保つ
出来ること
- クラシファイア(デフォ有、カスタム可)という要素を通じて、カラム名変更・型変換などの簡単な変換処理
- 半構造データをテーブルの形式に整える
- スキーマの変更検知
作成されたクローラには、ジョブ実行方法(オンデマンドか、スケジュールベースか、イベントベースか)が定義されている。
たとえば、クローラを定期実行させておくことで、データカタログがデータストアに対しおおむね最新であることが保証される。
ジョブ
より分析に適した形にするために、ETL処理をする機能
目的
クローラを使って単にデータをデータカタログへと移住させただけでは、クエリを叩けてもデータが使いにくく、ユーザにとって分析が難しい場合がある。
このとき、より分析に適した形にするために、ETL処理を行うため。
Glueにおけるジョブとは、ETL作業を実行するビジネスロジック。
ジョブが開始されると、そのジョブに対応するETL処理を行うスクリプトが実行される。
こちらもクローラと同様に定期実行などの自動化が可能である。
備考
ユーザは、ジョブ作成者として、抽出元(データソース)、およびロード先(データターゲット)を定義する。
ただし、データソースおよびデータターゲットは、どちらもデータカタログ上のデータです。
ユーザは、ジョブ処理環境を調整したり、生成されるスクリプトをビジネスニーズに基づいて編集したりする。
最終的に、Apache Spark API (PySpark) スクリプトが生成される。
👉自動生成...すごい...近未来感...