AWS Glueとは何か
AWS Glueは、Amazon Web Servicesが提供するサーバーレスのデータ統合サービスです。このサービスは、分析、機械学習、アプリケーション開発に使用できます。
AWS Glueを使用すると、70以上の多様なデータソースを検出して接続し、一元化されたデータカタログでデータを管理できます。また、抽出、変換、ロード (ETL) パイプラインを視覚的に作成、実行、モニタリングして、データをデータレイクにロードできます。
AWS Glueは、主要なデータ統合機能を単一のサービスに統合します。これには、データ検出、最新のETL、クリーニング、変換、一元化されたカタログ作成が含まれます。また、サーバーレスなので、管理するインフラストラクチャがありません。
AWS Glueは、ETL、ELT、ストリーミングなどのすべてのワークロードを1つのサービスで柔軟にサポートすることで、さまざまなワークロードやユーザータイプのユーザーをサポートします。また、AWS Glueは、アーキテクチャ全体でデータを簡単に統合できます。
AWS Glueは、AWS分析サービスとAmazon S3データレイクを統合します。さまざまな技術的スキルセットに合わせてカスタマイズされたソリューションを備えており、デベロッパーからビジネスユーザーまで、すべてのユーザーが使いやすい統合インターフェイスとジョブ作成ツールを用意しています。
AWS Glueは、オンデマンドで拡張できるため、データの価値を最大化する価値の高いアクティビティに集中できます。あらゆるデータサイズに合わせてスケーリングでき、すべてのデータ型とスキーマの差異をサポートします。俊敏性を高め、コストを最適化するため、AWS Glueは、組み込みの高可用性と従量制料金を提供します。
AWS GlueでのPandasの利用
AWS Glueでは、Python Package Installer (pip3)を使用して、AWS Glue ETLで使用するモジュールを追加でインストールします。--additional-python-modules
パラメータでコンマ区切りのPythonモジュールのリストを指定することで、新しいモジュールを追加したり、既存のモジュールのバージョンを変更したりできます。
例えば、更新したり新しいscikit-learnモジュールを追加したりするには、"--additional-python-modules", "scikit-learn==0.21.3"
のキー/値を使用します。また、--additional-python-modules
オプションの中で、PythonホイールモジュールへのAmazon S3パスを指定できます。
AWS GlueはPySparkを使用してGlue ETL AWSジョブにPythonファイルを含めます。可能な場合には、依存関係を管理するために、--additional-python-modules
を使用することが必要になります。Pythonファイルをインクルードするには、--extra-py-files
ジョブパラメータを使用します。
AWS Glueバージョン2.0には、すぐに使用できる次のPythonモジュールが含まれています: avro-python3==1.10.0
, awscli==1.27.60
, boto3==1.12.4
, botocore==1.15.4
, certifi==2019.11.28
, chardet==3.0.4
, click==8.1.3
, colorama==0.4.4
, cycler==0.10.0
, Cython==0.29.15
, docutils==0.15.2
, enum34==1.1.9
, fsspec==0.6.2
, idna==2.9
, importlib-metadata==6.0.0
, jmespath==0.9.4
, joblib==0.14.1
, kiwisolver==1.1.0
, matplotlib==3.1.3
, mpmath==1.1.0
, nltk==3.5
, numpy==1.18.1
, pandas==1.0.1
, patsy==0.5.1
, pmdarima==1.5.3
, ptvsd==4.3.2
, pyarrow==0.16.0
。
AWS GlueでPandasを使用することで、S3に格納されたzipファイル (中身はcsv)をETLすることが可能です。Pandasは、圧縮形式を明示的に指定するcompression
オプションがあり、zipもサポートされているため当オプションを指定してzipファイルを取得できます。取得したデータはPandasのDataFrameとして扱うことができ、データの加工やフィルタリングが可能です。また、Pandasを使用して加工したデータを再びzip形式でS3に書き込むことも可能です。これにより、AWS GlueとPandasを組み合わせて、大規模なデータのETL処理を効率的に行うことができます。
AWS GlueのバージョンとPandasのバージョン
AWS Glueのバージョンは、ジョブを追加または更新するときに設定できます。AWS Glueバージョンにより、AWS GlueがサポートするApache SparkとPythonのバージョンが決定されます。
AWS Glueの最新バージョンは4.0で、これはSpark 3.3.0とPython 3.10をサポートしています。このリリースには、Spark 3.1からSpark 3.3へのアップグレードや、Pandasと組み合わせたときに改善されるいくつかの機能など、いくつかの最適化とアップグレードが組み込まれています。
AWS Glueバージョン2.0には、すぐに使用できる次のPythonモジュールが含まれています: avro-python3==1.10.0
, awscli==1.27.60
, boto3==1.12.4
, botocore==1.15.4
, certifi==2019.11.28
, chardet==3.0.4
, click==8.1.3
, colorama==0.4.4
, cycler==0.10.0
, Cython==0.29.15
, docutils==0.15.2
, enum34==1.1.9
, fsspec==0.6.2
, idna==2.9
, importlib-metadata==6.0.0
, jmespath==0.9.4
, joblib==0.14.1
, kiwisolver==1.1.0
, matplotlib==3.1.3
, mpmath==1.1.0
, nltk==3.5
, numpy==1.18.1
, pandas==1.0.1
, patsy==0.5.1
, pmdarima==1.5.3
, ptvsd==4.3.2
, pyarrow==0.16.0
。
AWS Glueでは、Python Package Installer (pip3)を使用して、AWS Glue ETLで使用するモジュールを追加でインストールします。--additional-python-modules
パラメータでコンマ区切りのPythonモジュールのリストを指定することで、新しいモジュールを追加したり、既存のモジュールのバージョンを変更したりできます。これにより、AWS Glueで使用するPandasのバージョンを管理することが可能です。
AWS GlueでPandasを使うメリット
AWS GlueでPandasを使用することには、以下のようなメリットがあります:
-
豊富なデータ操作機能: Pandasは、データの読み込み、書き込み、変換、集約、フィルタリングなど、多様なデータ操作をサポートしています。これにより、AWS GlueでETL処理を行う際に、より柔軟かつ効率的なデータ操作が可能になります。
-
ZIPファイルのサポート: AWS GlueのSparkではZIPファイルの取得が難しい場合がありますが、Pandasは
compression
オプションを使用してZIPファイルを直接読み込むことができます。また、加工したデータを再びZIP形式でS3に書き込むことも可能です。 -
Pythonモジュールの追加とバージョン管理: AWS Glueでは、Python Package Installer (pip3)を使用して、AWS Glue ETLで使用するモジュールを追加でインストールできます。
--additional-python-modules
パラメータでコンマ区切りのPythonモジュールのリストを指定することで、新しいモジュールを追加したり、既存のモジュールのバージョンを変更したりできます。これにより、AWS Glueで使用するPandasのバージョンを管理することが可能です。 -
PythonとSparkの統合: AWS GlueはPySparkを使用しています。これにより、Pythonの豊富なライブラリエコシステムとSparkの大規模データ処理能力を組み合わせることができます。PandasとSparkを組み合わせることで、大規模なデータセットに対する高度な分析と操作が可能になります。
これらのメリットにより、AWS GlueとPandasを組み合わせて使用することで、大規模なデータのETL処理を効率的に行うことができます。
まとめ
AWS Glueは、Amazon Web Servicesが提供するサーバーレスのデータ統合サービスで、データの抽出、変換、ロード (ETL) パイプラインを視覚的に作成、実行、モニタリングすることができます。
AWS Glueでは、Python Package Installer (pip3)を使用して、AWS Glue ETLで使用するモジュールを追加でインストールできます。これにより、AWS Glueで使用するPandasのバージョンを管理することが可能です。
Pandasは、データの読み込み、書き込み、変換、集約、フィルタリングなど、多様なデータ操作をサポートしています。これにより、AWS GlueでETL処理を行う際に、より柔軟かつ効率的なデータ操作が可能になります。
AWS GlueとPandasを組み合わせて使用することで、大規模なデータのETL処理を効率的に行うことができます。これらのツールを適切に使用することで、データ分析とデータ管理の効率を大幅に向上させることができます。これらの知識を活用して、より効果的なデータ分析を行いましょう。