Glueの概要
AWS Glue は、分析を行うユーザーが複数のソースからのデータを簡単に検出、準備、移動、統合できるようにするサーバーレスのデータ統合サービスです。分析、機械学習、アプリケーション開発に使用できます。また、ジョブの作成、実行、ビジネスワークフローの実装のための生産性向上に役立つツールやデータ運用ツールも追加されています。
Cloudformationの概要
AWS CloudFormation は、インフラストラクチャをコードとして扱うことで、AWS およびサードパーティーのリソースをモデル化、プロビジョニング、管理することができます。
Cloudformationのテンプレート
以下のテンプレートを作成しました。
Properties:Command:Name=pythonshell
に設定するとPython Shell jobになります。
AWSTemplateFormatVersion: 2010-09-09
Description: Create glue python job
Parameters:
TagOwner:
Type: String
Default: Kiri
###########################################################
Resources:
GluepythonJob:
Type: 'AWS::Glue::Job'
Properties:
AllocatedCapacity: 0
Command:
ScriptLocation: !Sub 's3://sample-${AWS::AccountId}/sample-cfn-glue-python/scripts/script.py'
Name: pythonshell # set this with pythonshell glue
PythonVersion: '3.9'
DefaultArguments:
--TempDir: s3://sample-123412341234/sample-cfn-glue-python/temp/
--enable-glue-datacatalog: 'false'
--enable-job-insights: 'false'
--job-language: python
library-set: analytics
Description: 'python shell glue job made by cloudformation'
ExecutionClass: STANDARD
ExecutionProperty:
MaxConcurrentRuns: 1
GlueVersion: '3.0'
MaxCapacity: 0.0625
MaxRetries: 0
Name: sample-cfn-glue-python
Role: arn:aws:iam::123412341234:role/ps2-Glue-role
Tags:
TagOwner: !Sub '${TagOwner}'
Timeout: 2880
サポートされている Python シェルジョブのライブラリ
Python 3.9 を使用する Python シェルでは、library-setをanalyticsに設定すると、事前にパッケージ済みのライブラリセットを使用できるようになります。
Python 3.9 を使用する Python シェルでは、必要に応じて事前にパッケージ済みのライブラリセットを使用するようにライブラリセットを選択できます。ライブラリセットを選択するには、library-set
オプションを使用します。有効な値は、analytics
および none
です。
Python シェルジョブを実行する環境は、次のライブラリをサポートしています。
Python バージョン | Python 3.6 | Python 3.9 | |
---|---|---|---|
ライブラリセット | 該当なし | analytics | none |
avro | 1.11.0 | ||
awscli | 116.242 | 1.23.5 | 1.23.5 |
awswrangler | 2.15.1 | ||
botocore | 1.12.232 | 1.23.5 | 1.23.5 |
boto3 | 1.9.203 | 1.22.5 | |
Elasticsearch | 8.2.0 | ||
numpy | 1.16.2 | 1.22.3 | |
pandas | 0.24.2 | 1.4.2 | |
psycopg2 | 2.9.3 | ||
pyathena | 2.5.3 | ||
PyGreSQL | 5.0.6 | ||
PyMySQL | 1.0.2 | ||
pyodbc | 4.0.32 | ||
pyorc | 0.6.0 | ||
redshift-connector | 2.0.907 | ||
requests | 2.22.0 | 2.27.1 | |
scikit-learn | 0.20.3 | 1.0.2 | |
scipy | 1.2.1 | 1.8.0 | |
SQLAlchemy | 1.4.36 | ||
s3fs | 2022.3.0 |
作成されたGlue Jobの内容
以下は作成されたGlue Jobの内容です。
[cloudshell-user@ip-10-4-35-126 ~]$ aws glue get-job --job-name sample-cfn-glue-python --output yaml
Job:
AllocatedCapacity: 0
Command:
Name: pythonshell
PythonVersion: '3.9'
ScriptLocation: s3://sample-123412341234/sample-cfn-glue-python/scripts/script.py
CreatedOn: '2023-02-07T10:11:08.640000+00:00'
DefaultArguments:
--TempDir: s3://sample-123412341234/sample-cfn-glue-python/temp/
--enable-glue-datacatalog: 'false'
--enable-job-insights: 'false'
--job-language: python
library-set: analytics
Description: python shell glue job made by cloudformation
ExecutionClass: STANDARD
ExecutionProperty:
MaxConcurrentRuns: 1
GlueVersion: '3.0'
LastModifiedOn: '2023-02-07T10:11:08.640000+00:00'
MaxCapacity: 0.0625
MaxRetries: 0
Name: sample-cfn-glue-python
Role: arn:aws:iam::123412341234:role/ps2-Glue-role
Timeout: 2880