AWS 謹製のデータ分析モジュール『AWS Data Wrangler』チュートリアルの紹介

AWS運用自動化サービス「Cloud Automator」

タダです.

AWS 謹製の Python データ分析モジュールの「AWS Data Wrangler」がリリースされました.今回は普段 Python を使ってデータ分析の勉強をしているため,「AWS Data Wrangler」を公式ブログチュートリアルを参考に使ってみた所感を書いていきます.

AWS Data Wranglerを使って、簡単にETL処理を実現する

awslabs/aws-data-wrangler

利用方法はドキュメントで確認していきましょう.

AWS Data Wrangleドキュメント

AWS Data Wrangler のメリット

AWS Data Wrangler」のメリットは下記の通りです.

  • AWS Data Wrangler」を利用することで, Athena や S3 の CSV データから Pandas を数行のコードで実現できる
    • PySpark から Redshift に連携できるため利用者は ETL(Extract/Transform/Load) に集中することが可能
  • AWS Data Wrangler」登場前は, ETL 処理にいくまでにサービスへの接続設定,各種コーディング必要だったが ETL 処理に集中していける

最大のメリットは,  利用者は ETL 処理に集中してコーディングを行える ことだと読み取れます.それでは実際に環境を作ってどれくらい簡単かをコーディングして確認していきます.

AWS Data Wrangler を使って ETL を行う

今回の環境は以下の画像の環境で,ブログで紹介された構成です.CSV を S3 に配置し,SageMaker から「AWS Data Wrangler」経由で Athena,S3 の CSVデータにアクセスした後,ETL 処理後の CSV データを S3 に出力するチュートリアルとなっています.


引用元:  https://aws.amazon.com/jp/blogs/news/how-to-use-aws-data-wrangler シナリオの構成図より

1. S3 への CSV データをアップロード

まず,S3 へ CSV データをアップロードします.データは下記の Green Taxi Trip Records(CSV) の1月データを使いました.

TLC Trip Record Data

ローカルにダウンロードしたデータを S3 にアップロードします.

2. Athena でデータベースおよびテーブルを作成する

Athena でデータベースとテーブルを作成します.

 

そして,後続でも使うためテーブルのデータ数を確認しておきます. 630919 件のデータがあることを確認しました.

3. SageMaker から AWS Data Wrangler 経由で Athena,S3 の CSVデータにアクセスする

SageMaker ノートブックインスタンス起動時に設定する IAM ロールに AmazonS3FullAccessAmazonAthenaFullAccessを付与しておきます.起動後に,「AWS Data Wrangler」モジュールをインストールします.

AWS Data Wrangler」経由で Athena,S3 の CSVデータにアクセスしてデータの件数を確認してみます. 2. Athena でデータベースおよびテーブルを作成する で確認したのと同じ630919件であることを確認できました.

4. ETL 処理の実行

それでは ETL 処理の実行をしていきます.まず, trip_distance カラムのデータが0の部分を分析対象外として行の削除処理を行います.削除する行は 10721 行であることを確認できます.

trip_distance カラムの0のデータ部分を削除していきます.総データ数が 630919 から 10721 行を削除するので, 620198 件のデータ削除処理しました.

不要データを削除したものに対してデータ内のカラムの置き換えを行います. payment_type という項目に対してデータの置き換えを行います.データの置き換えしたことで一部のみの表示ですが Credit card に置き換わっていることを確認しました.

5. ETL 後のデータを別の CSV ファイルにして S3 に出力する

ETL 後のデータを別の CSV ファイルにして S3 に出力します. replace_csv フォルダに CSV データを出力します.S3 に2件のデータが出力されていることを確認しました.

 

出力後のデータの件数が行削除後のデータ件数かも確認します.  620198 のデータ件数であることを確認できました.一緒ですね.

 

まとめ

リリースされた Python データ分析モジュールの「AWS Data Wrangler」のチュートリアルを行なってみました.Pandas で CSV を読み書きするときに JupyterNotebook の実行環境のローカルに配置して処理していましたが,S3 や Athena に接続設定などを書かずにローカルに ETL 処理対象があるかのようにデータを扱えた印象でした.本モジュールのメリットにあるように ETL 処理に集中していくことが可能なのかと感じます.AWS のデータ解析のエコシステムを作るときに登場してくる存在として今後のアップデートに注目していきたいですし,採用も検討していきたいですね!

AWS運用自動化サービス「Cloud Automator」