Condividi tramite


Importare da Hive Query

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

Questo articolo descrive come usare il modulo Importa dati in Machine Learning Studio (versione classica) per ottenere dati dai cluster Hadoop e dall'archiviazione distribuita di HDInsight.

Nota

Si applica a: solo Machine Learning Studio (versione classica)

I moduli di trascinamento e rilascio simili sono disponibili in Azure Machine Learning finestra di progettazione.

L'importazione di dati da Hive è particolarmente utile per il caricamento di set di dati di grandi dimensioni o se si desidera pre-elaborare i dati usando un processo MapReduce prima di caricare i dati in un esperimento di Machine Learning.

Importante

A partire dal 31 luglio 2018, Microsoft Azure HDInsight versione 3.3 era l'ultima versione di HDInsight in Windows. Se sono presenti cluster HDInsight in Windows 3.3 o versioni precedenti, è necessario eseguire la migrazione a HDInsight in Linux (HDInsight versione 3.5 o successiva). Per altre informazioni sulle versioni ritire di HDInsight, vedere la sezione Versioni ritirata . Machine Learning Studio (versione classica) supporterà HDInsight in Linux in determinati scenari.

Supporto per HDInsight in Linux

Machine Learning Studio (versione classica) supporta HDInsight in Linux negli scenari seguenti:

  • BLOB Hadoop 2.7.3 (HDI 3.6) come impostazione predefinita, ADLS secondario
  • BLOB Spark 2.1.0 (HDI 3.6) come impostazione predefinita, ADLS secondario
  • BLOB Spark 2.2.0 (HDI 3.6) come impostazione predefinita, ADLS secondario
  • BLOB SPARK 2.3.0 (HDI 3.6) come impostazione predefinita, ADLS secondario

Problemi noti

Esistono diversi problemi noti relativi all'uso del modulo Importa dati per query Hive con HDInsight in Linux:

Come importare dati da query Hive

Usare la procedura guidata

Il modulo offre una nuova procedura guidata per scegliere un'opzione di archiviazione, selezionare tra sottoscrizioni e account esistenti e configurare rapidamente tutte le opzioni.

  1. Aggiungere il modulo Importa dati all'esperimento. È possibile trovare il modulo in Studio (versione classica), nella categoria Input dati e Output .

  2. Fare clic su Avvia importazione guidata dati e seguire le istruzioni.

  3. Al termine della configurazione, per copiare effettivamente i dati nell'esperimento, fare clic con il pulsante destro del mouse sul modulo e selezionare Esegui selezionato.

Se è necessario modificare una connessione dati esistente, la procedura guidata carica tutti i dettagli di configurazione precedenti in modo che non sia necessario ricominciare da zero

Impostare manualmente le proprietà di importazione

I passaggi seguenti descrivono come configurare manualmente l'origine di importazione.

  1. Aggiungere il modulo Importa dati all'esperimento. È possibile trovare il modulo in Studio (versione classica), nella categoria Input dati e Output .

  2. Per Origine datiselezionare Query Hive.

  3. Nella casella di testo query del database Hive specificare i dati da leggere usando HiveQL.

    HiveQL è un linguaggio di query SQL simile a quello che può essere usato anche per aggregare i dati ed eseguire il filtro dei dati prima di aggiungere i dati a Machine Learning Studio (versione classica). Tuttavia, la query Hive deve restituire i dati in un formato tabulare.

    Ad esempio, questa istruzione è una query Hive valida:

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

  4. Fare clic sulla casella di testo URI del server HCatalog e quindi digitare il nome completo del cluster.

    Ad esempio, se è stato creato un cluster con il nome mycluster001, usare questo formato: https://mycluster001.azurehdinsight.net

  5. Fare clic sulla casella di testo Nome account utente Hadoop e incollare l'account utente Hadoop usato durante il provisioning del cluster.

  6. Fare clic sulla casella di testo password dell'account utente Hadoop e digitare le credenziali usate quando è stato effettuato il provisioning del cluster.

    Per altre informazioni sulla denominazione e l'autenticazione del cluster per Hadoop, vedere Effettuare il provisioning di cluster Hadoop in HDInsight.

  7. Per Posizione dei dati di output selezionare l'opzione che indica dove vengono archiviati i dati. Se i dati si trovano nel file system distribuito hadoop (HDFS), è necessario che sia accessibile tramite lo stesso account e la stessa password appena immessa. Se i dati si trovano in Azure, specificare la posizione e le credenziali dell'account di archiviazione.

    • HDFS: digitare o incollare l'URI del server HDFS. Assicurarsi di usare il nome del cluster HDInsight senza il HTTPS:// prefisso.

    • Azure: per il nome dell'account di archiviazione di Azure digitare il nome dell'account Azure. Ad esempio, se l'URL completo dell'account di archiviazione è https://myshared.blob.core.windows.net, digitare myshared.

    • Chiave di archiviazione di Azure: copiare e incollare la chiave fornita per accedere all'account di archiviazione.

    • Per il nome del contenitore di Azure, specificare il contenitore predefinito per il cluster. Per informazioni su quale contenitore usare, vedere la sezione Suggerimenti.

  8. Selezionare le opzioni Usa risultati memorizzati nella cache se non si prevede che i dati cambino molto o se si vuole evitare di ricaricare i dati ogni volta che si esegue l'esperimento.

    Quando questa opzione viene selezionata, se non sono presenti altre modifiche ai parametri del modulo, l'esperimento carica i dati la prima volta che viene eseguito il modulo e quindi usa una versione memorizzata nella cache del set di dati.

    Se si vuole ricaricare il set di dati in ogni iterazione del set di dati dell'esperimento, deselezionare l'opzione Usa risultati memorizzati nella cache . I risultati vengono ricaricati anche quando vengono apportate modifiche ai parametri di Importa dati.

  9. Eseguire l'esperimento.

Risultati

Al termine, fare clic sul set di dati di output e selezionare Visualizza per verificare se i dati sono stati importati correttamente.

Se si verificano errori, controllare i dati per valori mancanti, colonne vuote aggiuntive o tipi di dati incompatibili.

Esempio

Per esempi di come configurare un cluster HDInsight e usare query Hive negli esperimenti di Machine Learning, vedere queste risorse:

Anche se Hive offre funzionalità superiori per molti tipi di pulizia e pre-elaborazione dei dati, dopo l'importazione, è possibile trovare questi strumenti utili per preparare i dati per la modellazione:

  • Usare modifica metadati e altri moduli per modificare i nomi delle colonne, specificare quali colonne contengono etichette e funzionalità e specificare il tipo di dati della colonna. Per esempi, vedere Elaborazione dei set di dati.

  • Post-elaborazione dei dati di testo usando Python, per rimuovere punteggiatura, contrassegnare parti della voce e molto altro ancora. Per esempi, vedere Classificazione del testo.

  • Combinare più tabelle da origini diverse in una singola tabella di dati di training. Per esempi, vedere Manutenzione predittiva.

Note tecniche

Questa sezione contiene i dettagli, i suggerimenti e le risposte all'implementazione alle domande frequenti.

Come determinare il contenitore predefinito

Se il cluster è stato creato accettando tutte le impostazioni predefinite, è stato creato un contenitore con lo stesso nome del cluster allo stesso tempo in cui è stato creato il cluster. Tale contenitore è il contenitore predefinito per il cluster. Tuttavia, se si sceglie l'opzione CUSTOM CREATE durante la creazione di un cluster, vengono fornite due opzioni per selezionare il contenitore predefinito. La prima opzione consiste nel selezionare un contenitore esistente. Quando si esegue questa operazione, tale contenitore diventa il contenitore di archiviazione predefinito per il cluster. La seconda opzione è Crea contenitore predefinito. Quando si usa questa opzione, il contenitore predefinito ha lo stesso nome del cluster.

Come chiamare script Python da una query Hive

È possibile usare il modulo Import Data (Importa dati ) per eseguire query Hive che chiamano gli UDF Python per elaborare i record.

Per altre informazioni, vedere Usare Python con Hive e Pig in HDInsight.

Evitare problemi di memoria insufficiente quando si usa Hive per pre-elaborare i dati

Quando si usano query Hive per estrarre i dati da origini di tipo Big Data, è possibile che la configurazione predefinita del cluster Hadoop a volte sia troppo limitata per supportare l'esecuzione del processo MapReduce. In queste note sulla versione per HDInsight, ad esempio, le impostazioni predefinite vengono definite come cluster a quattro nodi.

Se i requisiti del processo MapReduce superano la capacità disponibile, le query Hive potrebbero restituire un messaggio di errore di memoria insufficiente, che causa l'esito negativo dell'operazione Importa dati. In questo caso, è possibile modificare l'allocazione di memoria predefinita per le query Hive nel modulo Importa dati , come illustrato di seguito:

Increase memory to maximum allowed on cluster

In questo esempio sono stati usati i comandi set mapreduce.map.memory.mb e set mapreduce.reduce.memory.mb per aumentare la quantità di memoria al livello massimo consentito nel cluster.

Domande frequenti

Come è possibile evitare di ricaricare gli stessi dati inutilmente

Se i dati di origine cambiano, è possibile aggiornare il set di dati e aggiungere nuovi dati eseguendo di nuovo Importa dati. Tuttavia, se non si vuole ripetere la lettura dall'origine ogni volta che si esegue l'esperimento, selezionare l'opzione Usa risultati memorizzati nella cache su TRUE. Quando questa opzione è impostata su TRUE, il modulo verificherà se l'esperimento è stato eseguito in precedenza usando la stessa origine e le stesse opzioni di input e, se viene trovata un'esecuzione precedente, i dati nella cache vengono usati, anziché ricaricare i dati dall'origine.

È possibile filtrare i dati durante la lettura dall'origine

Il modulo Import Data stesso non supporta il filtro mentre i dati vengono letti.

Per filtrare i dati prima di leggerlo in Machine Learning Studio (versione classica), usare una query Hive o un processo MapReduce per aggregare e trasformare i dati.

Sono disponibili anche più opzioni per filtrare i dati dopo il caricamento in Machine Learning Studio (versione classica):

  • Usare uno script R personalizzato per ottenere solo i dati desiderati.
  • Usare il modulo Split Data con un'espressione relativa o un'espressione regolare per isolare i dati desiderati e quindi salvarli come set di dati.

Nota

Se si ritiene di aver caricato più dati del necessario, è possibile sovrascrivere il set di dati memorizzato nella cache leggendo un nuovo set di dati e salvandolo con lo stesso nome del precedente set di dati più grande.

Parametri del modulo

Nome Intervallo Type Predefinito Descrizione
Origine dati Elenco Origine dati o sink Archiviazione BLOB di Azure L'origine dati può essere HTTP, FTP, HTTPS anonimo o FTPS, un file nell'archiviazione BLOB di Azure, una tabella di Azure, un database SQL di Azure, un database SQL Server locale, una tabella Hive o un endpoint OData.
Hive database query any StreamReader Query HQL
HCatalog server URI any string Endpoint templeton
Hadoop user account name  any string Nome utente hadoop HDFS/HDInsight
Password dell'account utente Hadoop any SecureString Password hadoop HDFS/HDInsight
Location of output data any DataLocation HDFS Specificare HDFS o Azure per outputDir
HDFS server URI any string Endpoint rest HDFS
Nome dell'account di archiviazione di Azure any string Nome dell'account di archiviazione di Azure
Chiave di archiviazione di Azure any SecureString Chiave di archiviazione di Azure
Azure container name any string Azure container name
Data content type Elenco (subset) Contenuto URL OData Tipo di formato dati
URL della fonte any string URL per Power Query'origine dati
Usare i risultati memorizzati nella cache VERO/FALSO Boolean FALSE description

Output

Nome Tipo Descrizione
Set di dati di risultati Tabella dati Set di dati con dati scaricati

Eccezioni

Eccezione Descrizione
Errore 0027 Viene generata un'eccezione quando due oggetti che dovrebbero essere delle stesse dimensioni sono differenti.
Errore 0003 Si verifica un'eccezione se uno o più input sono Null o vuoti.
Errore 0029 Viene generata un'eccezione quando viene passato un URI non valido.
Errore 0030 Un'eccezione si verifica quando non è possibile scaricare un file.
Errore 0002 Viene generata un'eccezione se non è stato possibile analizzare o convertire uno o più parametri dal tipo specificato nel tipo richiesto dal metodo di destinazione.
Errore 0009 Viene generata un'eccezione se il nome dell'account di Archiviazione di Azure o il nome del contenitore non è stato specificato correttamente.
Errore 0048 Viene generata un'eccezione quando non è possibile aprire un file.
Errore 0015 Viene generata un'eccezione se la connessione al database non è riuscita.
Errore 0046 Viene generata un'eccezione quando non è possibile creare una directory nel percorso specificato.
Errore 0049 Viene generata un'eccezione quando non è possibile analizzare un file.

Per un elenco di errori specifici dei moduli di Studio (versione classica), vedere Machine Learning Codici di errore.

Per un elenco di eccezioni API, vedere Machine Learning codici di errore dell'API REST.

Vedi anche

Importazione dei dati
Esportazione dei dati
Importazione da URL Web tramite HTTP
Importazione da Database SQL di Azure
Importazione da tabella di Azure
Importazione da Archiviazione BLOB di Azure
Importazione da provider di feed di dati
Importare dal database di SQL Server locale