Поделиться через


Планирование заданий импорта данных (предварительная версия)

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

В этой статье вы узнаете, как программно планировать импорт данных с помощью пользовательского интерфейса расписания. Расписание можно создать на основе истекшего времени. Расписания на основе времени могут обрабатывать обычные задачи, например регулярные импорты данных для их актуальности. Научившись создавать расписания, вы узнаете, как извлекать, обновлять и деактивировать их с помощью интерфейса командной строки, пакета SDK и ресурсов пользовательского интерфейса студии.

Необходимые компоненты

Планирование импорта данных

Чтобы импортировать данные на регулярной основе, необходимо создать расписание. Действие Schedule импорта данных связывается с триггером. Триггер может быть cronлибо , который использует выражение cron для описания задержки между выполнением, либо для recurrenceуказания частоты запуска задания. В каждом случае необходимо сначала создать определение импорта данных. Существующий импорт данных или импорт данных, определенный встроенным способом, работает для этого. Дополнительные сведения см. в статье "Создание импорта данных" в CLI, пакете SDK и пользовательском интерфейсе.

Создание графика

Создание расписания на основе времени с шаблоном повторения

ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)

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

A trigger содержит следующие свойства:

  • (обязательно) type указывает тип расписания либо recurrence cron. Дополнительные сведения см. в следующем разделе.

Затем выполните следующую команду в интерфейсе командной строки:

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

Примечание.

Эти свойства применяются к интерфейсу командной строки и пакету 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

ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)

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" приведенном выше примере означает 16:15 в каждый понедельник.

    • В этой таблице перечислены допустимые значения для каждого поля:

      Поле Диапазон Комментарий
      MINUTES 0-59 -
      HOURS 0-23 -
      DAYS - Не поддерживается. Значение игнорируется и обрабатывается как *.
      MONTHS - Не поддерживается. Значение игнорируется и обрабатывается как *.
      DAYS-OF-WEEK 0–6 Ноль (0) означает воскресенье. Также принимаются имена дней.
    • Дополнительные сведения о выражениях crontab см. в вики-ресурсе Crontab Expression на сайте GitHub.

    Внимание

    Значения DAYS и MONTH не поддерживаются. Если передать одно из этих значений, он будет игнорироваться и рассматриваться как *.

  • (Необязательно) start_time указывает дату и время начала с часовой пояс расписания. Например, означает, start_time: "2022-05-10T10:15:00-04:00" что расписание начинается с 10:15:00 УТРА 2022-05-10 в часовом поясе UTC-4. Если start_time опущено, start_time время создания расписания равно времени создания. В течение времени начала в прошлом первое задание выполняется в следующее вычисляемое время выполнения.

  • (Необязательно) end_time описывает дату окончания и время с часовой поясом. Если end_time опущено, расписание продолжает запускать задания, пока расписание не будет отключено вручную.

  • (Необязательно) time_zone указывает часовой пояс выражения. Если time_zone опущено, часовой пояс по умолчанию — UTC. Дополнительные сведения о значениях часового пояса см . в приложении для значений часового пояса.

Ограничения:

  • В настоящее время планирование Машинное обучение Azure версии 2 не поддерживает триггеры на основе событий.
  • Используйте пакет SDK или CLI Машинное обучение Azure версии 2, чтобы указать сложный шаблон повторения, содержащий несколько меток времени триггера. Пользовательский интерфейс отображает только сложный шаблон и не поддерживает редактирование.
  • Если вы устанавливаете повторение как 31-й день каждого месяца, расписание не будет запускать задания в месяцах с менее чем 31 днями.

Получение списка расписаний в рабочей области

ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)

az ml schedule list

Проверка сведений о расписании

ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)

az ml schedule show -n simple_cron_data_import_schedule

Обновление расписания

ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)

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 версии 2 (текущее)

az ml schedule disable -n simple_cron_data_import_schedule --no-wait

Включение расписания

ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)

az ml schedule enable -n simple_cron_data_import_schedule --no-wait

Удаление расписания

Внимание

Перед удалением необходимо отключить расписание. Удаление является постоянным, неустранимым действием. После удаления расписания вы никогда не сможете получить доступ к нему или восстановить его.

ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)

az ml schedule delete -n simple_cron_data_import_schedule

Поддержка RBAC (управление доступом на основе ролей)

Расписания обычно используются для рабочей среды. Чтобы предотвратить проблемы, администраторы рабочих областей могут ограничить разрешения на создание расписания и управление в рабочей области.

В настоящее время существует три правила действий, связанных с расписаниями, и их можно настроить в портал Azure. Дополнительные сведения см. в статье об управлении доступом к Машинное обучение Azure рабочей области.

Действие Description Правило
Читать Получение и перечисление расписаний в рабочей области Машинное обучение Microsoft.MachineLearningServices/workspaces/schedules/read
Write Создание, обновление, отключение и включение расписаний в рабочей области Машинное обучение Microsoft.MachineLearningServices/workspaces/schedules/write
Удаление Удаление расписания в рабочей области Машинное обучение Microsoft.MachineLearningServices/workspaces/schedules/delete

Следующие шаги