Help us understand the problem. What is going on with this article?

Glueの使い方的な㊵(Workflowsでジョブフローの可視化)

More than 1 year has passed since last update.

アップデート

https://aws.amazon.com/jp/about-aws/whats-new/2019/06/aws-glue-now-provides-workflows-to-orchestrate-etl-workloads/

Glue Workflows とは

Glueのジョブとクローラーのワークフローを作る
GlueのTrigger機能をクローラーにも対応させ、状態とフローを可視化させる
Glueのリソースだけでフローを作りたい場合に有用

しっかりとエラーハンドリングしたい時、通知飛ばしたい時、他のAWSリソースと連携させたフローを作りたい場合はStepFunctionsがよい

Workflowsを作る

内容

以下の記事で書いたクローラーやジョブを使いワークフローを作ります
https://qiita.com/pioho07/items/a24d188d67fe97034b34

クローラー -> ジョブ(PySpark) -> ジョブ(PythonShell)

シンプルにS3のcsvファイルをクローリングしてparquetにしてファイル名をリネームするです

  • 1つ目のクローラー:S3のcsvファイルをクローリングしGlue Data Catalogのテーブル(スキーマ)を作る
  • 2つ目のジョブ:PySparkでフォーマットをparquetにしたり、country,year,month,day,hourでパーティション化したり、圧縮してS3に出力
  • 3つ目のジョブ:PythonShellで出力されたファイルをリネームする

※詳細なコードの内容は上のリンクを参照ください

リソース名

クローラー名

se2_in0

ジョブ名

se2_job15
se2_job16

Workflow作成

Glueの画面の左メニューから"Workflows"をクリックし[Add workflow]をクリック

スクリーンショット 0031-06-12 12.29.13.png

以下を入力して[Add workflow]をクリック
Workflow name: se2_workflow1

スクリーンショット 0031-06-12 21.07.51.png

作成されたworkflowの"se2_workflow1"にチェックを入れ、画面下の[Graph]タブをクリックし[Add trigger]をクリックする

※ここで作ったTriggerはGlueのTriggerとして作られます

スクリーンショット 0031-06-12 21.09.16.png

"Add new"タブをクリックし、Nameに"se2_wf_trigger1"を入れ、Trigger typeを"On demand"にチェックを入れ、[Add]をクリック

※"Clone existing"タブで既存のTriggerからコピーもできます

スクリーンショット 0031-06-12 21.17.00.png

こんなのが出来きる

スクリーンショット 0031-06-12 21.18.44.png

とりあえず全画面表示にもしてみて、"Add node"の箇所をクリック

スクリーンショット 0031-06-12 21.19.45.png

ポップアップ画面が出るので、"Crawlers"タブをクリックし、該当のクローラー"se2_in0"にチェックを入れ、[Add]をクリックする

※"Jobs"タブをクリックすればジョブを選べる

スクリーンショット 0031-06-12 21.20.15.png

左の丸いのがスタート、虫みたいなアイコンがクローラー

スクリーンショット 0031-06-12 21.22.14.png

クローラーのアイコンをクリックすると以下のようになり、"Add trigger"をクリックする

スクリーンショット 0031-06-12 21.23.17.png

ポップアップ画面でnameに"se2_wf_trigger2"を入れ[Add]をクリックする

スクリーンショット 0031-06-12 21.24.35.png

このように一瞬変な感じになったと思うが、気にせず右側の"Add node"をクリックする

スクリーンショット 0031-06-12 21.29.51.png

"Jobs"のタブをクリックし、該当のジョブ"se2_job15"にチェックを入れ、[Add]をクリックする

スクリーンショット 0031-06-12 21.30.21.png

2つ目のジョブが出来る

スクリーンショット 0031-06-12 21.32.23.png

あとは同じ要領で3つ目のジョブを追加する

スクリーンショット 0031-06-12 21.33.55.png

数珠つなぎにしたいジョブまたはクローラーをTriggerでつなげていく流れです。

Workflow実行

対象のworkflowにチェックを入れ、[Action]->[Run]をクリック

スクリーンショット 0031-06-12 21.34.59.png

対象のworkflowにチェックを入れ、画面下の"History"タブをクリックし、”RunID"にチェックを入れ、[View run detail]をクリックする

スクリーンショット 0031-06-12 21.36.03.png

Workflowの状態が確認できる
緑色は完了を表しクローラーが完了していることがわかり、青色が実行中を表し次のジョブが実行中であることがわかる

注意点

  • これ今の所ほっておいてもステータスが変わらないので手動でリロードが必要そう

スクリーンショット 0031-06-12 21.37.42.png

  • 途中で止められない。ジョブ単位なら止められるがワークフロー単位で止められない

  • GUIの使いやすさは人それぞれということで慣れればいいのかな

こちらも是非

Glue Workflows の公式ドキュメント
Performing Complex ETL Activities Using Workflows in AWS Glue
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/orchestrate-using-workflows.html

Glueの使い方的な㉜(Python Shellを使う)
https://qiita.com/pioho07/items/a24d188d67fe97034b34

Glueの使い方まとめ
https://qiita.com/pioho07/items/32f76a16cbf49f9f712f

pioho07
こちらに記載の内容は所属会社とは関係ありませぬ。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした