Condividi tramite


Importare da Archiviazione BLOB di Azure

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 argomento descrive come usare il modulo Importa dati in Machine Learning Studio (versione classica) per leggere dati da Archiviazione BLOB di Azure, in modo da poter usare i dati in un esperimento di Machine Learning.

Nota

Si applica a: Machine Learning Studio (versione classica)

Moduli di trascinamento della selezione simili sono disponibili nella finestra Azure Machine Learning progettazione.

Il servizio BLOB di Azure è per l'archiviazione di grandi quantità di dati, inclusi i dati binari. È possibile accedere ai BLOB di Azure da qualsiasi posizione usando HTTP o HTTPS. L'autenticazione potrebbe essere necessaria a seconda del tipo di archiviazione BLOB.

  • I BLOB pubblici sono accessibili a chiunque o agli utenti che hanno un URL di firma di accesso condiviso.
  • I BLOB privati richiedono un account di accesso e le credenziali.

L'importazione dall'archiviazione BLOB richiede che i dati siano archiviati in BLOB che usano il formato BLOB in blocchi. I file archiviati nel BLOB devono usare formati delimitati da virgole (CSV) o separati da tabulazione (TSV). Quando si legge il file, i record e le intestazioni degli attributi applicabili vengono caricati come righe in memoria come set di dati.

Nota

Il modulo Importa dati non supporta la connessione Archiviazione BLOB di Azure'account se è abilitata l'opzione "Trasferimento sicuro obbligatorio".

Per altre restrizioni sui tipi di archiviazione BLOB supportati per l'uso con Machine Learning, vedere la sezione Note tecniche.

Suggerimento

È necessario importare dati in un formato non supportato? È possibile usare Python o R. Vedere questo esempio nell'Azure AI Gallery: Caricare file non di testo da Archiviazione BLOB di Azure

Come importare dati da BLOB di Azure

È consigliabile profilare i dati prima dell'importazione per assicurarsi che lo schema sia quello previsto. Il processo di importazione analizza un certo numero di righe head per determinare lo schema, ma le righe successive potrebbero contenere colonne aggiuntive o dati che causano errori.

Usare l'Importazione guidata dati

Il modulo include una nuova procedura guidata che consente di 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 e output dati.

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

  3. Al termine della configurazione, per copiare effettivamente i dati nell'esperimento, fare clic con il pulsante destro del mouse sul modulo e scegliere 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à nel modulo Importa dati

La procedura seguente descrive come configurare manualmente l'origine di importazione.

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

  2. In Origine datiselezionare Archiviazione BLOB di Azure.

  3. Per Tipo di autenticazione scegliere Pubblico (URL di firma di accesso condiviso) se si è a sapere che le informazioni sono state fornite come origine dati pubblica. Un URL di firma di accesso condiviso è un URL associato al tempo per l'accesso pubblico che è possibile generare usando un'utilità di archiviazione di Azure.

    In caso contrario, scegliere Account.

  4. Se i dati si trova in un BLOB pubblico accessibile tramite un URL di firma di accesso condiviso, non sono necessarie credenziali aggiuntive perché la stringa dell'URL contiene tutte le informazioni necessarie per il download e l'autenticazione.

    Nel campo URI digitare o incollare l'URI completo che definisce l'account e il BLOB pubblico.

    Nota

    In una pagina accessibile tramite URL di firma di accesso condiviso, i dati possono essere archiviati usando solo questi formati: CSV, TSV e ARFF.

  5. Se i dati si trova in un account privato, è necessario specificare le credenziali, inclusi il nome dell'account e la chiave.

    • In Nome account digitare o incollare il nome dell'account che contiene il BLOB a cui si vuole accedere.

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

    • Per Chiave account incollare la chiave di accesso all'archiviazione associata all'account.

      Se non si conosce la chiave di accesso, vedere la sezione "Gestire gli account di archiviazione di Azure" in questo articolo: Informazioni Archiviazione di Azure account.

  6. In Percorso del contenitore, della directory o del BLOB digitare il nome del BLOB specifico che si vuole recuperare.

    Ad esempio, se è stato caricato un file denominato data01.csv nel contenitore trainingdata in un account denominato mymldata, l'URL completo del file sarà: https://mymldata.blob.core.windows.net/trainingdata/data01.txt.

    Di conseguenza, nel campo Percorso del contenitore, della directory o del BLOB digitare: trainingdata/data01.csv

    Per importare più file, è possibile usare i caratteri jolly * (asterisco) o ? (punto interrogativo).

    Ad esempio, trainingdata supponendo che il contenitore contenga più file di un formato compatibile, dataè possibile usare la specifica seguente per leggere tutti i file che iniziano con e concatenarli in un singolo set di dati:

    trainingdata/data*.csv

    Non è possibile usare caratteri jolly nei nomi dei contenitori. Se è necessario importare file da più contenitori, usare un'istanza separata del modulo Importa dati per ogni contenitore e quindi unire i set di dati usando il modulo Aggiungi righe.

    Nota

    Se è stata selezionata l'opzione Usa risultati memorizzati nella cache, le modifiche apportate ai file nel contenitore non attivano un aggiornamento dei dati nell'esperimento.

  7. Per Formato file BLOB selezionare un'opzione che indica il formato dei dati archiviati nel BLOB, in modo che Machine Learning elaborare i dati in modo appropriato. Sono supportati i formati seguenti:

    • CSV: i valori delimitati da virgole (CSV) sono il formato di archiviazione predefinito per l'esportazione e l'importazione di file in Machine Learning. Se i dati contengono già una riga di intestazione, assicurarsi di selezionare l'opzione File con riga di intestazione oppure l'intestazione verrà considerata come una riga di dati.

      Per altre informazioni sul formato CSV usato in Machine Learning, vedere [Convertire in CSV](convert-to-csv.md

    • TSV: I valori separati da tabulazione (TSV) sono un formato usato da molti strumenti di Machine Learning. Se i dati contengono già una riga di intestazione, assicurarsi di selezionare l'opzione File con riga di intestazione oppure l'intestazione verrà considerata come una riga di dati.

      Per altre informazioni sul formato TSV usato in Machine Learning, vedere Convertire in TSV.

    • ARFF: questo formato supporta l'importazione di file nel formato usato dal set di strumenti Weka. Per altre informazioni, vedere Convertire in ARFF.

    • CSV con una codifica specificata: usare questa opzione per i file CSV che potrebbero essere stati preparati usando un separatore di campo diverso o se l'origine potrebbe aver usato una codifica dei caratteri diversa da UTF-8. Questo formato non è supportato per i file archiviati in un URL di firma di accesso condiviso.

    • Excel: usare questa opzione per leggere i dati Excel cartelle di lavoro archiviate in Archiviazione BLOB di Azure. Il Excel non è supportato per i file archiviati in un URL di firma di accesso condiviso.

  8. Per i file CSV con codifiche speciali, impostare queste opzioni aggiuntive per controllare l'importazione corretta dei caratteri:

    • Formato delimitatore virgola: scegliere da un elenco di caratteri comuni usati come separatori di campo, , inclusi il carattere di tabulazione virgola e il punto e virgola ;.

    • Formato di codifica: scegliere la codifica dei caratteri usata dal file da leggere. Per un elenco delle codifiche supportate, vedere la sezione Note tecniche.

    • File con riga di intestazione: selezionare questa opzione se i dati contengono già una riga di intestazione. In caso contrario, l'intestazione viene importata come riga di dati.

  9. Per Excel file, dopo aver specificato l'account e il contenitore in cui è archiviato il file Excel, è necessario indicare il formato Excel e il nome dell'intervallo o della tabella usando queste opzioni:

    • Excel formato dati: indicare se i dati si trova in un intervallo Excel foglio di lavoro o in una Excel tabella.

    • Excel foglio o tabella incorporata: se si seleziona l'opzione foglio Excel, specificare il nome del foglio di lavoro (il nome della scheda) o una tabella incorporata nella cartella di lavoro. Tutti i dati del foglio vengono letti. non è possibile specificare un intervallo di celle. Se si seleziona l'opzione Excel tabella, è necessario ottenere il nome della tabella e non il nome del foglio, anche se in un foglio è presente una sola tabella. Per visualizzare il nome della tabella, fare clic all'interno della tabella e quindi visualizzare la proprietà Nome tabella nella scheda Strumenti tabella .

  10. Eseguire l'esperimento.

Esempio

Per informazioni su come usare i dati Archiviazione BLOB di Azure negli esperimenti di Machine Learning, vedere La raccolta di Azure:

Note tecniche

Questa sezione contiene informazioni dettagliate sull'implementazione, suggerimenti e risposte alle domande frequenti.

Domande frequenti

Esiste un modo per automatizzare l'importazione dei dati?

Esistono diversi modi per ottenere nuovi dati e usarli per aggiornare regolarmente un esperimento. Molto dipende dalla posizione di origine dei dati di origine e dagli strumenti che si preferisce per lo spostamento dei dati. Per alcune idee, vedere questi articoli.

L'automazione dell'esecuzione dell'esperimento richiede in genere la creazione di un servizio Web, che può essere attivato da un'utilità di pianificazione, PowerShell o altro codice personalizzato.

Perché è stato visualizzato un errore quando si è provato a leggere i dati di input da un BLOB esistente?

Esistono diversi problemi possibili:

  • Il BLOB usa un formato non supportato
  • L'account stesso è stato creato usando un'opzione non ancora supportata da Machine Learning.

Formato non supportato: durante la lettura da Archiviazione BLOB di Azure, attualmente Machine Learning che il BLOB usi il formato BLOB in blocchi, che consente di caricare BLOB di grandi dimensioni in modo efficiente. Ad esempio, se si carica un file CSV nell'archivio BLOB, il file verrà archiviato come BLOB in blocchi. Tuttavia, quando si crea un file BLOB a livello di codice, è possibile che venga generato un tipo di BLOB diverso, ad esempio il tipo AppendBlob, che non è supportato.

Come soluzione alternativa, è consigliabile usare il tipo di BLOB in blocchi.

Importante

Dopo la creazione del BLOB, il tipo non può essere modificato.

Per altre informazioni, vedere Informazioni sui BLOB in blocchi, sui BLOB di aggiunta e sui BLOB di pagine.

Tipo di account non supportato: i moduli di importazione ed esportazione possono leggere e scrivere dati solo da account di archiviazione di Azure creati usando il modello di distribuzione classica. In altre parole, il nuovo tipo di account Archiviazione BLOB di Azure che offre livelli di accesso di archiviazione ad accesso rovente e ad accesso rovente non è ancora supportato. In genere, tutti gli account di archiviazione di Azure creati prima che questa opzione del servizio diventasse disponibile non dovrebbero essere interessati.

Se è necessario creare un nuovo account da usare con Machine Learning, selezionare Classica per Modello di distribuzione oppure usare Gestione risorse e per Tipo di account selezionare Utilizzo generico anziché Archiviazione BLOB.

Come è possibile evitare di ricaricare inutilmente gli stessi dati?

Se i dati di origine cambiano, è possibile aggiornare il set di dati e aggiungere nuovi dati eseguendo nuovamente Importa dati. Tuttavia, se non si vuole ri-leggere 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 verifica se l'esperimento è stato eseguito in precedenza usando la stessa origine e le stesse opzioni di input e, se viene trovata un'esecuzione precedente, vengono usati i dati nella cache, anziché ricaricare i dati dall'origine.

È possibile filtrare i dati durante la lettura dall'origine?

Il modulo Importa dati non supporta il filtro durante la lettura dei dati.

Dopo aver caricato i dati in Machine Learning Studio (versione classica), è possibile modificare i dati con questi strumenti:

  • Usare uno script R personalizzato per filtrare o trasformare i dati.

  • Usare il modulo Dividi dati con un'espressione relativa o un'espressione regolare per isolare i dati desiderati e quindi salvarli come set di dati.

Se si è visto che sono stati caricati più dati del necessario, è possibile sovrascrivere il set di dati leggendo un nuovo set di dati e specificando che deve essere salvato con lo stesso nome dei dati meno recenti e più grandi.

Perché il processo di importazione aggiunge una riga aggiuntiva alla fine del set di dati quando trova una nuova riga finale?

Se il modulo Importa dati rileva una riga di dati seguita da una riga vuota o da un carattere di nuova riga finale, alla fine della tabella viene aggiunta una riga aggiuntiva contenente valori mancanti.

Il motivo per interpretare una nuova riga finale come nuova riga è che l'importazione di dati non è in grado di determinare la differenza tra una riga vuota effettiva e una riga vuota creata dall'utente premendo INVIO alla fine di un file.

Poiché alcuni algoritmi di Machine Learning supportano i dati mancanti e quindi trattano questa riga come un caso (che a sua volta potrebbe influire sui risultati), è consigliabile usare Pulisci dati mancanti per verificare la presenza di valori mancanti e rimuoverli in base alle esigenze.

Prima di verificare la presenza di righe vuote, è anche possibile separare la riga vuota finale da altre righe con valori mancanti parziali, che potrebbero rappresentare valori effettivi mancanti nei dati di origine. A tale scopo, è possibile dividere il set di dati usando Dividi dati. Selezionare l'opzione Seleziona N righe head per leggere tutte le righe, ma la riga finale.

Cosa accade se si importano dati caricati da aree geografiche diverse?

Se l'account di archiviazione BLOB o tabelle si trova in un'area diversa dal nodo di calcolo usato per l'esperimento di Machine Learning, l'accesso ai dati potrebbe essere più lento. Inoltre, vengono addebitati i dati in ingresso e in uscita nella sottoscrizione.

Perché alcuni caratteri nel file di origine non vengono visualizzati correttamente nell'intestazione?

Machine Learning in genere supporta la codifica UTF-8. Se il file di origine usa un altro tipo di codifica, i caratteri potrebbero non essere importati correttamente.

In caso di problemi durante il caricamento dei dati, provare a usare l'opzione CSV con codifica e specificare i parametri per i delimitatori personalizzati, la tabella codici e così via.

Sono presenti caratteri o caratteri non consentiti che vengono modificati durante l'importazione?

Se i dati degli attributi contengono virgolette o sequenze di caratteri di escape, vengono gestiti usando le regole per tali caratteri in Microsoft Excel. Tutti gli altri caratteri vengono gestiti usando le specifiche seguenti come linee guida: RFC 4180.

Il limite di dimensioni per il caricamento di set di dati locali direttamente Machine Learning è di 1,98 GB. Con file di dimensioni molto grandi, l'aggiunta del set di dati all'account dell'esperimento può richiedere molto tempo.

  • Stimare almeno 10 minuti per GB di dati.
  • Per ottimizzare le prestazioni, usare un account di archiviazione nella stessa area utilizzata dal servizio ML Azure.

Per caricare file di dimensioni maggiori, fino a 10 GB, sono disponibili diversi approcci:

  • Usare un file compresso. È possibile caricare i set di dati in Azure ML Studio (versione classica) in formato compresso e quindi usare il modulo Decompressione set di dati compressi per decomprimere e salvare il set di dati. I set di dati compressi possono anche essere decompressi usando il modulo Esegui script R , ma le prestazioni potrebbero essere limitate.

  • Usare un'utilità di Azure veloce, ad esempio AzCopy. Creare una fase dei dati Microsoft Azure blob Archiviazione usando un'utilità come AzCopy. Usare quindi il modulo Importa dati per importare dati dall'archiviazione BLOB a Studio (versione classica).

    Ad esempio, il codice seguente illustra la sintassi AzCopy per la scrittura nell'archivio BLOB.

    cd "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy"
    .\AzCopy.exe /Source:C:\LocalFolder /Dest:https://mystorage.blob.core.windows.net/mycontainer /DestKey:MyStorageAccountKey /Pattern:myfile.csv
    

È stato importato un file CSV usando una codifica specificata, ma il testo non viene visualizzato correttamente quando si usa l'opzione per la visualizzazione. Perché?

Per i set di dati caricati, Machine Learning in genere supporta solo UTF-8. Tuttavia, il modulo Importa dati supporta formati di codifica aggiuntivi. Pertanto, dopo aver importato un file usando uno di questi formati, è possibile che i caratteri non vengano visualizzati correttamente. La soluzione consiste nel convertire la codifica in UTF-8 usando uno dei metodi seguenti:

  • Salvare i dati importati come set di dati. Anche l'uso di un set di dati salvato anziché dei dati CSV può migliorare le prestazioni.

  • Se si usa il set di dati nel modulo Esegui script R , è possibile applicare la codifica corretta usando uno script simile al seguente:

    dataset <- maml.mapInputPort(1)
    Encoding(dataset$city) <- "UTF-8"
    maml.mapOutputPort("dataset")
    

    È quindi possibile usare Visualize nell'output del modulo Execute R Script (Esegui script R) e verificare che i caratteri siano visualizzati correttamente.

Quali opzioni sono disponibili per l'importazione di file di testo? Il file CSV non è appropriato per i dati personali.

L'elaborazione e la pulizia di testo non strutturato per adattarlo in modo ordinato alle colonne è sempre una sfida. Tuttavia, se è necessario importare colonne di dati di testo, il formato TSV presenta spesso meno difficoltà, anche se è comunque necessario verificare in anticipo la presenza di caratteri di tabulazione in eccesso.

È consigliabile esaminare il modello Classificazione testo nel Azure AI Galleryper visualizzare un esempio di inserimento ed elaborazione di testo in Machine Learning Studio (versione classica).

Codifica personalizzata per i file CSV

Le versioni precedenti del modulo Importa dati non supportano alcuni tipi di file CSV validi. Ad esempio, i dati esportati da Excel possono contenere caratteri che impediscono la corretta analisi del file.

Per supportare un intervallo più ampio possibile di delimitatori e formati di caratteri, l'opzione Importa dati ora supporta la scelta del delimitatore e del formato di codifica. Se si usa l'opzione CSV con codifica, si otterrà un'analisi più affidabile ed efficiente del file CSV.

È possibile usare le seguenti codifiche dei caratteri:

Tipo Codifica
Unicode Unicode (UTF-8)

Unicode

Unicode (UTF-32)

Unicode (UTF-7)
CJYK Chinese Traditional (Big5)

Chinese Simplified (GB2312)

Chinese Simplified (Mac)

Chinese Simplified (GB2312-80)

Chinese Simplified (ISO-2022)

Chinese Simplified (GB18030)

Japanese (JIS)

Korean (ISO)

Korean (Mac)
Altro Europa occidentale (Windows)

Western European (ISO)

Hebrew (ISO-Visual)

US-ASCII

Suggerimento

Al termine dell'importazione CSV, è consigliabile salvare i file importati come set di dati per assicurarsi che i dati importati usino la codifica UTF-8 nell'esperimento.

Inferenza del tipo di dati nei formati CSV e TSV

Quando il modulo Import Data carica dati da un file CSV o TSV in Archiviazione BLOB di Azure, un guesser di tipo cerca dati categorici o numerici nel file di origine e rappresenta il tipo individuato nei metadati per il nuovo set di dati.

È tuttavia possibile eseguire l'override dei risultati dell'guesser di tipo modificando gli attributi di colonna nel modulo Edit Metadata (Modifica metadati) dopo il caricamento dei dati.

Parametri del modulo

Opzioni generali

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'archivio BLOB di Azure, una tabella di Azure, un database SQL di Azure, un database SQL Server locale, una tabella Hive o un endpoint OData.
Tipo di autenticazione PublicOrSas/Account string Account Specificare se i dati si trovano in un contenitore pubblico accessibile tramite URL di firma di accesso condiviso o in un account di archiviazione privato che richiede l'autenticazione per l'accesso.
Usare i risultati memorizzati nella cache VERO/FALSO Boolean FALSE Selezionare questa opzione per evitare il caricamento dei dati tra le esecuzioni

Public o SAS - Opzioni di archiviazione pubblica

Nome Intervallo Type Predefinito Descrizione
URI any string Nessuno Endpoint REST HDFS
Formato file ARFF, CSV o TSV string CSV Selezionare uno dei formati supportati
L'URI ha una riga di intestazione Boolean VERO/FALSO true True se il file contiene una riga di intestazione. se False, come intestazioni di colonna viene usata la prima riga di dati

Account - Opzioni di archiviazione privata

Nome Intervallo Type Predefinito Descrizione
Nome account any string Nessuno Digitare il nome dell'account di archiviazione
Chiave dell'account any SecureString Nessuno Operazione Incolla per la chiave account
Path to container, directory, or blob any string N/D Digitare il nome del contenitore o della directory
Formato del file BLOB ARFF, CSV o TSV string CSV Selezionare uno dei formati supportati
File has header row any Stringa True Nome dell'account di archiviazione di Azure

Output

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

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 Viene generata un'eccezione se 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 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 l'Machine Learning codici di errore.

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

Vedi anche

Importazione dei dati
Esportazione dei dati
Importazione da URL Web tramite HTTP
Importare da una query Hive
Importazione da Database SQL di Azure
Importare da tabella di Azure
Importare da provider di feed di dati
Importare da un database SQL Server locale