AWS Glue ジョブには、ソースデータに接続して処理し、データターゲットに書き出すスクリプトがカプセル化されています。通常、ジョブは、抽出、変換、ロード (ETL) スクリプトを実行します。ジョブでは、汎用 Python スクリプト (Python シェルジョブ) を実行することもできます。AWS Glue トリガーでは、スケジュールまたはイベントに基づいて、またはオンデマンドでジョブを開始できます。ジョブ実行をモニタリングすると、完了ステータス、継続時間、開始時間などのランタイムメトリクスを知ることができます。
AWS Glue で生成されたスクリプトを使用することも、独自のスクリプトを使用することもできます。ソーススキーマとターゲット位置またはスキーマを指定すると、AWS Glue コードジェネレーターで Apache Spark API (PySpark) スクリプトを自動的に作成できます。このスクリプトを出発点として使用し、目標に合わせて編集できます。
AWS Glue は、JSON、CSV、ORC (Optimized Row Columnar)、Apache Parquet、Apache Avro などのいくつかのデータ形式で出力ファイルを書き込むことができます。一部のデータ形式では、一般的な圧縮形式を記述できます。
AWS Glue は次のジョブのタイプをサポートします。
Spark ジョブは、AWS Glue によって管理される Apache Spark 環境で実行されます。データはバッチで処理されます。
-
ストリーミング ETL ジョブは Spark ジョブに似ていますが、データストリームで ETL を実行する点が異なります。このタイプのジョブでは Apache Spark 構造化ストリーミングフレームワークが使用されます。一部の Spark ジョブ機能は、ストリーミング ETL ジョブでは使用できません。
-
Python シェルジョブは Python スクリプトをシェルとして実行し、使用している AWS Glue バージョンに応じた Python バージョンをサポートします。このタイプのジョブでは、Apache Spark 環境を必要としないタスクをスケジュールして実行できます。
-
Ray は、Python を中心としたワークロードのスケールアップに使用できるオープンソースの分散計算フレームワークです。AWS GlueRay ジョブおよびインタラクティブセッションにより、AWS Glue 内で Ray を使用できます。
以下のセクションでは、AWS Glue の ETL ジョブと Ray ジョブについて説明します。