Skip to content
Last updated

カスタムスクリプトの概要

Custom Scriptsを使用すると、Treasure Data Workflow内からコンテナ化されたPythonスクリプトを実行でき、カスタムロジックの柔軟性が向上します。一般的な用途には以下が含まれます:

  • データコネクタやその他の統合機能の拡張。
  • Pythonで効率的なデータ操作および処理ロジックを作成し、ワークフローから呼び出す。
  • 定期的にスケジュールされたTreasure Workflowsの一部としてPythonモデルを実行することで、データサイエンス作業を本番化する。
  • データ管理を1つの環境に統合する。Treasure Workflowを使用して複数のデータ環境を接続する。

Custom Scriptの要件

サポートされているPythonバージョン:

  • Python 3.12
  • Python 3.10
  • Python 3.9

サポートされているDockerイメージ

  • treasuredata/customscript-python:3.12.11-td0 [現在の安定版]
    • Python 3.12.11
    • pytd 2.2.0
  • digdag/digdag-python:3.10.1
    • Python 3.10
    • pytd 1.5.1
    • td-pyspark 22.7.1
  • digdag/digdag-python:3.9.22-td1
    • Python 3.9.22
    • pytd 1.5.2
    • td-pyspark 21.3.0
  • digdag/digdag-python:3.9.2 [非推奨]
    • Python 3.9.2
    • pytd 1.5.1
    • td-pyspark 21.3.0
  • digdag/digdag-python:3.9 [非推奨]
    • Python 3.9.2
    • pytd 1.4.0
    • td-pyspark 20.12.0

サポートされているDockerイメージの詳細については、Custom Scripts Dockerイメージドキュメントを参照してください。

Treasure Workflow Custom Scriptの構文例

以下のスニペットはワークフローからの例です:

+py_custom_code:
  py>: tasks.printMessage
  docker:
    image: "treasuredata/customscript-python:3.12.11-td0"

独自のPythonライブラリのインストール

Treasure Workflows内のPythonスクリプトは、Treasure Dataによって分離されたDockerコンテナ内で管理および実行されます。Treasure Dataは、コンテナで実行するためのベースDockerイメージをいくつか提供しています。

Dockerイメージで提供されるライブラリに加えて、Pythonスクリプト内でpip installコマンドを使用して追加のサードパーティライブラリをインストールできます。

イメージでサポートされているPythonバージョンとライブラリに基づいて、Pythonスクリプトを実行するための適切なDockerイメージを選択できます。

Pythonスクリプト内から、以下の構文を追加してPythonスクリプトからライブラリをインストールします:

os.system(f"{sys.executable} -m pip install asn1==3.1.0")
警告:Pythonパッケージのバージョン固定

パッケージの将来のアップデートによる予期しない問題を避けるため、特定のバージョンを指定してPythonパッケージをインストールまたはアップデートすることをお勧めします。

例えば、パッケージの特定のバージョンをインストールするには、以下の構文を使用します:

os.system(f"{sys.executable} -m pip install asn1==3.1.0")

バージョンを指定せずに以下の構文を使用しないでください。将来パッケージがアップデートされた際に予期しない問題が発生する可能性があります:

os.system(f"{sys.executable} -m pip install -U pytd")

他の記事へのリンク

記事説明
Custom Scriptsへのパラメータの受け渡し_envを使用して環境変数を使ってパラメータと認証情報をCustom Scriptに渡すことができます。
ワークフロー内でのカスタムスクリプトタスクの並列実行_parallel演算子を使用して、ワークフロー内で複数のPythonスクリプトを並列で実行できます。
Pythonカスタムスクリプト完全なCustom Scriptsチュートリアルを順を追って説明します。
Treasure Workflowサービス制限実行されたカスタムスクリプトが強制終了されるまでの期間は1日です。