Importer des ressources de données (préversion)

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

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 fourni lors de l’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 y accéder avec 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 aux données plus rapide et fiable dans les travaux d’entraînement 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é. Cela offre des fonctionnalités de contrôle de version pour les données importées 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 ADF (pipelines Azure Data Factory) en arrière-plan, ce qui signifie que les utilisateurs peuvent éviter des interactions complexes avec ADF. En arrière-plan, Azure Machine Learning s’occupe également de la gestion de la taille du pool de ressources de calcul ADF, de l’approvisionnement des ressources de calcul et du démontage pour optimiser 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. Cela 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. Cela entraîne moins de nouvelles exécutions et d’échecs d’entraînement.

Vous pouvez importer des données depuis Amazon S3, Azure SQL et Snowflake.

Important

Cette fonctionnalité est actuellement disponible en préversion publique. Cette préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge.

Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

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 la présence du dernier package azure-ai-ml (version 1.15.0 ou ultérieure) pour le Kit de développement logiciel (SDK) et l’extension ml (version 2.15.1 ou ultérieure).

Si vous disposez d’un package Kit de développement logiciel (SDK) ou d’une extension d’interface CLI plus ancien, supprimez l’ancien package et installez le nouveau avec 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.15.1 or later)

Importer à partir d’une base de données externe en tant que ressource de données de mltable

Notes

Les bases de données externes peuvent avoir des formats Snowflake, Azure SQL, etc.

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 et une source de base de données Azure SQL. 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

Importer des données à partir d’un système de fichiers externe en tant que ressource de données de dossier

Notes

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

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 l’envoi d’une action d’importation de données via l’interface CLI ou le SDK, Azure Machine Learning service peut avoir besoin de plusieurs minutes pour se connecter à la source de données externe. Le service lance ensuite 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 « 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>

Étapes suivantes