AWS Glue DataBrew入門チュートリアル実践 #4 – DataBrewで作成されたリソースを確認する

2020.11.17

先日新しくリリースされたAWS Glueの新機能「AWS Glue DataBrew」。

前述手順では、作成済みの「レシピ」にステップを追加し、レシピのバージョン管理が行われていることを確認しました。

当エントリでは、次の手順となる手順その4「変換処理の追加と"レシピ"のバージョン管理」についてその内容を紹介していきます。

目次

 

当エントリでの実践手順

当エントリでは、ここまでの手順で作成してきたAWS Glue DataBrewのリソースの内容について、それぞれ見ていきたいと思います。

 

データセットの確認

左上にあるダッシュボードメニューの[DATASETS]を選択すると、AWS Glue DataBrewの「データセット」の一覧を確認することが出来ます。

一覧上の任意のデータセットリンクをクリックすると、以下のような形で対象データセットの詳細を確認することが出来ます。

サンプルを指定してプロジェクトを作成することで、DataBrewはデータセット「chess-games」を準備しました。このソースデータファイルはAmazon S3に保存されており、ファイルの形式はEXCEL(chess-games.xlsx)となっています。このファイルには、20000以上のチェスゲームのメタデータが含まれています。

 

プロジェクトの確認

左上にあるダッシュボードメニューの[PROJECTS]を選択すると、AWS Glue DataBrewの「プロジェクト」の一覧を確認することが出来ます。

一覧上の任意のプロジェクトリンクをクリックすると、以下のような形で対象プロジェクトの詳細を確認することが出来ます。

全てのプロジェクトにはデータセットが必要で、今回の場合はチェスゲームのデータセットがそれに該当します。またレシピもプロジェクトには必要であり、ここにはデータ変換のステップを追加していくことが出来ます。

 

レシピの確認

左上にあるダッシュボードメニューの[RECIPES]を選択すると、AWS Glue DataBrewの「レシピ」の一覧を確認することが出来ます。

一覧上の任意のレシピリンクをクリックすると、以下のような形で対象レシピの詳細を確認することが出来ます。[Recipe Steps]タブでは初期表示で現行最新バージョンのレシピの情報を表示。

任意のバージョンを指定することで、そのバージョンにおけるレシピの情報を確認することも出来ます。

[Data lineage]タブでは、データがどこから来て、どのように使用されているかを示す情報をビジュアルで確認することが可能です。それぞれのアイコンを選択すると、アイコン毎の詳細情報に遷移します。

レシピの内容については下記選択メニューで幾つかの操作が可能になっています。ここでは、設定ファイルのダウンロードを試してみます。

以下がチュートリアルでここまで実践した内容の設定ファイルをダウンロードしたものとなります。こちらはYAML形式。

chess-project-recipe.yml

- Action:
    Operation: REMOVE_VALUES
    Parameters:
      sourceColumn: white_rating
  ConditionExpressions:
    - Condition: LESS_THAN
      Value: '1800'
      TargetColumn: white_rating
- Action:
    Operation: REMOVE_VALUES
    Parameters:
      sourceColumn: black_rating
  ConditionExpressions:
    - Condition: LESS_THAN
      Value: '1800'
      TargetColumn: black_rating
- Action:
    Operation: GROUP_BY
    Parameters:
      groupByAggFunctionOptions: >-
        [{"sourceColumnName":"winner","targetColumnName":"winner_count","targetColumnDataType":"number","functionName":"COUNT"}]
      sourceColumns: '["winner","victory_status"]'
      useNewDataFrame: 'true'
- Action:
    Operation: REMOVE_VALUES
    Parameters:
      sourceColumn: winner
  ConditionExpressions:
    - Condition: IS
      Value: '["draw"]'
      TargetColumn: winner
- Action:
    Operation: REPLACE_TEXT
    Parameters:
      pattern: mate
      sourceColumn: victory_status
      value: checkmate
- Action:
    Operation: REPLACE_TEXT
    Parameters:
      pattern: resign
      sourceColumn: victory_status
      value: other player resigned
- Action:
    Operation: REPLACE_TEXT
    Parameters:
      pattern: outoftime
      sourceColumn: victory_status
      value: time ran out

そしてこちらがJSON形式のファイルとなります。操作内容がこういう形でファイルとして利用出来ることで当機能としての活用の幅も広がってきますね。色々活用出来そうです。

chess-project-recipe.json

[
  {
    "Action": {
      "Operation": "REMOVE_VALUES",
      "Parameters": {
        "sourceColumn": "white_rating"
      }
    },
    "ConditionExpressions": [
      {
        "Condition": "LESS_THAN",
        "Value": "1800",
        "TargetColumn": "white_rating"
      }
    ]
  },
  {
    "Action": {
      "Operation": "REMOVE_VALUES",
      "Parameters": {
        "sourceColumn": "black_rating"
      }
    },
    "ConditionExpressions": [
      {
        "Condition": "LESS_THAN",
        "Value": "1800",
        "TargetColumn": "black_rating"
      }
    ]
  },
  {
    "Action": {
      "Operation": "GROUP_BY",
      "Parameters": {
        "groupByAggFunctionOptions": "[{\"sourceColumnName\":\"winner\",\"targetColumnName\":\"winner_count\",\"targetColumnDataType\":\"number\",\"functionName\":\"COUNT\"}]",
        "sourceColumns": "[\"winner\",\"victory_status\"]",
        "useNewDataFrame": "true"
      }
    }
  },
  {
    "Action": {
      "Operation": "REMOVE_VALUES",
      "Parameters": {
        "sourceColumn": "winner"
      }
    },
    "ConditionExpressions": [
      {
        "Condition": "IS",
        "Value": "[\"draw\"]",
        "TargetColumn": "winner"
      }
    ]
  },
  {
    "Action": {
      "Operation": "REPLACE_TEXT",
      "Parameters": {
        "pattern": "mate",
        "sourceColumn": "victory_status",
        "value": "checkmate"
      }
    }
  },
  {
    "Action": {
      "Operation": "REPLACE_TEXT",
      "Parameters": {
        "pattern": "resign",
        "sourceColumn": "victory_status",
        "value": "other player resigned"
      }
    }
  },
  {
    "Action": {
      "Operation": "REPLACE_TEXT",
      "Parameters": {
        "pattern": "outoftime",
        "sourceColumn": "victory_status",
        "value": "time ran out"
      }
    }
  }
]

 

まとめ

というわけで、AWS Glue DataBrew実践チュートリアルのステップ4「DataBrewで作成されたリソースを確認する」の紹介でした。

引き続き、次のステップ「5.データプロファイルの作成と内容の確認」を御覧ください。