Importer à partir d’une requête Hive

Important

Le support de Machine Learning Studio (classique) prend fin le 31 août 2024. Nous vous recommandons de passer à Azure Machine Learning avant cette date.

À partir du 1er décembre 2021, vous ne pourrez plus créer de nouvelles ressources Machine Learning Studio (classique). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les ressources Machine Learning Studio (classique) existantes.

La documentation ML Studio (classique) est en cours de retrait et ne sera probablement plus mise à jour.

Cet article explique comment utiliser le module Importer des données dans Machine Learning Studio (classique), pour obtenir des données à partir de clusters Hadoop et de stockage distribué HDInsight.

Notes

S’applique à : Machine Learning Studio (classique) uniquement

Des modules par glisser-déposer similaires sont disponibles dans Concepteur Azure Machine Learning.

L’importation de données à partir de Hive est particulièrement utile pour le chargement de jeux de données volumineux, ou si vous souhaitez pré-traiter les données à l’aide d’un travail MapReduce avant de charger les données dans une expérience Machine Learning.

Important

À compter du 31 juillet 2018, Microsoft Azure HDInsight version 3.3 était la dernière version de HDInsight sur Windows. Si vous avez des clusters HDInsight sur Windows 3.3 ou versions antérieures, vous devez migrer vers HDInsight sur Linux (HDInsight version 3.5 ou ultérieure). Consultez la section Versions supprimées pour plus d’informations sur les versions supprimées de HDInsight. Machine Learning Studio (classique) prend en charge HDInsight sur Linux dans certains scénarios.

Prise en charge de HDInsight sur Linux

Machine Learning Studio (classique) prend en charge HDInsight sur Linux dans les scénarios suivants :

  • Objet blob Hadoop 2.7.3 (HDI 3.6) par défaut, ADLS secondaire
  • Objet blob Spark 2.1.0 (HDI 3.6) par défaut, ADLS secondaire
  • Objet blob Spark 2.2.0 (HDI 3.6) par défaut, ADLS secondaire
  • Objet blob Spark 2.3.0 (HDI 3.6) par défaut, ADLS secondaire

Problèmes connus

Il existe plusieurs problèmes connus liés à l’utilisation du module Importer des données pour les requêtes Hive avec HDInsight sur Linux :

Comment importer des données à partir de requêtes Hive

Utiliser l’Assistant

Le module propose un nouvel Assistant pour vous aider à choisir une option de stockage, à sélectionner parmi les abonnements et comptes existants, et à configurer rapidement toutes les options.

  1. Ajoutez le module Importer des données à votre expérience. Vous trouverez le module dans Studio (classique), dans la catégorie Entrée et sortie des données .

  2. Cliquez sur Lancer Assistant Importation de données et suivez les invites.

  3. Lorsque la configuration est terminée, pour copier réellement les données dans votre expérience, cliquez avec le bouton droit sur le module, puis sélectionnez Exécuter sélectionné.

Si vous devez modifier une connexion de données existante, l’Assistant charge tous les détails de configuration précédents afin que vous n’ayez pas à recommencer à partir de zéro

Définir manuellement les propriétés d’importation

Les étapes suivantes décrivent la configuration manuelle de la source d’importation.

  1. Ajoutez le module Importer des données à votre expérience. Vous trouverez le module dans Studio (classique), dans la catégorie Entrée et sortie des données .

  2. Pour la source de données, sélectionnez Hive Query.

  3. Dans la zone de texte de requête de base de données Hive , spécifiez les données que vous souhaitez lire à l’aide de HiveQL.

    HiveQL est un langage de requête de type SQL qui peut également être utilisé pour agréger les données et effectuer le filtrage des données avant d’ajouter les données à Machine Learning Studio (classique). Toutefois, la requête Hive doit retourner les données dans un format tabulaire.

    Par exemple, cette instruction est une requête Hive valide :

    SELECT <column list> FROM table WHERE <expression>;

  4. Cliquez sur la zone de texte DE l’URI du serveur HCatalog , puis tapez le nom complet de votre cluster.

    Par exemple, si vous avez créé un cluster avec le nom mycluster001, utilisez ce format : https://mycluster001.azurehdinsight.net

  5. Cliquez sur la zone de texte nom du compte d’utilisateur Hadoop , puis collez-le dans le compte d’utilisateur Hadoop que vous avez utilisé lorsque vous avez configuré le cluster.

  6. Cliquez sur la zone de texte du mot de passe du compte d’utilisateur Hadoop , puis tapez les informations d’identification que vous avez utilisées lors de l’approvisionnement du cluster.

    Pour plus d’informations sur l’attribution de noms et l’authentification de cluster pour Hadoop, consultez Provisionner des clusters Hadoop dans HDInsight.

  7. Pour l’emplacement des données de sortie, sélectionnez l’option qui indique où les données sont stockées. Si les données se trouve dans le système de fichiers distribué Hadoop (HDFS), elles doivent être accessibles via le même compte et le même mot de passe que vous venez d’entrer. Si les données se trouvent dans Azure, fournissez l’emplacement et les informations d’identification du compte de stockage.

    • HDFS : Tapez ou collez l’URI du serveur HDFS. Veillez à utiliser le nom du cluster HDInsight sans préfixe HTTPS:// .

    • Azure : Pour le nom du compte de stockage Azure, tapez le nom du compte Azure. Par exemple, si l’URL complète du compte de stockage est https://myshared.blob.core.windows.net, vous devez saisir myshared.

    • Clé de stockage Azure : copiez et collez la clé fournie pour accéder au compte de stockage.

    • Pour le nom du conteneur Azure, spécifiez le conteneur par défaut du cluster. Consultez la section Astuces pour déterminer quel conteneur utiliser.

  8. Sélectionnez les options Use cached results (Utiliser les résultats mis en cache) si vous ne pensez pas que les données changeront beaucoup ou si vous souhaitez éviter de recharger les données à chaque exécution de l’expérience.

    Lorsqu’il est sélectionné, s’il n’y a pas d’autres modifications apportées aux paramètres de module, l’expérience charge les données la première fois que le module est exécuté, puis utilise une version mise en cache du jeu de données.

    Si vous souhaitez recharger le jeu de données sur chaque itération du jeu de données d’expérience, désélectionnez l’option Utiliser les résultats mis en cache . Les résultats sont également rechargés lorsqu’il existe des modifications apportées aux paramètres de l’importation de données.

  9. Exécutez l’expérience.

Résultats

À l’issue de l’opération, cliquez sur le jeu de données de sortie et sélectionnez Visualiser pour voir si les données ont bien été importées.

Si vous obtenez des erreurs, vérifiez vos données pour les valeurs manquantes, les colonnes vides supplémentaires ou les types de données incompatibles.

Exemples

Pour obtenir des exemples de configuration d’un cluster HDInsight et d’utiliser des requêtes Hive dans des expériences Machine Learning, consultez ces ressources :

Bien que Hive offre des fonctionnalités supérieures pour de nombreux types de nettoyage et de prétraitement des données, après importation, vous pouvez trouver ces outils utiles pour préparer les données pour la modélisation :

  • Utilisez les métadonnées de modification et d’autres modules pour modifier les noms de colonnes, spécifier les colonnes contenant des étiquettes et des fonctionnalités, et spécifier le type de données de colonne. Pour obtenir des exemples, consultez Traitement du jeu de données.

  • Post-traitement des données de texte à l’aide de Python, pour supprimer la ponctuation, les parties d’indicateur de la parole, et bien plus encore. Pour obtenir des exemples, consultez Classification de texte.

  • Combinez plusieurs tables de différentes sources dans une table unique de données d’entraînement. Pour obtenir des exemples, consultez Maintenance prédictive.

Notes techniques

Cette section contient des détails, des conseils et des réponses aux questions fréquentes concernant l’implémentation.

Guide pratique pour déterminer le conteneur par défaut

Si vous avez créé votre cluster en acceptant toutes les valeurs par défaut, un conteneur portant le même nom que le cluster a été créé en même temps que le cluster. Ce conteneur est le conteneur par défaut du cluster. Toutefois, si vous avez choisi l’option CUSTOM CREATE lors de la création d’un cluster, vous avez deux options pour sélectionner le conteneur par défaut. La première option consiste à sélectionner un conteneur existant. Lorsque vous le faites, ce conteneur devient le conteneur de stockage par défaut du cluster. La deuxième option est Créer un conteneur par défaut. Lorsque vous utilisez cette option, le conteneur par défaut a le même nom que le cluster.

Comment appeler des scripts Python à partir d’une requête Hive

Vous pouvez utiliser le module Importer des données pour exécuter des requêtes Hive qui appellent des UDF Python pour traiter les enregistrements.

Pour plus d’informations, consultez Utiliser Python avec Hive et Pig dans HDInsight.

Éviter les problèmes de mémoire lors de l’utilisation de Hive pour pré-traiter les données

Parfois, lorsque vous utilisez des requêtes Hive pour extraire des enregistrements à partir de sources de données volumineuses, la configuration par défaut du cluster Hadoop est trop limitée pour prendre en charge l'exécution de la tâche MapReduce. Par exemple, dans ces notes de publication pour HDInsight, les paramètres par défaut sont définis comme un cluster à quatre nœuds.

Si les exigences du travail MapReduce dépassent la capacité disponible, les requêtes Hive peuvent renvoyer un message d’erreur Hors mémoire, ce qui entraîne l’échec de l’opération Importer des données. Si cela se produit, vous pouvez modifier l’allocation de mémoire par défaut pour les requêtes Hive dans le module Importer des données , comme illustré ici :

Increase memory to maximum allowed on cluster

Dans cet exemple, les commandes set mapreduce.map.memory.mb et set mapreduce.reduce.memory.mb permettent d'augmenter la quantité de mémoire afin d'utiliser le maximum autorisé dans le cluster.

Questions courantes

Comment puis-je éviter de recharger les mêmes données inutilement

Si vos données sources changent, vous pouvez actualiser le jeu de données et ajouter de nouvelles données en réécutant Les données d’importation. Toutefois, si vous ne souhaitez pas relire la source chaque fois que vous exécutez l’expérience, définissez l’option Use cached results (Utiliser les résultats mis en cache) sur TRUE. Lorsque cette option est définie sur TRUE, le module vérifie si l’expérience s’exécute précédemment à l’aide des mêmes options d’entrée et si une exécution précédente est trouvée, les données du cache sont utilisées, au lieu de recharger les données à partir de la source.

Puis-je filtrer les données en cours de lecture à partir de la source

Le module Import Data lui-même ne prend pas en charge le filtrage car les données sont lues.

Pour filtrer les données avant de la lire dans Machine Learning Studio (classique), utilisez une requête Hive ou un travail de MapReduce pour agréger et transformer les données.

Il existe également plusieurs options pour filtrer les données après son chargement dans Machine Learning Studio (classique) :

  • Utilisez un script R personnalisé pour obtenir uniquement les données souhaitées.
  • Utilisez le module Split Data avec une expression relative ou une expression régulière pour isoler les données souhaitées, puis enregistrez-la en tant que jeu de données.

Notes

Si vous constatez que vous avez chargé plus de données que nécessaire, vous pouvez remplacer le jeu de données mis en cache en lisant un nouveau jeu de données et en l'enregistrant avec le même nom que les données antérieures, plus volumineuses.

Paramètres du module

Nom Plage Type Default Description
Source de données List Source de données ou récepteur Stockage Blob Azure La source de données peut être HTTP, FTP, HTTPS anonyme ou FTPS, un fichier dans le stockage BLOB Azure, une table Azure, un Azure SQL Database, une base de données SQL Server locale, une table Hive ou un point de terminaison OData.
Requête de base de données Hive n'importe laquelle StreamReader Requête HQL
URI du serveur HCatalog n'importe laquelle String Point de terminaison Templeton
Nom du compte utilisateur Hadoop n'importe laquelle String Nom d’utilisateur Hadoop HDFS/HDInsight
Mot de passe de compte utilisateur Hadoop n'importe laquelle SecureString Mot de passe Hadoop HDFS/HDInsight
Emplacement des données de sortie n'importe laquelle DataLocation HDFS Spécifier HDFS ou Azure pour outputDir
URI du serveur HDFS n'importe laquelle String Point de terminaison de repos HDFS
Nom du compte de stockage Azure n'importe laquelle String Nom du compte de stockage Azure
Clé de stockage Azure n'importe laquelle SecureString Clé de stockage Azure
Nom du conteneur Azure n'importe laquelle String Nom du conteneur Azure
Type de contenu de données Liste (sous-ensemble) Contenu de l’URL OData Type de format de données
URL de la source n'importe laquelle String URL de Power Query source de données
Utiliser les résultats mis en cache TRUE/FALSE Boolean false description

Sorties

Nom Type Description
Jeu de données de résultats Table de données Jeu de données avec des données téléchargées

Exceptions

Exception Description
Erreur 0027 Une exception se produit quand deux objets qui doivent avoir la même taille ne l'ont pas.
Erreur 0003 Une exception se produit si une ou plusieurs entrées ont la valeur Null ou sont vides.
Erreur 0029 Une exception se produit lorsqu'un URI non valide est passé.
Erreur 0030 Une exception se produit lorsqu’il n’est pas possible de télécharger un fichier.
Erreur 0002 Une exception se produit si un ou plusieurs paramètres n'ont pas pu être analysés ou convertis à partir du type spécifié dans le type requis par la méthode cible.
Erreur 0009 Une exception se produit si le nom du compte de stockage Azure ou le nom du conteneur est spécifié de manière incorrecte.
Erreur 0048 Une exception se produit quand il n'est pas possible d'ouvrir un fichier.
Erreur 0015 Une exception se produit si la connexion à la base de données a échoué.
Erreur 0046 Une exception se produit quand il n'est pas possible de créer un répertoire sur le chemin d'accès spécifié.
Erreur 0049 Une exception se produit quand il n'est pas possible d'analyser un fichier.

Pour obtenir la liste des erreurs spécifiques aux modules Studio (classique), consultez Machine Learning codes d’erreur.

Pour obtenir la liste des exceptions d’API, consultez Machine Learning codes d’erreur de l’API REST.

Voir aussi

Importer des données
Exporter les données
Importer à partir d’une URL web via HTTP
Importer à partir d’Azure SQL Database
Importer à partir de Table Azure
Importer à partir du Stockage Blob Azure
Importer à partir de fournisseurs de flux de données
Importer à partir d’une base de données SQL Server locale