【AWS】AWS Glue ~ 基本編 /トリガ ~

■ はじめに

https://dk521123.hatenablog.com/entry/2019/10/01/221926

の続き。
今回は、トリガ(Trigger)について、焦点を当てる

目次

【1】トリガの種類
【2】使用上の注意
【3】Boto3 API
【4】トラブル

【1】トリガの種類

* ジョブを開始する引き金(トリガー)を定義できる機能
* トリガは、以下の3種類ある。

1)スケジュール (Schedule)
2)ジョブイベント (Job events)
3)オンデマンド (On-demand)

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/trigger-job.html

4)EventBridgeイベント << 2021/07/16追記

1)スケジュール (Schedule)

* タイマーで実行(日時・曜日・cron)
 => AWS マネジメントコンソール上で、Customで設定する場合、
  「30 12 31 1 ? 2020」みたいに設定する
 => タイマーだが、AWS マネジメントコンソール上から手動実行も可能
 => 設定の仕方の詳細については、以下の公式サイトを参照。

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitor-data-warehouse-schedule.html

カスタム時のフォーマット

# フィールド 範囲 ワイルドカード
1 0-59 , - * /
2 0-23 , - * /
3 1–31 , - * ? / L W
4 1–12 または JAN-DEC , - * /
5 曜日 1–7 または SUN-SAT , - * ? / L
6 1970–2199 , - * /

カスタム時のサンプル

# 毎日午前 11:00 (UTC) に実行
0 11 * * ? *

# 毎週月曜日から金曜日まで午後 7:30 (UTC) に実行
30 19 ? * MON-FRI *

# 毎月 1 日の午後 11:30 (UTC) に実行
30 23 1 * ? *

# 15 分ごとに実行
0/15 * * * ? *

# 月曜日から金曜日まで午前 9:00 から午後 5:55(UTC)の間に 5 分ごとに実行
0/5 9–17 ? * MON-FRI *

使用上の注意

* 以下の関連記事を参照のこと。

Cron に関する使用上の注意
https://dk521123.hatenablog.com/entry/2021/04/01/160946

2)ジョブイベント (Job events)

* ジョブイベントが監視対象リストに一致した場合に実行

[イベント種類]

  + SUCCEEDED
  + STOPPED
  + TIMEOUT
  + FAILED 

3)オンデマンド (On-demand)

* 手動実行

4)EventBridgeイベント

* 以下の関連記事を参照のこと。

AWS Glue ~ トリガ / EventBridgeイベント ~
https://dk521123.hatenablog.com/entry/2021/07/16/161359

【2】使用上の注意

1)トリガーの状態(State)について
2)「トリガータイプ:SCHEDULED」の時刻指定は、UTC

1)トリガーの状態(State)について

* トリガーには、以下のような状態(State)があり、
 SCHEDULED および CONDITIONAL トリガーをACTIVATED にしないと
 実行されない  (ON_DEMAND トリガーは未サポート)
 => 作成時のデフォルトは、CREATED

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/aws-glue-api-jobs-trigger.html#aws-glue-api-jobs-trigger-Trigger

より抜粋

 + CREATING
 + CREATED
 + ACTIVATING
 + ACTIVATED
 + DEACTIVATING
 + DEACTIVATED
 + DELETING
 + UPDATING

こぼれ話

本件に関連したトラブルについては、
以下の関連記事の「【2】create_trigger で SCHEDULED・・・」を参照。

https://dk521123.hatenablog.com/entry/2020/01/16/205331

2)「トリガータイプ:SCHEDULED」の時刻指定は、UTC

* 設定する時刻は、UTCなことに注意
 => UTCと日本時刻との差異は以下のサイトが便利

https://www.jisakeisan.com/timezone/utc/

【3】Boto3 API

* Boto3 API については、以下の関連記事を参照のこと。

https://dk521123.hatenablog.com/entry/2019/10/14/000000

公式サイト

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/aws-glue-api-jobs-trigger.html
データ構造
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html

【4】トラブル

以下の関連記事を参照のこと。

https://dk521123.hatenablog.com/entry/2019/10/25/232155

参考文献

https://dev.classmethod.jp/cloud/aws/aws-glue-using-trigger/
https://qiita.com/nkmk1215/items/60204d6632073122defe

関連記事

AWS Glue ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/01/221926
AWS Glue ~ 基本編 / ジョブ ~
https://dk521123.hatenablog.com/entry/2019/11/17/231505
AWS Glue ~ 基本編 / クローラ ~
https://dk521123.hatenablog.com/entry/2019/12/01/003455
AWS Glue ~ トリガ / EventBridgeイベント ~
https://dk521123.hatenablog.com/entry/2021/07/16/161359
Glue から DataCatalogテーブル に対して Spark SQLを実行する
https://dk521123.hatenablog.com/entry/2021/05/11/220731
Workflows / Boto3・AWS CLI
https://dk521123.hatenablog.com/entry/2019/10/14/000000
boto3 AWS Glue API のトラブル その1
https://dk521123.hatenablog.com/entry/2020/01/16/205331
boto3 AWS Glue API のトラブル その2
https://dk521123.hatenablog.com/entry/2020/02/05/223307
AWS Glue のトラブルシューティング
https://dk521123.hatenablog.com/entry/2019/10/25/232155
Cron に関する使用上の注意
https://dk521123.hatenablog.com/entry/2021/04/01/160946