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).
- Vedere leinformazioni sullo spostamento di progetti di Machine Learning da ML Studio (versione classica) ad Azure Machine Learning.
- Altre informazioni sulle Azure Machine Learning.
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:
- Enterprise pacchetto di sicurezza non è supportato
- /tmp/hive non scrivibile
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.
Aggiungere il modulo Importa dati all'esperimento. È possibile trovare il modulo in Studio (versione classica), nella categoria Input dati e Output .
Fare clic su Avvia importazione guidata dati e seguire le istruzioni.
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.
Aggiungere il modulo Importa dati all'esperimento. È possibile trovare il modulo in Studio (versione classica), nella categoria Input dati e Output .
Per Origine datiselezionare Query Hive.
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>;
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
Fare clic sulla casella di testo Nome account utente Hadoop e incollare l'account utente Hadoop usato durante il provisioning del cluster.
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.
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
, digitaremyshared
.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.
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.
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:
Questo articolo fornisce una procedura dettagliata su come creare un cluster, caricare dati e chiamare i dati da Studio (versione classica) usando Hive: Advanced Analytics Process and Technology in Action: Using HDInsight Hadoop clusters.
Questo blog di MVP Vesa Tikkanen descrive alcuni problemi e soluzioni alternative durante la lettura di file molto grandi (query distribuite) da un cluster HD in Linux: Lettura di HIVe di Linux da Azure ML
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:
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