データ インポート ジョブをスケジュールする (プレビュー)
適用対象:Azure CLI ml extension v2 (現行)Python SDK azure-ai-ml v2 (現行)
この記事では、データ インポートをプログラムでスケジュールする方法と、スケジュール UI を使用してそれを行う方法について説明します。 スケジュールは、経過時間に基づいて作成することができます。 時間ベースのスケジュールでは、定期的なタスク (データを最新の状態に保つための定期的なインポートなど) を処理できます。 スケジュールを作成する方法を説明した後、CLI、SDK、スタジオ UI リソースからそれらを取得、更新、非アクティブ化する方法を説明します。
前提条件
- Azure Machine Learning を使うには、Azure サブスクリプションが必要です。 Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。 無料版または有料版の Azure Machine Learning を今すぐお試しください。
- Azure CLI
- Python SDK
-
[ スタジオ](#tab/azure-studio)
Azure CLI と
ml
拡張機能をインストールします。 CLI (v2) のインストール、設定、および使用に関するページにあるインストール手順に従います。Azure Machine Learning ワークスペースを作成します (まだない場合)。 ワークスペースの作成については、CLI (v2) のインストール、設定、使用に関するページを参照してください。
データ インポートをスケジュールする
データ インポートを定期的に実行するには、スケジュールを作成する必要があります。 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
は、hours
、minutes
、およびweekdays
を含む繰り返しパターンを定義します。frequency
がday
と等しい場合、パターンにはhours
およびminutes
を指定できます。frequency
がweek
およびmonth
と等しい場合、パターンにはhours
、minutes
、weekdays
を指定できます。hours
は 0 から 23 の間の整数またはリストである必要があります。minutes
は 0 から 59 の間の整数またはリストである必要があります。weekdays
には、monday
からsunday
までの文字列またはリストを使用できます。schedule
を省略した場合、ジョブ トリガーはstart_time
、frequency
、interval
のロジックに従って開始します。
(省略可能)
start_time
は、タイムゾーンと共に開始日時を記述します。start_time
を省略した場合、start_time はジョブの作成時間と等しくなります。 開始時刻が過去の場合、最初のジョブは、計算された次の実行時に実行されます。(省略可能)
end_time
は、タイムゾーンと共に終了日時を記述します。end_time
を省略した場合、スケジュールを手動で無効にするまでジョブがトリガーされ続けます。(省略可能)
time_zone
は、繰り返しのタイム ゾーンを指定します。 省略した場合、既定のタイム ゾーンは UTC です。 タイムゾーンの値について詳しくは、タイムゾーン値の付録をご覧ください。
cron 式を使用して時間ベースのスケジュールを作成する
- Azure CLI
- Python SDK
-
[ スタジオ](#tab/azure-studio)
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 |
次の手順
- CLI (v2) インポート スケジュール YAML スキーマの詳細情報を確認する。
- インポートされたデータ資産を管理する方法について確認する。