次の方法で共有


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

適用対象: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 は、スケジュールの起動間隔を表す時間の単位を指定します。 minutehourdayweekmonth の値を指定できます。

  • (必須)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 は、式のタイム ゾーンを指定します。 省略した場合、タイムゾーンは既定で 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

次の手順