AIカタログに登録したデータソースのスナップショットを使ってモデリングしているのですが、スナップショット更新→プロジェクト作成の流れを上手く自動化できないものかと悩んでおります。。。
①GUIから手動でスナップショット更新→GUI or API でプロジェクト作成
②スナップショット更新をスケジュール実行→GUI or APIでプロジェクト作成
の2つのやり方があると思うのですが、どちらも更新完了をGUI上で目検しなければならないので、その手間をなくせればもっと便利になるのに。。と思っている次第です。
そこで、ご存知の方がいらっしゃれば教えていただきたいのですが、以下のようなことはできるのでしょうか??
・スナップショット更新が完了したら通知を飛ばす
・API操作でスナップショットを更新する
@uchu さん
こんにちは。DataRobot田中です。
ご質問ありがとうございます。たしかに更新完了をGUI上で目検で確認するのは手間ですよね。
>・スナップショット更新が完了したら通知を飛ばす
>・API操作でスナップショットを更新する
現在、定期的なスナップショットの作成をAPI経由で行うことはできますが、マニュアルでスナップショットの更新はできません。私もあると便利だと思いますので利用者の声としてあげさせていただきますね。
代替案としては、例えば以下が考えられます。
たとえば、週次のスケジューリング更新を設定して一度プロジェクトを作成したデータセットの作成時間を残しておき(以下ではprevious_time変数に格納します)、
定期的に同じDataSetsを参照し更新時間を確認して前回の更新時間より新しいか確認します。
新しければプロジェクト作成のプログラムが動作する、を行うとやりたきことが実現できるかと思いました。
#直前にprojectなどを作成したDataSet(AIカタログsnapshot)
ds = dr.Dataset.get('XXX')ds.created_at
previous_time = ds.created_at
#最新の情報を確認し時間が変わり更新されていればモデリングを行う(プログラムの中でループでも、cronなどのスケジューリングでも構いません)
ds = dr.Dataset.get('XXX')
if previous_time < ds.created_at:
do make_modeling()
ご確認よろしくお願いいたします。
田中翔
@Sho Tanaka さん
ご返信ありがとうございます!
現在、定期的なスナップショットの作成をAPI経由で行うことはできますが、マニュアルでスナップショットの更新はできません。私もあると便利だと思いますので利用者の声としてあげさせていただきますね。
やはりそうだったのですね。。API経由でマニュアル更新できるようになると非常に捗るかと思いますので、是非お願いいたします><
代替案もありがとうございます!
現時点ではいただいたやり方が良さそうですので参考にさせていただきます!
@uchu さん
こんにちは。DataRobot田中翔です。
ご確認いただきありがとうございます。
こちらさらに調べていたところ1点修正させていただきたいことがありご連絡しました。
私のほうでさらに確認したところ、REST-APIにマニュアルのsnapshotの作成がありました。
#snapshot作成方法
curl -XPOST -H "Content-Type: application/json" -H "Authorization: Bearer XXX" -d '{"credentialId":"YYY"}' https://app.datarobot.com/api/v2/datasets/ZZZ/versions/fromLatestVersion/
#snapshot作成状況(Modification)
curl -XGET 'https://app.datarobot.com/api/v2/datasets/ZZZ/versions/AAA/' -H 'Authorization: Bearer XXX'
※AAAはversion IDを指しており、直前の作成コマンドを実行したときにIDになります。
APIがないとご連絡し失礼しました。
これで取得はできますがPythonで実行しづらいので、Python SDKでも同じ機能/メソッドを用意してもらえると便利と利用者の声としてあげますね。
追記:参考URL(SaaS api doc)を共有いたします。
田中翔
@Sho Tanaka さん
REST APIまで調べていただきありがとうございます!
あるにはあったんですね!
こちらでも検討してみたいと思います。
>これで取得はできますがPythonで実行しづらいので、Python SDKでも同じ機能/メソッドを用意してもらえると便利と利用者の声としてあげますね。
ありがとうございます!