【AWS Glue】でビジネスデータの整理整頓！誰でもできるデータ前処理 #AWS

![A_vibrant_anime-style_illustration_showing_a_young.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806193/63cf2237-d448-775e-c267-938e994d0104.jpeg)

## 一言でいうと
**AWS Glueは、大量のデータを自動で収集・加工し、使いやすい形に整えてくれる便利なサービスです。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806193/0de1614d-4aea-7b43-6ad3-11cb131a764d.png)

## もう少し詳しく

みなさん、大量のデータを扱うときに「このデータ、どうやって整理しよう…」と悩んだことはありませんか？データがバラバラの形式だったり、必要な情報だけを取り出したいけれど手作業では大変だったりしますよね。そこで活躍するのが**AWS Glue**です。

AWS Glueは、データの**抽出（Extract）**、**変換（Transform）**、**ロード（Load）**を行う、いわゆる**ETL作業**を自動化してくれるサービスです。専門的なプログラミング知識がなくても、GUIを使って直感的に操作できるので、初心者の方にもとても扱いやすいんです。

---

### ECサイトの売上データを整理やってみよう！！(わかりやすい実例)

![An_anime-style_illustration_of_a_young_character_p.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806193/c7ac3eaa-1e09-12fb-8e1c-20720394bb60.jpeg)
~~（どことなく鬼滅っぽい？気のせい？）~~


では、具体的な例で見てみましょう。

あなたはあるECサイトの運営者です。日々の売上データが大量に集まりますが、そのままでは分析しにくい状態です。売上データは、毎日CSVファイルとして以下のように保存されています。

#### 元データの例
以下は、S3に保存されている売上データの例です。

| Transaction_ID | Customer_Name | Product_ID | Quantity | Price | Transaction_Date |
|----------------|---------------|------------|----------|-------|------------------|
| 1              | 山田 太郎      | 101        | 2        | 300   | 2023-01-01      |
| 2              | 佐藤 花子      | 103        | 1        | 150   | 2023-01-02      |
| 3              | 鈴木 次郎      | 101        | 3        | 300   | 2023-01-03      |
| 4              | 高橋 翔       | 102        | 1        | 200   | 2023-01-04      |
| 5              | 伊藤 真一     | 103        | 2        | 150   | 2023-01-05      |

#### 目的
このデータを使って以下の情報を得られるように整形・集計したいと考えています。
- 月ごとの売上合計
- 売上が多い商品ランキング
- 顧客ごとの購入総額

では、AWS Glueを使って、どのようにデータを整形していくか見てみましょう。

#### AWS Glueを使った前処理ステップ

1. **データカタログの作成**
   - **Glueクローラー**を設定し、S3の売上データをスキャンして、データカタログに登録します。これにより、AWS Glueはデータのスキーマ（列名やデータ型）を自動で認識してくれます。

2. **ETLジョブの作成**
   - AWS Glue StudioでETLジョブを作成し、具体的なデータ前処理を行います。

   **a. 不要な列の削除**  
   例として、分析に不要な「Customer_Name」列を削除します。

   **b. 日付の整形**  
   「Transaction_Date」のデータを`年-月`の形式（例: `2023-01`）に変換し、月ごとの集計を簡単にできるようにします。

   **c. 売上金額の計算**  
   「Quantity（数量）」と「Price（単価）」を掛け合わせて、新たに「Sales_Amount（売上金額）」という列を作成します。このステップで、売上金額の集計が簡単になります。

   例えば、以下のようなテーブルになります。

   | Transaction_ID | Product_ID | Quantity | Price | Transaction_Date | Sales_Amount |
   |----------------|------------|----------|-------|------------------|--------------|
   | 1              | 101        | 2        | 300   | 2023-01         | 600          |
   | 2              | 103        | 1        | 150   | 2023-01         | 150          |
   | 3              | 101        | 3        | 300   | 2023-01         | 900          |
   | 4              | 102        | 1        | 200   | 2023-01         | 200          |
   | 5              | 103        | 2        | 150   | 2023-01         | 300          |

3. **データの集計**
   - 加工したデータを使って、以下のように集計します。

   - **月ごとの売上合計**

     | Month     | Total_Sales |
     |-----------|-------------|
     | 2023-01   | 2150        |

   - **商品ごとの売上ランキング**

     | Product_ID | Total_Sales |
     |------------|-------------|
     | 101        | 1500        |
     | 103        | 450         |
     | 102        | 200         |

   - **顧客ごとの購入総額**
   
     | Customer_ID | Total_Sales |
     |-------------|-------------|
     | 山田 太郎    | 600         |
     | 佐藤 花子    | 150         |
     | 鈴木 次郎    | 900         |
     | 高橋 翔     | 200         |
     | 伊藤 真一   | 300         |

4. **データの保存**
   - こうして得られた集計データをS3やAmazon Redshiftなどに保存し、BIツール（例えばAmazon QuickSight）で可視化できます。

#### 最終結果
このようにAWS Glueを使うことで、煩雑なデータがスムーズに整形され、重要なビジネス情報が簡単に分析できる状態になります。日々のデータ管理も自動化され、運営の負担を大幅に減らすことができます。

## 最後は…恒例、神様仏様Black Belt様
なにはともあれブラックベルトですよね。ドキュメント頭に入ってこないけど語り掛けれられるとなぜか理解できますね。

<iframe width="560" height="315" src="https://www.youtube.com/embed/px96mjFoZwM?si=OE64W5XRJnXJZ3zf" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## まとめ

AWS Glueを使うと、大量のデータの整理・加工が驚くほど簡単になります。初心者の方でも直感的に操作できるので、「データの前処理って難しそう…」と思っていた方もぜひ一度試してみてください。

データを自在に扱えるようになると、ビジネスの可能性がぐんと広がりますよ。一緒にAWS Glueでデータ活用の第一歩を踏み出してみましょう！