Планирование заданий импорта данных (предварительная версия)
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)
Python SDK azure-ai-ml версии 2 (current)
В этой статье вы узнаете, как программно планировать импорт данных с помощью пользовательского интерфейса расписания. Расписание можно создать на основе истекшего времени. Расписания на основе времени могут обрабатывать обычные задачи, например регулярные импорты данных для их актуальности. Научившись создавать расписания, вы узнаете, как извлекать, обновлять и деактивировать их с помощью интерфейса командной строки, пакета SDK и ресурсов пользовательского интерфейса студии.
Необходимые компоненты
- Вам нужна подписка Azure для использования Машинное обучение Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе. Опробуйте бесплатную или платную версию Машинного обучения Azure уже сегодня.
Установите Azure CLI и расширение
ml
. Выполните инструкции по установке, приведенные в статье Установка, настройка и использование CLI (версия 2).Создайте рабочую область Машинного обучения Azure, если у вас ее нет. Создание рабочего пространства описывается в статье Установка, настройка и использование CLI (версия 2).
Планирование импорта данных
Чтобы импортировать данные на регулярной основе, необходимо создать расписание. Действие 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 |
Следующие шаги
- Узнайте больше о схеме YAML для импорта данных (версия 2).
- Узнайте, как управлять импортированными ресурсами данных.