バッチ監視ジョブ¶
バッチ監視ジョブでは、予測データを継続的に監視できます。 このページでは、Python APIクライアントを使用してバッチ監視ジョブとジョブ定義を管理する方法について説明します。
前提条件¶
- 監視ジョブを実行するためのデータと出力の設定(バッチ予測ジョブと互換性のある入力および出力設定など)。
バッチ監視ジョブの定義¶
バッチ監視ジョブの定義は、バッチ監視ジョブ用に保存された設定です。 定義は、オンデマンドで一度だけ実行することも、スケジュールに従って実行することもできます。 Pythonクライアントは、これらをBatchMonitoringJobDefinitionを介して公開します。
ジョブ定義の一覧表示¶
すべてのバッチ監視ジョブ定義を一覧表示します。 デプロイまたは名前でフィルターすることもできます。
import datarobot as dr
# List all definitions
definitions = dr.BatchMonitoringJobDefinition.list()
# Filter by deployment
definitions = dr.BatchMonitoringJobDefinition.list(deployment_id='5c939e08962d741e34f609f0')
# Search by name
definitions = dr.BatchMonitoringJobDefinition.list(search_name='Daily Monitoring')
offsetやlimitなどのパラメーターについては、BatchMonitoringJobDefinition.listを参照してください。
ジョブ定義の取得¶
IDを使用して単一のジョブ定義を取得します。
import datarobot as dr
definition = dr.BatchMonitoringJobDefinition.get(job_definition_id='550e8400-e29b-41d4-a716-446655440000')
print(definition.name, definition.deployment_id)
ジョブ定義を作成する¶
目的の入力、出力、およびデプロイを指定してバッチ監視ジョブの定義を作成します。 ペイロードはバッチ監視ジョブ作成API(例:deploymentId、intakeSettings、outputSettings)と一致します。 enabledとscheduleを設定して、スケジュールに従って実行できます。
import datarobot as dr
definition = dr.BatchMonitoringJobDefinition.create(
deployment_id='5c939e08962d741e34f609f0',
name='Weekly batch monitoring',
intake_settings={'type': 'localFile', 'url': 'file:///data/predictions.csv'},
output_settings={'type': 'localFile', 'path': '/out/monitoring'},
enabled=False
)
サポートされているすべてのオプション(monitoringBatchPrefix、monitoringColumns、chunkSizeなど)については、BatchMonitoringJobDefinition.createおよびBatch Monitoring APIを参照してください。
ジョブ定義の更新¶
既存の定義(名前、スケジュール、有効な状態など)を更新します。
import datarobot as dr
definition = dr.BatchMonitoringJobDefinition.get(job_definition_id='550e8400-e29b-41d4-a716-446655440000')
definition.update(name='Daily batch monitoring', enabled=True)
更新可能なフィールドについては、BatchMonitoringJobDefinition.updateを参照してください。
ジョブ定義の実行¶
スケジュールを変更せずに定義を1回実行するには:
import datarobot as dr
definition = dr.BatchMonitoringJobDefinition.get(job_definition_id='550e8400-e29b-41d4-a716-446655440000')
job = definition.run_once()
print(job.id, job.status)
スケジュールに従ってジョブ定義を実行する¶
設定されたスケジュールがある場合は、そのスケジュールに従って定義の実行を開始します。
import datarobot as dr
definition = dr.BatchMonitoringJobDefinition.get(job_definition_id='550e8400-e29b-41d4-a716-446655440000')
definition.run_on_schedule()
ジョブ定義の削除¶
バッチ監視ジョブの定義を削除します。 定義に現在実行中のジョブを含めることはできません。
import datarobot as dr
definition = dr.BatchMonitoringJobDefinition.get(job_definition_id='550e8400-e29b-41d4-a716-446655440000')
definition.delete()
バッチ監視ジョブ¶
バッチ監視ジョブは、(単一の送信または定義からの)1回の実行です。 ジョブのステータスや詳細を取得するには、BatchMonitoringJobを使用します。
バッチ監視ジョブの取得¶
(run_once()で定義を実行した後などに)ステータスや結果を確認するには、IDを指定してジョブを取得します。
import datarobot as dr
job = dr.BatchMonitoringJob.get(job_id='660e8400-e29b-41d4-a716-446655440001')
print(job.status, job.deployment_id)