APPLIES TO :
Extension Azure ML CLI v2 (actuelle)
Kit de développement logiciel (SDK) Python azure-ai-ml v2 (préversion)
Avertissement
Les données d’importation à partir de sources externes (préversion) et de connexions de données (préversion) dans Azure Machine Learning sont déconseillées et ne seront pas disponibles après le 30 septembre 2026. Jusqu’à présent, vous pouvez continuer à utiliser ces fonctionnalités sans interruption. Après cette date, toutes les charges de travail qui dépendent d’elles seront interrompues.
Action recommandée : Migrez les importations de données externes vers Microsoft Fabric et utilisez des magasins de données Azure Machine Learning pour rendre les données disponibles dans Azure Machine Learning.
Dans cet article, vous découvrez comment importer des données dans la plateforme Azure Machine Learning à partir de sources externes. Une importation de données réussie crée et inscrit automatiquement une ressource de données Azure Machine Learning avec le nom que vous fournissez pendant cette importation. Une ressource de données Azure Machine Learning ressemble à un signet de navigateur web (favoris). Vous n’avez pas besoin de mémoriser les longs chemins de stockage (URI) qui pointent vers vos données les plus fréquemment utilisées. Au lieu de cela, vous pouvez créer une ressource de données, puis accéder à cette ressource à l’aide d’un nom convivial.
Une importation de données crée un cache des données sources, ainsi que des métadonnées, pour un accès plus rapide et plus fiable aux données dans les travaux d’apprentissage Azure Machine Learning. Le cache de données évite les contraintes réseau et de connexion. Les données en cache sont versionnées pour prendre en charge la reproductibilité. Cette fonctionnalité fournit des fonctionnalités de contrôle de version pour les données importées à partir de sources SQL Server. En outre, les données en cache fournissent une traçabilité des données pour les tâches d’audit. Une importation de données utilise des pipelines Azure Data Factory (ADF) en arrière-plan, ce qui signifie que vous pouvez éviter des interactions complexes avec ADF. Azure Machine Learning gère également la gestion de la taille du pool de ressources de calcul ADF, de l’approvisionnement des ressources de calcul et de la destruction. Cette gestion optimise le transfert de données en déterminant la parallélisation appropriée.
Les données transférées sont partitionnés et stockées en toute sécurité sous forme de fichiers parquet dans le stockage Azure. Ce stockage permet un traitement plus rapide pendant l’entraînement. Les coûts de calcul ADF impliquent uniquement le temps utilisé pour les transferts de données. Les coûts de stockage impliquent uniquement le temps nécessaire pour mettre en cache les données, car les données mises en cache sont une copie des données importées à partir d’une source externe. Le stockage Azure héberge cette source externe.
La fonctionnalité de mise en cache implique des coûts de calcul et de stockage initiaux. Toutefois, elle est payante et permet d’économiser de l’argent, car elle réduit les coûts de calcul d’entraînement récurrents par rapport aux connexions directes à des données sources externes pendant l’entraînement. Elle met en cache les données sous forme de fichiers parquet, ce qui rend l’apprentissage des travaux plus rapide et plus fiable par rapport aux délais d’expiration de connexion pour les jeux de données plus volumineux. La mise en cache entraîne moins de répétitions et réduit les échecs de formation.
Vous pouvez importer des données depuis Amazon S3, Azure SQL et Snowflake.
Prérequis
Pour créer et utiliser des ressources de données, vous avez besoin des éléments suivants :
Remarque
Pour une importation de données réussie, vérifiez que vous avez installé le dernier package azure-ai-ml (version 1.31.0 ou ultérieure) pour le SDK et l’extension ml (version 2.37.0 ou ultérieure). Python 3.9 ou version ultérieure est requis.
Si vous disposez d’un package sdk ou d’une extension CLI plus ancien, supprimez l’ancien et installez le nouveau en utilisant le code affiché dans la section onglet. Suivez les instructions pour le SDK et l’interface CLI présentées ici :
Versions de code
az extension remove -n ml
az extension add -n ml --yes
az extension show -n ml #(the version value needs to be 2.37.0 or later)
pip install azure-ai-ml
pip show azure-ai-ml #(the version value needs to be 1.31.0 or later)
Importer à partir d’une base de données externe en tant qu'actif de données mltable
Remarque
Les bases de données externes incluent Snowflake et Azure SQL.
Les exemples de code suivants peuvent importer des données à partir de bases de données externes. Le connection qui gère l’action d’importation détermine les métadonnées de la source de données de base de données externe. Dans cet exemple, le code importe des données à partir d’une ressource Snowflake. La connexion pointe vers une source Snowflake. Avec une petite modification, la connexion peut pointer vers une source de base de données Azure SQL ou une autre source de base de données prise en charge. La ressource type importée à partir d’une source de base de données externe est mltable.
Créez un fichier YAML<file-name>.yml :
$schema: http://azureml/sdk-2-0/DataImport.json
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# Datastore: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}
type: mltable
name: <name>
source:
type: database
query: <query>
connection: <connection>
path: <path>
Exécutez ensuite la commande suivante dans l’interface CLI :
> az ml data import -f <file-name>.yml
from azure.ai.ml.entities import DataImport
from azure.ai.ml.data_transfer import Database
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# path: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_import = DataImport(
name="<name>",
source=Database(connection="<connection>", query="<query>"),
path="<path>"
)
ml_client.data.import_data(data_import=data_import)
Remarque
L’exemple décrit ici le processus pour une base de données Snowflake. Cependant, ce processus concerne d’autres formats de base de données externes, comme Azure SQL, etc.
Accédez à Azure Machine Learning Studio.
Dans le volet de navigation gauche, sous Ressources, sélectionnez Données. Ensuite, sélectionnez l'onglet Importation de données. Sélectionnez ensuite « Créer », comme illustré dans cette capture d'écran :
Dans l’écran Source de données, sélectionnez Snowflake, puis Suivant, comme illustré dans cette capture d’écran :
Dans l’écran Type de données, entrez les valeurs. La valeur par défaut de Type est Table (mltable). Sélectionnez ensuite Suivant, comme illustré dans cette capture d’écran :
Dans l’écran Créer une importation de données , renseignez les valeurs, puis sélectionnez Suivant, comme illustré dans la capture d’écran suivante :
Renseignez les valeurs dans l’écran Choisir un magasin de données à afficher , puis sélectionnez Suivant, comme illustré dans la capture d’écran suivante.
Magasin de données managé de l’espace de travail est sélectionné par défaut ; le chemin est automatiquement assigné par le système lorsque vous choisissez le magasin de données managé. Si vous sélectionnez Magasin de données managé de l’espace de travail, la liste déroulante Paramètre de suppression automatique s’affiche. Par défaut, la fenêtre de suppression de données est de 30 jours. Vous pouvez changer cette valeur en suivant la procédure décrite dans Gérer les ressources de données importées.
Remarque
Pour choisir votre propre magasin de données, sélectionnez Autres magasins de données. Dans ce cas, vous devez sélectionner le chemin de l’emplacement du cache de données.
Vous pouvez ajouter une planification. Sélectionnez Ajouter une planification , comme illustré dans la capture d’écran suivante :
Un nouveau panneau s’ouvre dans lequel vous pouvez définir une planification Périodicité ou une planification Cron. Cette capture d’écran illustre le panneau d’une planification Périodicité :
-
Nom : identificateur unique de la planification au sein de l’espace de travail.
-
Description : description de la planification.
-
Déclencheur : modèle de périodicité de la planification, qui comprend les propriétés suivantes.
-
Fuseau horaire : le calcul de l’heure du déclencheur est basé par défaut sur ce fuseau horaire : (UTC) temps universel coordonné.
-
Périodicité ou Expression Cron : sélectionnez la périodicité pour spécifier le modèle périodique. Sous Périodicité, vous pouvez spécifier la fréquence de la périodicité : minutes, heures, jours, semaines ou mois.
-
Début : la planification devient active à cette date. Par défaut, il s’agit de la date de création de cette planification.
-
Fin : la planification devient inactive après cette date. Par défaut, il s’agit de NONE, ce qui signifie que la planification est toujours active jusqu’à ce que vous la désactiviez manuellement.
-
Étiquettes : étiquettes de planification sélectionnées.
Remarque
Début spécifie la date et l'heure de début avec le fuseau horaire du planning. Si vous omettez l’heure de début, l’heure de début est égale à l’heure de création de la planification. Pour une heure de début située dans le passé, la première tâche est exécutée à la prochaine heure d’exécution calculée.
La capture d’écran suivante montre le dernier écran de ce processus. Passez en revue vos choix, puis sélectionnez Créer. Dans cet écran et les autres écrans de ce processus, sélectionnez Retour pour passer aux écrans antérieurs pour modifier vos choix de valeurs.
La capture d’écran suivante montre le panneau d’une planification Cron :
Nom : identificateur unique de la planification au sein de l’espace de travail.
Description : description de la planification.
Déclencheur : modèle de périodicité de la planification, qui comprend les propriétés suivantes.
Fuseau horaire : le calcul de l’heure du déclencheur est basé par défaut sur ce fuseau horaire : (UTC) temps universel coordonné.
Récurrence ou expression Cron : sélectionnez l'expression cron pour spécifier les détails du cron.
(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. Un * en jours signifie tous les jours d’un mois (ce qui varie en fonction du mois et de l’année).
L’exemple expression: "15 16 * * 1" ci-dessus signifie 15h15 chaque lundi.
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 découvrir plus d’informations sur les expressions Crontab, consultez le wiki Crontab Expression sur GitHub.
Important
DAYS et MONTH ne sont pas pris en charge. Si vous passez l’une de ces valeurs, elle est ignorée en tant que *.
-
Début : la planification devient active à cette date. Par défaut, il s’agit de la date de création de cette planification.
-
Fin : la planification devient inactive après cette date. Par défaut, il s’agit de NONE, ce qui signifie que la planification est toujours active jusqu’à ce que vous la désactiviez manuellement.
-
Étiquettes : étiquettes de planification sélectionnées.
Remarque
Début spécifie la date et l'heure de début avec le fuseau horaire du planning. Si vous omettez l’heure de début, l’heure de début est égale à l’heure de création de la planification. Pour une heure de début située dans le passé, la première tâche est exécutée à la prochaine heure d’exécution calculée.
La capture d’écran suivante montre le dernier écran de ce processus. Passez en revue vos choix, puis sélectionnez Créer. Dans cet écran et les autres écrans de ce processus, sélectionnez Retour pour passer aux écrans antérieurs pour modifier vos choix de valeurs.
Importer des données à partir d’un système de fichiers externe en tant que ressource de données de dossier
Remarque
Une ressource de données Amazon S3 peut servir de ressource de système de fichiers externe.
Le connection qui gère l’action d’importation de données détermine les aspects de la source de données externe. La connexion définit un compartiment Amazon S3 comme cible. La connexion attend une valeur path valide. Une valeur de ressource importée à partir d’une source de système de fichiers externe présente un type de uri_folder.
L’exemple de code suivant importe des données à partir d’une ressource Amazon S3.
Créez un fichier YAML<file-name>.yml :
$schema: http://azureml/sdk-2-0/DataImport.json
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# path: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}
type: uri_folder
name: <name>
source:
type: file_system
path: <path_on_source>
connection: <connection>
path: <path>
Exécutez manuellement cette commande dans l’interface CLI :
> az ml data import -f <file-name>.yml
from azure.ai.ml.entities import DataImport
from azure.ai.ml.data_transfer import FileSystem
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# path: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_import = DataImport(
name="<name>",
source=FileSystem(connection="<connection>", path="<path_on_source>"),
path="<path>"
)
ml_client.data.import_data(data_import=data_import)
Accédez à Azure Machine Learning Studio.
Dans le volet de navigation gauche, sous Ressources, sélectionnez Données. Ensuite, sélectionnez l’onglet Importation de données. Sélectionnez Ensuite Créer comme indiqué dans la capture d’écran suivante :
Dans l’écran Source de données , sélectionnez S3, puis sélectionnez Suivant, comme illustré dans la capture d’écran suivante :
Dans l’écran Type de données , renseignez les valeurs. La valeur par défaut de Type est Dossier (uri_folder). Ensuite, sélectionnez Suivant, comme illustré dans la capture d’écran suivante :
Dans l’écran Créer une importation de données , renseignez les valeurs, puis sélectionnez Suivant, comme illustré dans la capture d’écran suivante :
Renseignez les valeurs dans l’écran Choisir un magasin de données à afficher , puis sélectionnez Suivant, comme illustré dans la capture d’écran suivante.
Magasin de données managé de l’espace de travail est sélectionné par défaut ; le chemin est automatiquement assigné par le système lorsque vous choisissez le magasin de données managé. Si vous sélectionnez Magasin de données managé de l’espace de travail, la liste déroulante Paramètre de suppression automatique s’affiche. Par défaut, la fenêtre de suppression de données est de 30 jours. Vous pouvez changer cette valeur en suivant la procédure décrite dans Gérer les ressources de données importées.
Vous pouvez ajouter une planification. Sélectionnez Ajouter une planification , comme illustré dans la capture d’écran suivante :
Un nouveau panneau s’ouvre dans lequel vous pouvez définir une planification Périodicité ou une planification Cron. La capture d’écran suivante montre le panneau d’une planification de récurrence :
-
Nom : identificateur unique de la planification au sein de l’espace de travail.
-
Description : description de la planification.
-
Déclencheur : modèle de périodicité de la planification, qui comprend les propriétés suivantes.
-
Fuseau horaire : le calcul de l’heure du déclencheur est basé par défaut sur ce fuseau horaire : (UTC) temps universel coordonné.
-
Périodicité ou Expression Cron : sélectionnez la périodicité pour spécifier le modèle périodique. Sous Périodicité, vous pouvez spécifier la fréquence de la périodicité : minutes, heures, jours, semaines ou mois.
-
Début : la planification devient active à cette date. Par défaut, il s’agit de la date de création de cette planification.
-
Fin : la planification devient inactive après cette date. Par défaut, il s’agit de NONE, ce qui signifie que la planification est toujours active jusqu’à ce que vous la désactiviez manuellement.
-
Étiquettes : étiquettes de planification sélectionnées.
Remarque
Début spécifie la date et l'heure de début avec le fuseau horaire du planning. Si vous omettez l’heure de début, l’heure de début est égale à l’heure de création de la planification. Pour une heure de début située dans le passé, la première tâche est exécutée à la prochaine heure d’exécution calculée.
Passez en revue vos choix au dernier écran de ce processus, puis sélectionnez Créer. Dans cet écran et les autres écrans de ce processus, sélectionnez Retour pour accéder aux écrans précédents si vous souhaitez modifier vos choix de valeurs.
Passez en revue vos choix, puis sélectionnez Créer. Dans cet écran et les autres écrans de ce processus, sélectionnez Retour pour passer aux écrans antérieurs pour modifier vos choix de valeurs.
La capture d’écran suivante montre le panneau d’une planification Cron :
Nom : identificateur unique de la planification au sein de l’espace de travail.
Description : description de la planification.
Déclencheur : modèle de périodicité de la planification, qui comprend les propriétés suivantes.
Fuseau horaire : le calcul de l’heure du déclencheur est basé par défaut sur ce fuseau horaire : (UTC) temps universel coordonné.
Récurrence ou expression Cron : sélectionnez l'expression cron pour spécifier les détails du cron.
(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. Un * en jours signifie tous les jours d’un mois (ce qui varie en fonction du mois et de l’année).
L’exemple expression: "15 16 * * 1" ci-dessus signifie 15h15 chaque lundi.
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 découvrir plus d’informations sur les expressions Crontab, consultez le wiki Crontab Expression sur GitHub.
Important
DAYS et MONTH ne sont pas pris en charge. Si vous passez l’une de ces valeurs, elle est ignorée en tant que *.
-
Début : la planification devient active à cette date. Par défaut, il s’agit de la date de création de cette planification.
-
Fin : la planification devient inactive après cette date. Par défaut, il s’agit de NONE, ce qui signifie que la planification est toujours active jusqu’à ce que vous la désactiviez manuellement.
-
Étiquettes : étiquettes de planification sélectionnées.
Remarque
Début spécifie la date et l'heure de début avec le fuseau horaire du planning. Si vous omettez l’heure de début, l’heure de début est égale à l’heure de création de la planification. Pour une heure de début située dans le passé, la première tâche est exécutée à la prochaine heure d’exécution calculée.
La capture d’écran suivante montre le dernier écran de ce processus. Passez en revue vos choix, puis sélectionnez Créer. Dans cet écran et les autres écrans de ce processus, sélectionnez Retour pour passer aux écrans antérieurs pour modifier vos choix de valeurs.
Vérifier l’état d’importation de sources de données externes
L’action d’importation de données est une action asynchrone. Cela peut prendre beaucoup de temps. Après avoir envoyé une action d’importation de données via l’interface CLI ou le SDK, le service Azure Machine Learning peut avoir besoin de plusieurs minutes pour se connecter à la source de données externe. Ensuite, le service démarre l’importation de données et gère la mise en cache et l’inscription des données. Le temps nécessaire pour une importation de données dépend également de la taille du jeu de données sources.
L’exemple suivant retourne l’état de l’activité d’importation de données envoyées. La commande ou la méthode utilise le nom de la ressource de données comme entrée pour déterminer l’état de la matérialisation des données.
> az ml data list-materialization-status --name <name>
from azure.ai.ml.entities import DataImport
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
ml_client.data.list_materialization_status(name="<name>")
Étapes suivantes