排程資料匯入作業(預覽版)
適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)
在本文中,您將了解如何使用排程 UI,以程式設計方式排程資料匯入。 您可以根據已耗用時間建立排程。 以時間為基礎的排程可以處理例行工作,例如,一般資料匯入以保持最新狀態。 了解如何建立排程後,您將繼續了解如何透過 CLI、SDK 和 studio UI 資源擷取、更新和停用排程。
必要條件
- 您需要 Azure 訂用帳戶才能使用 Azure Machine Learning。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。 立即試用免費或付費版本的 Azure Machine Learning。
安裝 Azure CLI 和
ml
擴充功能。 遵循安裝、設定和使用 CLI (v2) 中的安裝步驟。建立 Azure Machine Learning 工作區 (如果沒有的話)。 若要建立工作區,請參閱安裝、設定和使用 CLI (v2)。
排程資料匯入
若要定期匯入資料,您必須建立排程。 Schedule
會將資料匯入動作與觸發程序建立關聯。 觸發程序可以是 cron
,其會使用 cron 運算式來描述執行之間的延遲,或 recurrence
,指定觸發工作的頻率。 在每種案例下,您必須先建置匯入資料定義。 現有資料匯入或內嵌資料匯入都適用。 如需詳細資訊,請瀏覽 在 CLI、SDK 和 UI 中建立資料匯入 (部分機器翻譯)。
建立排程
使用定期模式建立依據時間的排程
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
根據頻率指定排程啟動週期,即等候排程再次啟動的時間單位數。(選用)
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 運算式建立依據時間的排程
YAML:資料匯入排程(cron 運算式)
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 運算式來表示週期性排程。 單一運算式由五個空格分隔欄位組成:MINUTES HOURS DAYS MONTHS DAYS-OF-WEEK
單一萬用字元 (
*
),涵蓋欄位所有的值。*
(以天為單位)表示當月的每一天(隨月份和年份而有所不同)。上述範例中的
expression: "15 16 * * 1"
即每星期一下午 4:15。下表列出每個欄位的有效值:
欄位 範圍 註解 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 天的月份,排程不會觸發該月的作業。
列出工作區中的排程
az ml schedule list
檢查排程詳細資料
az ml schedule show -n simple_cron_data_import_schedule
更新排程
az ml schedule update -n simple_cron_data_import_schedule --set description="new description" --no-wait
注意
若不只要更新標籤/說明,建議您使用 az ml schedule create --file update_schedule.yml
停用排程
az ml schedule disable -n simple_cron_data_import_schedule --no-wait
啟用排程
az ml schedule enable -n simple_cron_data_import_schedule --no-wait
刪除排程
重要
刪除排程之前,必須先予以停用。 刪除是永久且無法復原的動作。 排程一經刪除,即無法存取或復原。
az ml schedule delete -n simple_cron_data_import_schedule
RBAC(角色型存取控制)支援
排程通常用於實際執行環境。 為避免發生問題,工作區管理員可能希望限制工作區內的排程建立和管理權限。
目前有 3 個動作規則與排程相關,您可以在 Azure 入口網站中設定。 如需詳細資訊,請瀏覽管如何管理 Azure Machine Learning 工作區的存取權 (部分機器翻譯)。
動作 | 描述 | 規則 |
---|---|---|
參閱 | 取得並列出 Machine Learning 工作區中的排程 | Microsoft.MachineLearningServices/workspaces/schedules/read |
寫入 | 在 Machine Learning 工作區中建立、更新、停用和啟用排程 | Microsoft.MachineLearningServices/workspaces/schedules/write |
刪除 | 刪除 Machine Learning 工作區中的排程 | Microsoft.MachineLearningServices/workspaces/schedules/delete |
下一步
- 深入了解 CLI (v2) 資料匯入排程 YAML 結構描述。
- 瞭解如何管理資料匯入資產。