Pythonレシピを使用したプロジェクト変数の変更のリアルタイム性について
t_sato
Partner, Registered Posts: 6 Partner
in ナレッジシェア(Q&A)
お世話になっております。
Pythonレシピを使用して、プロジェクト変数の数値を変更した場合、プロジェクト変数の変更はレシピの実行が完了したタイミングで行われるのでしょうか?
フロー上流のPythonレシピ内でプロジェクト変数を更新する処理を実装しています。しかし、その後の下流のPrepareレシピで当該プロジェクト変数を参照した際、更新前の古い値が取得されていると思われる挙動が発生しました。
DataikuのUI上では、Pythonレシピの実行完了後にプロジェクト変数が変っているように見られましたが、リアルタイムにプロジェクト変数が更新されない場合などがあればご教示いただけますと幸いです。
Best Answers
-
Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 469 Dataikerお世話になっております。以下リンクのコメントに記載のように「フロー内のビジュアルレシピでは、フロー開始時の変数の値が参照される」ため、ご質問のような挙動になっていると考えられます。
https://community.dataiku.com/discussion/comment/19811/#Comment_19811
Pythonレシピ内であれば、get_variables()で最新の値を取得できますが、ビジュアルレシピ内で ${variable_name} のような手段で変数を参照している場合、やはり上記の挙動に該当すると考えられます。
そこで回避策として、例えばシナリオ機能のステップを定義して「初めにPython処理を実行して変数を更新し、その後のシナリオステップで後続処理を実行する」などの方法は可能であると考えられます。このような手段ではいかがでしょうか?
-
ご回答いただきありがとうございます。
ご教示いただきました方法で、検討させていただきます。