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


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

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

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

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

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

Чтобы импортировать данные на регулярной основе, необходимо создать расписание. Он Schedule связывает действие импорта данных и триггер. В качестве триггера можно использовать 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

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

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

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

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

Примечание.

Эти свойства применяются к интерфейсу командной строки и пакету SDK:

  • (Обязательно)frequency означает единицу времени, которая задает частоту срабатывания расписания. Может иметь значения minute, , , dayhourweekили month.

  • (Обязательно)interval указывает, как часто расписание срабатывает на основе частоты, т.е. количество единиц времени, которое необходимо выждать, прежде чем расписание сработает снова.

  • (Необязательно) schedule определяет шаблон повторения, содержащий hours, minutesи weekdays.

    • Если frequency равно day, шаблон может указывать hours и minutes.
    • При frequency равном значении week и monthшаблон может указывать hoursи minutesweekdays.
    • hours должно быть целым числом или списком, начиная от 0 до 23.
    • minutes должно быть целым числом или списком, начиная от 0 до 59.
    • weekdays строка или список, начиная от mondaysunday.
    • Если schedule опущен, задания активируются в соответствии с логикой start_timeи frequencyinterval.
  • (Необязательно) 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 указывает часовой пояс выражения. Если опущено, часовой пояс по умолчанию — 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.Machine Обучение Services/workspaces/schedules/read
Запись Создание, обновление, отключение и включение расписаний в рабочей области Машинное обучение Microsoft.Machine Обучение Services/workspaces/schedules/write
Удаление Удаление расписания в рабочей области Машинное обучение Microsoft.Machine Обучение Services/workspaces/schedules/delete

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