Partage via


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 et à effectuer cette tâche à l’aide de l’interface utilisateur de planification. Vous pouvez créer une planification basée sur la durée calendaire. Les planifications basées sur le temps peuvent être utilisées pour prendre en charge des tâches de routine, telles que l’importation régulière des données 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 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 et un déclencheur. Le déclencheur peut être cron celui qui utilise l’expression cron pour décrire l’attente entre les exécutions ou recurrence qui spécifient à l’aide de quelle fréquence déclencher le travail. Dans chaque cas, vous devez d’abord définir 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. Consultez l’article Créer une importation de données dans l’interface CLI, le 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 Azure ML 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

trigger contient les propriétés suivantes :

  • (Obligatoire)type spécifie le type de planification, à savoir recurrence ou cron. Consultez la section suivante pour 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 la valeur minute, hour, day, week ou 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 en savoir plus sur les valeurs de fuseau horaire, consultez l’annexe pour 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 ML CLI 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 trigger section définit les détails de la planification et contient les propriétés suivantes :

  • (Obligatoire)type spécifie que le type de planification est 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.

    • Le tableau ci-dessous 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 en savoir plus sur les expressions crontab, consultez le 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 cette propriété est omise, le fuseau horaire par défaut est UTC. Consultez l’annexe pour 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 Azure ML CLI v2 (actuelle)

az ml schedule list

Vérifier les détails de la planification

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

az ml schedule show -n simple_cron_data_import_schedule

Créer une planification

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

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

Notes

Pour mettre à jour plus d’éléments que les étiquettes et la description, il est recommandé d’utiliser la commande az ml schedule create --file update_schedule.yml.

Désactiver une planification

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

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

Activer une planification

S’APPLIQUE À :Extension Azure ML 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 irréversible. Une fois qu’une planification est supprimée, vous ne pouvez plus y accéder ni la récupérer.

S’APPLIQUE À :Extension Azure ML 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 plus d’informations, consultez l’article 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