Planifier des travaux d’importation de données (préversion)

S’APPLIQUE À :Extension Azure CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)

Dans cet article, vous allez apprendre à planifier par programme des importations de données en utilisant l’interface utilisateur pour ce faire. Vous pouvez créer une planification basée sur la durée calendaire. Les planifications basées sur le temps peuvent gérer les tâches de routine , par exemple, les importations de données régulières pour les maintenir à jour. Après avoir appris à créer des planifications, vous allez découvrir comment les récupérer, les mettre à jour et les désactiver via l’interface CLI, le kit SDK et les ressources de l’interface utilisateur studio.

Prérequis

Planifier une importation de données

Pour importer des données de façon périodique, vous devez créer une planification. Une opération Schedule associe une action d’importation de données avec un déclencheur. Le déclencheur peut être cron, qui utilise une expression cron pour décrire le délai entre les exécutions ou un recurrence, qui spécifie la fréquence pour déclencher un travail. Dans chaque cas, vous devez d’abord générer une définition d’importation de données. À cette fin, une importation de données existante ou une importation de données définie inline peut être utilisée. Pour plus d’informations, consultez Créer une importation de données dans l’interface CLI, le Kit de développement logiciel (SDK) et l’interface utilisateur.

Créer une planification

Créer une planification basée sur le temps avec le modèle de périodicité

S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)

YAML : Planifier une importation de données avec un modèle de périodicité

$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 : Planifier une définition d’importation de données inline avec un modèle de périodicité sur le magasin de données managé

$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

Un trigger contient les propriétés suivantes :

  • (Obligatoire) type spécifie le type de planification, à savoir recurrence ou cron. La section suivante contient plus d’informations.

Ensuite, exécutez cette commande dans l’interface de ligne de commande (CLI) :

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

Notes

Ces propriétés s’appliquent à l’interface CLI et au SDK :

  • (Obligatoire) frequency spécifie une unité de temps qui décrit la fréquence à laquelle la planification se déclenche. Peut avoir des valeurs

    • minute
    • hour
    • day
    • week
    • month
  • (Obligatoire) interval spécifie le déclenchement de la planification en fonction de sa fréquence, c’est-à-dire le temps d’attente basé sur les unités de temps avant le nouveau déclenchement de la planification.

  • (Facultatif) schedule définit le modèle de périodicité, contenant hours, minuteset weekdays.

    • Quand frequency correspond à day, un modèle peut spécifier hours et minutes.
    • Quand frequency correspond à week et à month, un modèle peut spécifier hours, minutes et weekdays.
    • hours doit être un entier ou une liste, dont la valeur est comprise entre 0 et 23.
    • minutes doit être un entier ou une liste, dont la valeur est comprise entre 0 et 59.
    • weekdays est une chaîne ou une liste allant de monday à sunday.
    • Si schedule est omis, les travaux se déclenchent en fonction de la logique de start_time, frequency et interval.
  • (Facultatif) start_time décrit la date et l’heure de début avec un fuseau horaire. Si start_time est omis, start_time correspond à l’heure de création du travail. Dans le cas d’une heure de début située dans le passé, le premier travail est exécuté à la prochaine heure d’exécution calculée.

  • (Facultatif) end_time décrit la date et l’heure de fin avec un fuseau horaire. Si end_time est omis, la planification continue à déclencher des travaux jusqu’à ce qu’elle soit désactivée manuellement.

  • (Facultatif) time_zone spécifie le fuseau horaire de la périodicité. Si cette propriété est omise, le fuseau horaire par défaut est UTC. Pour plus d’informations sur les valeurs de fuseau horaire, consultez l’annexe pour connaître les valeurs de fuseau horaire.

Créer une planification basée sur le temps avec l’expression cron

YAML : planifier l’importation de données avec une expression

S’APPLIQUE À : Extension Azure CLI ml v2 (actuelle)

YAML : Planifier l’importation de données avec une expression cron (préversion)

$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 : Planifier la définition d’importation de données inline avec une expression cron (préversion)

$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

La section trigger définit les détails de la planification et contient les propriétés suivantes :

  • (Obligatoire) type spécifie le type de planification cron.
> az ml schedule create -f <file-name>.yml

Voici la suite de la liste :

  • (Obligatoire) expression utilise une expression crontab standard pour exprimer une planification périodique. Une expression unique est composée de cinq champs délimités par l’espace :

    MINUTES HOURS DAYS MONTHS DAYS-OF-WEEK

    • Caractère générique unique (*), qui couvre toutes les valeurs du champ. La valeur * en jours signifie tous les jours d’un mois (dont le nombre varie en fonction du mois et de l’année).

    • L’exemple expression: "15 16 * * 1" ci-dessus signifie que 16:15 tous les lundis.

    • Ce tableau répertorie les valeurs valides pour chaque champ :

      Champ Plage Commentaire
      MINUTES 0-59 -
      HOURS 0-23 -
      DAYS - Non pris en charge. La valeur est ignorée et considérée comme égale à *.
      MONTHS - Non pris en charge. La valeur est ignorée et considérée comme égale à *.
      DAYS-OF-WEEK 0-6 Zéro (0) signifie dimanche. Les noms des jours ont également été acceptés.
    • Pour découvrir plus d’informations sur les expressions Crontab, consultez la ressource wiki Crontab Expression sur GitHub.

    Important

    DAYS et MONTH ne sont pas pris en charge. Si vous transmettez l’une de ces valeurs, elle est ignorée et considérée comme égale à *.

  • (Facultatif) start_time spécifie la date et l’heure de début avec le fuseau horaire de la planification. Par exemple, start_time: "2022-05-10T10:15:00-04:00" signifie que la planification débute à 10h15 le 10/05/2022 dans le fuseau horaire UTC-4. Si la propriété start_time est omise, la valeur de start_time correspond à l’heure de création de la planification. Dans le cas d’une heure de début située dans le passé, le premier travail est exécuté à la prochaine heure d’exécution calculée.

  • (Facultatif) end_time décrit la date et l’heure de fin avec un fuseau horaire. Si end_time est omis, la planification continue à déclencher des travaux jusqu’à ce qu’elle soit désactivée manuellement.

  • (Facultatif) time_zone spécifie le fuseau horaire de l’expression. Si time_zone est omise, le fuseau horaire par défaut est UTC. Pour plus d’informations sur les valeurs de fuseau horaire, consultez l’annexe pour connaître les valeurs de fuseau horaire.

Limites :

  • La planification Azure Machine Learning v2 ne prend actuellement pas en charge les déclencheurs basés sur les événements.
  • Utilisez le SDK/CLI Azure Machine Learning v2 pour spécifier un modèle de périodicité complexe qui contient plusieurs horodatages de déclencheur. L’interface utilisateur affiche uniquement le modèle complexe et ne prend pas en charge la modification.
  • Si vous définissez la périodicité sur le 31e jour de chaque mois, la planification ne déclenche aucun travail les mois qui comptent moins de 31 jours.

Répertorier les planifications dans un espace de travail

S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)

az ml schedule list

Vérifier les détails de la planification

S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)

az ml schedule show -n simple_cron_data_import_schedule

Créer une planification

S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)

az ml schedule update -n simple_cron_data_import_schedule  --set description="new description" --no-wait

Remarque

Pour mettre à jour plus que simplement des balises/description, nous vous recommandons d’utiliser az ml schedule create --file update_schedule.yml

Désactiver une planification

S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)

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

Activer une planification

S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)

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

Supprimer une planification

Important

Une planification doit être désactivée avant d’être supprimée. La suppression est une action permanente et irrécupérable. Une fois qu’une planification est supprimée, vous ne pouvez plus y accéder ni la récupérer.

S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)

az ml schedule delete -n simple_cron_data_import_schedule

Prise en charge RBAC (contrôle d’accès en fonction du rôle)

Les planifications sont généralement utilisées en mode production. Pour éviter les problèmes, les administrateurs d’espace de travail peuvent restreindre les autorisations de création et de gestion des planifications au sein d’un espace de travail.

Il existe actuellement trois règles d’action liées aux planifications que vous pouvez configurer dans le portail Azure. Pour en savoir plus, consultez comment gérer l'accès à un espace de travail Azure Machine Learning.

Action Description Règle
Lire Obtenir et répertorier les planifications dans l’espace de travail Machine Learning Microsoft.MachineLearningServices/workspaces/schedules/read
Write Créer, mettre à jour, désactiver et activer des planifications dans l’espace de travail Machine Learning Microsoft.MachineLearningServices/workspaces/schedules/write
DELETE Supprimer une planification dans l’espace de travail Machine Learning Microsoft.MachineLearningServices/workspaces/schedules/delete

Étapes suivantes