次の方法で共有


データ インポート ジョブをスケジュールする (プレビュー)

適用対象:Azure CLI ml extension v2 (現行)Python SDK azure-ai-ml v2 (現行)

この記事では、データ インポートをプログラムでスケジュールする方法と、スケジュール UI を使用してそれを行う方法について説明します。 スケジュールは、経過時間に基づいて作成することができます。 時間ベースのスケジュールでは、定期的なタスク (データを最新の状態に保つための定期的なインポートなど) を処理できます。 スケジュールを作成する方法を説明した後、CLI、SDK、スタジオ UI リソースからそれらを取得、更新、非アクティブ化する方法を説明します。

前提条件

  • Azure Machine Learning を使うには、Azure サブスクリプションが必要です。 Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。 無料版または有料版の Azure Machine Learning を今すぐお試しください。

データ インポートをスケジュールする

データ インポートを定期的に実行するには、スケジュールを作成する必要があります。 Schedule は、データ インポート アクションとトリガーを関連付けます。 トリガーは、cron 式を使って実行間の時間を記述する cron、またはジョブをトリガーする頻度を指定する recurrence のいずれかにできます。 いずれの場合も、最初にインポート データ定義を作成する必要があります。 既存のデータ インポート、またはインラインで定義されたデータ インポートは、これに対して機能します。 詳しくは、CLI、SDK、UI でのデータのインポートの作成に関する記事をご覧ください。

スケジュールを作成する

繰り返しのパターンを使用した時間ベースのスケジュールを作成する

適用対象: Azure CLI ml 拡張機能 v2 (現行)

YAML: 繰り返しパターンがあるデータ インポートのスケジュール

$schema: https://azuremlschemas.azureedge.net/latest/schedule.schema.json
name: simple_recurrence_import_schedule
display_name: Simple recurrence import schedule
description: a simple hourly recurrence import schedule

trigger:
  type: recurrence
  frequency: day #can be minute, hour, day, week, month
  interval: 1 #every day
  schedule:
    hours: [4,5,10,11,12]
    minutes: [0,30]
  start_time: "2022-07-10T10:00:00" # optional - default will be schedule creation time
  time_zone: "Pacific Standard Time" # optional - default will be UTC

import_data: ./my-snowflake-import-data.yaml

YAML: マネージド データストアについての繰り返しパターンのあるデータ インポート定義インラインのスケジュール

$schema: https://azuremlschemas.azureedge.net/latest/schedule.schema.json
name: inline_recurrence_import_schedule
display_name: Inline recurrence import schedule
description: an inline hourly recurrence import schedule

trigger:
  type: recurrence
  frequency: day #can be minute, hour, day, week, month
  interval: 1 #every day
  schedule:
    hours: [4,5,10,11,12]
    minutes: [0,30]
  start_time: "2022-07-10T10:00:00" # optional - default will be schedule creation time
  time_zone: "Pacific Standard Time" # optional - default will be UTC

import_data:
  type: mltable
  name: my_snowflake_ds
  path: azureml://datastores/workspacemanagedstore
  source:
    type: database
    query: select * from TPCH_SF1.REGION
    connection: azureml:my_snowflake_connection

trigger には、次のプロパティが含まれています。

  • (必須) type は、スケジュールの種類 (recurrence または cron) を指定します。 次のセクションで詳しく説明します。

次に、次のコマンドを CLI で実行します。

> az ml schedule create -f <file-name>.yml

注意

これらのプロパティは、CLI と SDK に適用されます。

  • (必須) frequency は、スケジュールの開始間隔を表す時間の単位を指定します。 次の値を使用できます

    • minute
    • hour
    • day
    • week
    • month
  • (必須) interval は、頻度に基づいてスケジュールの起動間隔を指定します。頻度は、スケジュールが再び起動するまで待機する時間の単位数です。

  • (Optional) schedule は、hoursminutes、および weekdays を含む繰り返しパターンを定義します。

    • frequencyday と等しい場合、パターンには hours および minutes を指定できます。
    • frequencyweek および month と等しい場合、パターンには hoursminutesweekdays を指定できます。
    • hours は 0 から 23 の間の整数またはリストである必要があります。
    • minutes は 0 から 59 の間の整数またはリストである必要があります。
    • weekdays には、monday から sunday までの文字列またはリストを使用できます。
    • schedule を省略した場合、ジョブ トリガーは start_timefrequencyinterval のロジックに従って開始します。
  • (省略可能) start_time は、タイムゾーンと共に開始日時を記述します。 start_time を省略した場合、start_time はジョブの作成時間と等しくなります。 開始時刻が過去の場合、最初のジョブは、計算された次の実行時に実行されます。

  • (省略可能) end_time は、タイムゾーンと共に終了日時を記述します。 end_time を省略した場合、スケジュールを手動で無効にするまでジョブがトリガーされ続けます。

  • (省略可能) time_zone は、繰り返しのタイム ゾーンを指定します。 省略した場合、既定のタイム ゾーンは UTC です。 タイムゾーンの値について詳しくは、タイムゾーン値の付録をご覧ください。

cron 式を使用して時間ベースのスケジュールを作成する

YAML: cron 式を使用するデータインポートのスケジュール

適用対象: Azure CLI ml 拡張機能 v2 (現行)

YAML: cron 式を使用するデータインポートのスケジュール (プレビュー)

$schema: https://azuremlschemas.azureedge.net/latest/schedule.schema.json
name: simple_cron_import_schedule
display_name: Simple cron import schedule
description: a simple hourly cron import schedule

trigger:
  type: cron
  expression: "0 * * * *"
  start_time: "2022-07-10T10:00:00" # optional - default will be schedule creation time
  time_zone: "Pacific Standard Time" # optional - default will be UTC

import_data: ./my-snowflake-import-data.yaml

YAML: cron 式を使用するデータ インポート定義インラインスケジュール (プレビュー)

$schema: https://azuremlschemas.azureedge.net/latest/schedule.schema.json
name: inline_cron_import_schedule
display_name: Inline cron import schedule
description: an inline hourly cron import schedule

trigger:
  type: cron
  expression: "0 * * * *"
  start_time: "2022-07-10T10:00:00" # optional - default will be schedule creation time
  time_zone: "Pacific Standard Time" # optional - default will be UTC

import_data:
  type: mltable
  name: my_snowflake_ds
  path: azureml://datastores/workspaceblobstore/paths/snowflake/${{name}}
  source:
    type: database
    query: select * from TPCH_SF1.REGION
    connection: azureml:my_snowflake_connection

trigger セクションではスケジュールの詳細を定義し、以下のプロパティが含まれます。

  • (必須) type は、スケジュールの種類 cron を指定します。
> az ml schedule create -f <file-name>.yml

リストは以下に続きます。

  • (必須) expression は、標準の crontab 式を使って繰り返しのスケジュールを表します。 1 つの式は、スペースで区切られた 5 つのフィールドで構成されます:

    MINUTES HOURS DAYS MONTHS DAYS-OF-WEEK

    • そのフィールドのすべての値をカバーする単一のワイルドカード (*)。 * (日数) を指定した場合、これはその月のすべての日を意味します (この数は月と年によって異なります)。

    • 上記のサンプルにある expression: "15 16 * * 1" は、毎週月曜日の午後 16 時 15 分を意味します。

    • 次の表は、各フィールドの有効な値の一覧です。

      フィールド Range コメント
      MINUTES 0-59 -
      HOURS 0-23 -
      DAYS - サポートされていません。 値は無視され、* として扱われます。
      MONTHS - サポートされていません。 値は無視され、* として扱われます。
      DAYS-OF-WEEK 0 ~ 6 ゼロ (0) は日曜日を意味します。 曜日の名前も使用できます。
    • crontab 式について詳しくは、GitHub の crontab 式に関する wiki リソースをご覧ください。

    重要

    DAYS および MONTH はサポートされていません。 これらの値のいずれかを渡すと、無視されて * として扱われます。

  • (省略可能) start_time は、スケジュールの開始日時とタイムゾーンを指定します。 たとえば、start_time: "2022-05-10T10:15:00-04:00" はスケジュールが UTC-4 タイムゾーンの 2022 年 5 月 10 日の午前 10:15:00 から開始されることを意味しています。 start_time を省略した場合、start_time はスケジュールの作成時刻と等しくなります。 開始時刻が過去の場合、最初のジョブは、計算された次の実行時に実行されます。

  • (省略可能) end_time は、タイムゾーンと共に終了日時を記述します。 end_time を省略した場合、スケジュールを手動で無効にするまでジョブがトリガーされ続けます。

  • (省略可能) time_zone は、式のタイム ゾーンを指定します。 time_zone を省略した場合、タイムゾーンは既定で UTC になります。 タイムゾーンの値について詳しくは、タイムゾーン値の付録をご覧ください。

制限事項:

  • 現在、Azure Machine Learning v2 のスケジュールでは、イベントベースのトリガーはサポートされていません。
  • Azure Machine Learning SDK/CLI v2 を使用して、複数のトリガー タイムスタンプを含む複雑な繰り返しパターンを指定します。 UI には複雑なパターンのみが表示され、編集はサポートされていません。
  • 繰り返しを毎月 31 日に設定した場合、31 日より少ない月には、ジョブはスケジュールでトリガーされません。

ワークスペース内のスケジュールを一覧表示する

適用対象: Azure CLI ml 拡張機能 v2 (現行)

az ml schedule list

スケジュールの詳細を確認する

適用対象: Azure CLI ml 拡張機能 v2 (現行)

az ml schedule show -n simple_cron_data_import_schedule

スケジュールを更新する

適用対象: Azure CLI ml 拡張機能 v2 (現行)

az ml schedule update -n simple_cron_data_import_schedule  --set description="new description" --no-wait

Note

タグや説明以外を更新する場合は、az ml schedule create --file update_schedule.yml を使うことをお勧めします

スケジュールを無効にする

適用対象: Azure CLI ml 拡張機能 v2 (現行)

az ml schedule disable -n simple_cron_data_import_schedule --no-wait

スケジュールを有効にする

適用対象: Azure CLI ml 拡張機能 v2 (現行)

az ml schedule enable -n simple_cron_data_import_schedule --no-wait

スケジュールの削除

重要

スケジュールを削除する前に、まず無効にする必要があります。 削除は永続的で回復不可能なアクションです。 スケジュールは、削除した後にアクセスまたは復旧することはできません。

適用対象: Azure CLI ml 拡張機能 v2 (現行)

az ml schedule delete -n simple_cron_data_import_schedule

RBAC (ロールベースのアクセス制御) のサポート

スケジュールは通常、運用に使用されます。 問題を回避するために、ワークスペース管理者は、ワークスペース内のスケジュールの作成と管理のアクセス許可を制限する必要がある場合があります。

現在、スケジュールに関連するアクション ルールが 3 つあり、Azure portal でそれらを構成できます。 詳しくは、Azure Machine Learning ワークスペースへのアクセスの管理方法に関する記事をご覧ください。

アクション 説明 ルール
Read Machine Learning ワークスペースでのスケジュールの取得と一覧表示 Microsoft.MachineLearningServices/workspaces/schedules/read
Write Machine Learning ワークスペースでスケジュールを作成、更新、無効化、有効化する Microsoft.MachineLearningServices/workspaces/schedules/write
削除 Machine Learning ワークスペースでスケジュールを削除する Microsoft.MachineLearningServices/workspaces/schedules/delete

次の手順