データ インポート ジョブをスケジュールする (プレビュー)
適用対象: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
- Python SDK
-
[ スタジオ](#tab/azure-studio)
適用対象: 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
は、式のタイム ゾーンを指定します。 省略した場合、タイムゾーンは既定で UTC になります。 タイムゾーン値の付録を参照してください。
制限事項:
- 現在、Azure Machine Learning v2 のスケジュールでは、イベントベースのトリガーはサポートされていません。
- Azure Machine Learning SDK/CLI v2 を使用して、複数のトリガー タイムスタンプを含む複雑な繰り返しパターンを指定します。 UI には複雑なパターンのみが表示され、編集はサポートされていません。
- 繰り返しを毎月 31 日に設定した場合、31 日より少ない月には、ジョブはスケジュールでトリガーされません。
ワークスペース内のスケジュールを一覧表示する
- Azure CLI
- Python SDK
-
[ スタジオ](#tab/azure-studio)
適用対象: Azure CLI ML 拡張機能 v2 (現行)
az ml schedule list
スケジュールの詳細を確認する
- Azure CLI
- Python SDK
-
[ スタジオ](#tab/azure-studio)
適用対象: Azure CLI ML 拡張機能 v2 (現行)
az ml schedule show -n simple_cron_data_import_schedule
スケジュールを更新する
- Azure CLI
- Python SDK
-
[ スタジオ](#tab/azure-studio)
適用対象: 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
- Python SDK
-
[ スタジオ](#tab/azure-studio)
適用対象: Azure CLI ML 拡張機能 v2 (現行)
az ml schedule disable -n simple_cron_data_import_schedule --no-wait
スケジュールを有効にする
- Azure CLI
- Python SDK
-
[ スタジオ](#tab/azure-studio)
適用対象: Azure CLI ML 拡張機能 v2 (現行)
az ml schedule enable -n simple_cron_data_import_schedule --no-wait
スケジュールの削除
重要
スケジュールを削除する前に、まず無効にする必要があります。 削除は回復不能なアクションです。 スケジュールは、削除した後にアクセスまたは復旧することはできません。
- Azure CLI
- Python SDK
-
[ スタジオ](#tab/azure-studio)
適用対象: 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 スキーマの詳細情報を確認する。
- インポートされたデータ資産を管理する方法について確認する。