UserEngagement_logoUserEngagement_logoUserEngagement_logoUserEngagement_logo
  • 記事を探す
    • ロール別ガイド
      • 管理者向け
      • マーケター向け
      • エンジニア向け
    • 用途から探す
      • 業務効率化・自動化
      • 新規顧客獲得
      • 既存顧客LTV向上
      • 企業DXの推進
    • 機能から探す
      • 顧客データ活用・施策連携
      • セキュリティ
      • データ加工、処理
      • データの可視化
      • 全機能をみる
    • 活用事例を探す
    • 全記事から探す
  • LINK
    • リリースノート
    • プロダクトドキュメント
    • Status Page(Incident情報)
    • Workflowサンプル集(英語)-TreasureBox
  • Academy
ログイン
✕

Custom Scripts内の処理結果をWorkflowに戻しエラー制御を行う方法

  • Home
  • 表示用 Custom Scripts(ガイドページ表示用)
  • Custom Scripts内の処理結果をWorkflowに戻しエラー制御を行う方法
Home Article howto Custom Scripts内の処理結果をWorkflowに戻しエラー制御を行う方法
2021年11月18日
Categories
  • Custom Scripts(ガイドページ表示用)
  • howto
  • Workflow(ガイドページ表示用)
Tags
  • Custom Scripts
  • Workflow

データマネジメントチームの金野 浩之です。
前回、前々回とWorkflowのエラー通知を行う方法をご紹介させていただきましたが、今回はCustom Scripts内の処理結果に応じてWorkflowの処理について制御する方法についてご紹介致します。

Custom ScriptsとはWorkflow上の仮想化環境でPythonのスクリプトを実行することができるTreasure Data CDPの機能です。Custom Scriptsを使いこなすと、SQLやWorkflowのオペレータでは難しいデータ処理や、コネクターが存在しない外部ツールとのAPI連携などの実装ができるため、Treasure Data CDPの利活用の幅を広げることが可能です。

通常、Pythonでエラー制御をする場合はtry – except文で例外を補足し、sys.exit()を利用してプログラムの処理を終了することが多いかと思います。sys.exit()は引数に終了ステータスを入れて処理を終わらせることができますので、例えば 0 は “正常終了”、0 以外の整数を “異常終了” とするような使い方をします。

一方で、Custom Scriptsでsys.exit()を利用するとどのような引数を渡そうがエラー判定されてしてしまい、Workflowもその時点でエラーになってしまいます。そのため、sys.exit(0)のときはWorkflowの後続処理を実行し、sys.exit(1)のときは_error>:オペレータを実行する、といったような制御を行うことはできません。そこで、Custom Scriptsの処理結果をWorkflowに戻す際はsys.exit()以外の方法でフラグを渡してあげる必要があります。

目次
  1. Custom Scriptsの処理結果でWorkflowの処理を制御するサンプル
続きは会員登録およびログイン後にご覧いただけます。以下からログインしてください。

会員登録・ログイン

Custom Scriptsの処理結果でWorkflowの処理を制御するサンプル

digdag.env.store()という関数を利用することで、Custom ScriptsからWorkflowに値を戻すことができます。例えば以下はdigdag.env.store()を利用したCustom Scriptsのサンプルになります。このサンプルスクリプトでへあSQLの結果が100行以上であればis_success、100行未満ならis_errorというフラグをWorkflowに戻します。もちろん、どちらもCustom Scriptsとしては正常に終了させることができます。

Workflowのサンプルは下記の通りです。上記のCustom Scriptsからis_errorが戻ってきたときだけ、fail>:オペレータでエラーメッセージを飛ばすことができます。

おわりに

このように、digdag.env.store()を使用しCustom Scriptsの処理結果をWorkflowに戻してあげることで、より細かいロジックの制御ができるようになりますので、ぜひ一度お試しください。

Share
金野 浩之
金野 浩之

Related posts

2023年6月14日

トレジャーデータPSチームによるダッシュボード構築プロジェクト事例
~トレジャーデータ書籍Appendix~


Read more
2023年5月31日

ダッシュボードの普及と課題
~トレジャーデータ書籍出版記念!一部先行公開~


Read more
2023年4月25日

Cookieに依存せずに広告CV計測を支援する機能「Conversion API」


Read more

Comments are closed.


  • ホーム
  • 個人情報の取り扱いについて
  • 個人情報に関する公表文
  • インフォマティブデータの取扱いについて
  • 会員情報変更
  • 退会手続きはこちら
記事を探す
  • ロール別ガイド
  • 用途別ガイド
  • 機能別ガイド
  • 活用事例
  • 全記事一覧
Community
  • Treasure Academy
LINKS
  • リリースノート
  • プロダクトドキュメント
  • Status Page(Incident情報)
  • Workflowサンプル集(英語)-TreasureBox
Copyright 2022 Treasure Data, Inc.
    ログイン