[レポート]Lake FormationとGlueでワークフローを構築するハンズオン #ANT201 #reinvent

2020.01.20

本ブログはAWS re:Invent 2019のワークショップ『Building workflows on AWS Lake Formation & AWS Glue』のレポートです。

現地でワークショップに参加はできていませんでしたが、ワークショップの資料が公開されていたので実際にやってみました。

セッション概要

Do you need to ingest and process data for analytics? Does your data have special requirements? Bring your laptop to this workshop and get hands-on experience developing workflows on AWS Lake Formation and AWS Glue. Learn how you can customize your jobs and blueprints to follow your business logic and rules to build reliable and scalable data integration for your data lake.

分析のためにデータを取り込んで処理する必要がありますか?データには特別な要件がありますか?このワークショップにラップトップを持ち込み、AWS Lake FormationとAWS Glueでのワークフロー開発の実地体験をしてください。ビジネスロジックとルールにしたがってジョブと設計図をカスタマイズし、データレイクの信頼できるスケーラブルなデータ統合を構築する方法を学びます。

ワークショップ資料

スライド

ワークショップ

レポート

ワークショップのゴール

  • Lake Formationのブループリントを使用して、MySQLのデータをS3にParquet形式で保存できるようになる
  • Glueワークフローを使用して、GlueジョブとAmazon Comprehendを利用して感情分析をできるようになる
  • Lake Formationを使用してアクセスコントロールできるようになる
  • Athenaを使用してクエリ実行できるようになる

リソースの準備

まずはワークショップのページから、CloudFormationのテンプレートがダウンロードできるので、それを利用して次のリソースを作成します。

  • RDS(MySQL)
  • S3 Bucket
  • Glue JDBC Connection
  • Lake Formation database
  • Glue jobs & crawler
  • IAM User & Role

※IAM Userのパスワードが簡単すぎるので、パスワードは変更することをオススメします。

CloudFormationのスタック名は適当につけて作成してください。

1. Lake Formationのセットアップ

ワークショップの手順書を参考に、Lake Formationのセットアップをしていきます。

ここでは、データレイク構築用のユーザー(datalake_admin)の権限を設定したり、各種IAM Roleの権限を設定したりしていきます。

2. Lake Formationのブループリントを利用してDBスナップショットの作成

ブループリントのDBスナップショットを利用して、Glueワークフロー等を作成していきます。

ブループリントを利用することで、簡単にGlueの各種コンポーネントを自動生成できます。

3. Lake Formationブループリントのコンポーネントについて学ぶ

Glueジョブを確認してみると、ブループリントによってジョブが生成できていることを確認できます。

4. AWS GlueのETLワークフローで、感情分析ジョブを構築する

次に、データセットとして用意されたレビューの内容がポジティブかネガティブかをAmazon Comprehendで分析する感情分析ジョブを構築していきます。

このワークフローを、Glueワークフローを利用して自分で作っていきます。

5. Amazon Athenaを使ってデータセットを確認する

ステップ2でS3に保存したDBのスナップショットを、Athenaのクエリを使って確認してみます。

こんな風に、S3に対してAthenaでSQLクエリを実行することで内容の確認ができます。

6. Glueワークフローを実行する

ステップ4で作成したGlueワークフローを実行します。15分ほどで実行が完了し、変換後のテーブルが作成されます。

7. Amazon Athenaを使って変換したデータセットを確認する

ステップ6で作成した変換後のテーブルの内容を、Athenaのクエリを使って確認してみます。

変換後のテーブルには、列 sentiment が追加されていることがわかります。

8. データ分析ユーザーへのアクセス制御

データ分析用のユーザー(datalke_user)が変換後のテーブルにアクセスできるよう、権限の設定をします。

9. Amazon Athenaを使ってデータ分析用ユーザーの権限を検証する

データ分析用のユーザー(datalke_user)でログインして、Athenaのクエリを実行して、設定した権限の列のデータのみSelect可能なことが確認できました。

感想

Lake FormationとGlueでどんなことができるのか?と、いうところをさらっと流せるよいハンズオンでした。

Glueを使ったETL処理をひととおり触ってみたい方にオススメです。