Share via


排程資料匯入作業(預覽版)

適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)

本文將帶您瞭解如何以程式設計方式排程資料匯入,並使用排程 UI 執行相同操作。 您可以根據已耗用時間建立排程。 時間型排程可用於處理常式工作​​,例如定期匯入資料,讓資料保持在最新狀態。 瞭解如何建立排程後,您將繼續瞭解如何透過 CLI、SDK 和 studio UI 擷取、更新和停用排程。

必要條件

排程資料匯入

若要定期匯入資料,您必須建立排程。 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 指定排程型別 recurrencecron。 請參閱下一節以瞭解更多詳細資訊。

接著在 CLI 中執行這個命令:

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

注意

這些屬性適用於 CLI 和 SDK:

  • (必要)frequency 指定描述排程啟動頻率的時間單位。 值可以是 minutehourdayweekmonth

  • (必要)interval 根據頻率指定排程啟動週期,即等候排程再次啟動的時間單位數。

  • (選用) schedule 定義定期模式,包含 hoursminutesweekdays

    • frequency 等於 day,模式可以指定 hoursminutes
    • frequency 等於 weekmonth,模式可以指定 hoursminutesweekdays
    • hours 應是整數或清單,範圍在 0 到 23 之間。
    • minutes 應是整數或清單,範圍在 0 到 59 之間。
    • weekdays 範圍從 mondaysunday 的字串或清單。
    • 如果省略 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 運算式,表示週期性排程。 單一運算式由五個空格分隔欄位組成:

    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

    重要

    不支援 DAYSMONTH。 如果您傳遞其中一個值,系統將忽略該值,並將該值視為 *

  • (選用) 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

注意

若不只要更新標籤/說明,建議使用 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 入口網站中設定。 深入瞭解如何管理 Azure Machine Learning 工作區的存取

動作 描述 規則
參閱 取得並列出 Machine Learning 工作區中的排程 Microsoft.MachineLearningServices/workspaces/schedules/read
寫入 在 Machine Learning 工作區中建立、更新、停用和啟用排程 Microsoft.MachineLearningServices/workspaces/schedules/write
刪除 刪除 Machine Learning 工作區中的排程 Microsoft.MachineLearningServices/workspaces/schedules/delete

下一步