Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SI APPLICA A:
SDK Azure Machine Learning v1 per Python
SI APPLICA A:
estensione ML dell'interfaccia della riga di comando di Azure v1
Importante
Questo articolo fornisce informazioni sull'uso di Azure Machine Learning SDK v1. SDK v1 è deprecato a partire dal 31 marzo 2025. Il supporto per questo terminerà il 30 giugno 2026. È possibile installare e usare l'SDK v1 fino a tale data. I flussi di lavoro esistenti che usano SDK v1 continueranno a funzionare dopo la data di fine del supporto. Tuttavia, potrebbero essere esposti a rischi per la sicurezza o a modifiche di rilievo nel caso di cambiamenti dell'architettura del prodotto.
È consigliabile passare all'SDK v2 prima del 30 giugno 2026. Per altre informazioni su SDK v2, vedere Che cos'è l'interfaccia della riga di comando di Azure Machine Learning e Python SDK v2? e il Riferimento SDK v2.
In questo articolo verrà illustrato come connettersi ai servizi di archiviazione in Azure con archivi dati di Azure Machine Learning e Python SDK di Azure Machine Learning.
Un archivio dati si connette in modo sicuro al servizio di archiviazione in Azure ed evita rischi per le credenziali di autenticazione o l'integrità dell'archivio dati originale. Un archivio dati archivia le informazioni di connessione, ad esempio l'ID sottoscrizione o l'autorizzazione del token, nell'insieme di credenziali delle chiavi associato all'area di lavoro. Con un archivio dati, è possibile accedere in modo sicuro all'archiviazione perché è possibile evitare informazioni di connessione hardcoded negli script. È possibile creare archivi dati che si connettono a queste soluzioni di archiviazione di Azure.
Per altre informazioni sul modo in cui gli archivi dati si adattano al flusso di lavoro generale dell'accesso ai dati di Azure Machine Learning, vedere l'articolo Accesso sicuro ai dati .
Per informazioni su come connettersi a una risorsa di archiviazione dati con un'interfaccia utente, vedere Connettersi a un'archiviazione dati con l'interfaccia utente di Studio.
Suggerimento
Questo articolo presuppone che si voglia connettersi al servizio di archiviazione mediante autenticazione tramite credenziali, ad esempio un account di servizio o un token SAS (firma di accesso condiviso). Se le credenziali sono registrate con gli archivi dati, tutti gli utenti con il ruolo Lettore dell'area di lavoro possono recuperare tali credenziali. Per altre informazioni, vedere Gestire i ruoli nell'area di lavoro.
Per altre informazioni sull'accesso ai dati basato sull'identità, vedere Accesso ai dati basato sull'identità ai servizi di archiviazione (v1).
Prerequisiti
Una sottoscrizione di Azure. Se non si dispone di una sottoscrizione di Azure, creare un account gratuito prima di iniziare. Provare la versione gratuita o a pagamento di Azure Machine Learning
Un account di Archiviazione di Azure con un tipo di archiviazione supportato
Un'area di lavoro di Azure Machine Learning.
Creare un'area di lavoro di Azure Machine Learning o usarne una esistente tramite Python SDK
Importare le classi Workspace e Datastore e caricare le informazioni sulla sottoscrizione dal file config.json con la funzione from_config(). Per impostazione predefinita, la funzione cerca il file JSON nella directory corrente, ma è anche possibile specificare un parametro del percorso in modo che punti al file con from_config(path="your/file/path"):
import azureml.core
from azureml.core import Workspace, Datastore
ws = Workspace.from_config()
La creazione dell'area di lavoro registra automaticamente un contenitore BLOB di Azure e una condivisione file di Azure, come archivi dati, nell'area di lavoro. A questi due elementi vengono assegnati, rispettivamente, i nomi workspaceblobstore e workspacefilestore.
workspaceblobstore archivia gli artefatti dell'area di lavoro e i log degli esperimenti di Machine Learning. Funge anche da archivio dati predefinito e non può essere eliminato dall'area di lavoro.
workspacefilestore archivia notebook e script R autorizzati tramite istanza di ambiente di calcolo.
Nota
La finestra di progettazione di Azure Machine Learning crea automaticamente un archivio dati denominato azureml_globaldatasets quando si apre un esempio nella home page della finestra di progettazione. Questo archivio dati contiene solo set di dati di esempio. Non usare questo archivio dati per l'accesso ai dati riservati.
Tipi di servizi di archiviazione dati supportati
Gli archivi dati attualmente supportano l'archiviazione delle informazioni di connessione nei servizi di archiviazione elencati in questa matrice:
Suggerimento
Per le soluzioni di archiviazione non supportate (quelle non elencate nella tabella seguente), è possibile che si verifichino problemi durante la connessione e l'uso dei dati. È consigliabile spostare i dati in una soluzione di Archiviazione di Azure supportata. Ciò può essere utile anche per altri scenari, ad esempio la riduzione dei costi di uscita dei dati durante gli esperimenti di Machine Learning.
| Tipo di archiviazione | Tipo di autenticazione | Studio di Azure Machine Learning | Python SDK di Azure Machine Learning | Interfaccia della riga di comando di Azure Machine Learning | API REST di Azure Machine Learning | Visual Studio Code |
|---|---|---|---|---|---|---|
| Archiviazione BLOB di Azure | Chiave dell'account Token SAS |
✓ | ✓ | ✓ | ✓ | ✓ |
| Condivisione file di Azure | Chiave dell'account Token SAS |
✓ | ✓ | ✓ | ✓ | ✓ |
| Azure Data Lake Storage Gen 1 | Entità servizio | ✓ | ✓ | ✓ | ✓ | |
| Azure Data Lake Storage Gen2 | Entità servizio | ✓ | ✓ | ✓ | ✓ | |
| Database SQL di Azure | Autenticazione SQL Entità servizio |
✓ | ✓ | ✓ | ✓ | |
| Azure PostgreSQL | Autenticazione SQL | ✓ | ✓ | ✓ | ✓ | |
| Database di Azure per MySQL | Autenticazione SQL | ✓* | ✓* | ✓* | ||
| File system di Databricks | Nessuna autenticazione | ✓** | ✓ ** | ✓** |
- MySQL è supportato solo per l'oggetto DataTransferStep della pipeline.
- Databricks è supportato solo per la pipeline DatabricksStep.
Linee guida per l'archiviazione
È consigliabile creare un archivio dati per un contenitore BLOB di Azure. Per i BLOB sono disponibili i livelli di archiviazione Standard e Premium. Sebbene l'archiviazione Premium sia più costosa, la velocità effettiva maggiore può migliorare la velocità delle esecuzioni dei training, specialmente se si esegue il training su un set di dati di grandi dimensioni. Per informazioni sui costi dell'account di archiviazione, vedere Calcolatore dei prezzi di Azure.
Azure Data Lake Storage Gen2 è realizzato a partire da Archiviazione BLOB di Azure. Progettato per l'analisi di Big Data Enterprise. Come parte di Data Lake Storage Gen2, l'archiviazione BLOB include uno spazio dei nomi gerarchico. Lo spazio dei nomi gerarchico organizza oggetti/file in una gerarchia di directory per un accesso ai dati efficiente.
Accesso al servizio di archiviazione e autorizzazioni
Per garantire una connessione sicura al servizio di archiviazione di Azure, Azure Machine Learning richiede che l'utente disponga delle autorizzazioni per accedere al contenitore di archiviazione dei dati corrispondente. Questo accesso dipende dalle credenziali di autenticazione usate per registrare l'archivio dati.
Nota
Queste indicazioni si applicano anche agli archivi dati creati con l'accesso ai dati basato sull'identità.
Rete virtuale
Per comunicare con un account di archiviazione localizzato dietro un firewall o all'interno di una rete virtuale, Azure Machine Learning richiede passaggi di configurazione aggiuntivi. Per un account di archiviazione localizzato dietro un firewall, è possibile aggiungere l'indirizzo IP del client a un elenco elementi consentiti con il portale di Azure.
Azure Machine Learning può ricevere richieste dai client all'esterno della rete virtuale. Per assicurarsi che l'entità che richiede dati dal servizio sia sicura e per consentire la visualizzazione dei dati nell'area di lavoro, usare un endpoint privato con l'area di lavoro.
Per gli utenti di Python SDK: per accedere ai dati in una destinazione di calcolo con lo script di training, è necessario individuare la destinazione di calcolo all'interno della stessa rete virtuale e della stessa subnet dell'archiviazione. È possibile usare un'istanza di calcolo o un cluster di elaborazione nella stessa rete virtuale.
Per gli utenti dello studio di Azure Machine Learning: numerose funzionalità si basano sulla possibilità di leggere o meno i dati da un set di dati, ad esempio anteprime dei set di dati, profili e Machine Learning automatizzato. Per il corretto funzionamento di queste funzionalità con archiviazione dietro reti virtuali, usare un'identità gestita dell'area di lavoro nello studio per consentire ad Azure Machine Learning di accedere all'account di archiviazione dall'esterno della rete virtuale.
Nota
Per i dati archiviati in un database SQL di Azure dietro una rete virtuale, impostare Nega l'accesso pubblico su No tramite il portale di Azure per consentire ad Azure Machine Learning di accedere all'account di archiviazione.
Convalida dell'accesso
Avviso
L'accesso tra tenant agli account di archiviazione non è supportato. Se lo scenario richiede l'accesso tra tenant, contattare il team di supporto dati di Azure Machine Learning per assistenza con una soluzione di codice personalizzata.
Come parte del processo iniziale di creazione e registrazione dell'archivio dati, Azure Machine Learning convalida automaticamente l'esistenza del servizio di archiviazione sottostante e la possibilità che l'entità di sicurezza fornita dall'utente (nome utente, entità servizio o token SAS) acceda a tale risorsa di archiviazione specifica.
Dopo la creazione dell'archivio dati, questa convalida viene eseguita solo per i metodi che richiedono l'accesso al contenitore di archiviazione sottostante e non ogni volta che vengono recuperati oggetti dell'archivio dati. Ad esempio, la convalida si verifica se si vuole scaricare file dall'archivio dati. Tuttavia, se si vuole solo modificare l'archivio dati predefinito, la convalida non viene eseguita.
Per autenticare l'accesso al servizio di archiviazione sottostante, è possibile fornire la chiave dell'account, i token di firma di accesso (SAS) condiviso o l'entità servizio nel metodo register_azure_*() corrispondente del tipo di archivio dati che si vuole creare. La matrice del tipo di archiviazione elenca i tipi di autenticazione supportati che corrispondono a ogni tipo di archivio dati.
È possibile trovare informazioni sulla chiave dell'account, sul token SAS e sull'entità servizio nel portale di Azure.
Per usare una chiave dell'account o un token SAS per l'autenticazione, selezionare Account di archiviazione nel riquadro sinistro e scegliere l'account di archiviazione da registrare
- La pagina Panoramica fornisce informazioni sul nome dell'account, sul nome della condivisione file, sul contenitore e così via
- Per le chiavi dell'account, passare a Chiavi di accesso nel riquadro Impostazioni
- Per i token di firma di accesso condiviso, passare a Firme di accesso condiviso nel riquadro Impostazioni
- La pagina Panoramica fornisce informazioni sul nome dell'account, sul nome della condivisione file, sul contenitore e così via
Per usare un'entità servizio per l'autenticazione, passare a Registrazioni app e selezionare l'app da usare
- La pagina Panoramica corrispondente dell'app selezionata contiene informazioni necessarie, ad esempio ID tenant e ID client
Importante
Per modificare le chiavi di accesso per un account di Archiviazione di Azure (chiave dell'account o token SAS), sincronizzare le nuove credenziali con l'area di lavoro e gli archivi dati connessi. Per altre informazioni, vedere Sincronizzare le credenziali aggiornate.
Autorizzazioni
Per l'archiviazione con contenitore BLOB di Azure e Azure Data Lake Gen2, assicurarsi che le credenziali di autenticazione abbiano l'accesso come Reader di dati dei BLOB di archiviazione. Per altre informazioni, vedere Reader di dati dei BLOB di archiviazione. Per impostazione predefinita, un token SAS dell'account non prevede autorizzazioni.
Per l'accesso in lettura ai dati, le credenziali di autenticazione devono avere un minimo di autorizzazioni di elenco e lettura per contenitori e oggetti
L'accesso in scrittura ai dati richiede anche autorizzazioni di scrittura e aggiunta
Creare e registrare archivi dati
La registrazione di una soluzione di Archiviazione di Azure come archivio dati crea e registra automaticamente l'archivio dati in un'area di lavoro specifica. Per indicazioni sugli scenari di rete virtuale e su dove trovare le credenziali di autenticazione necessarie, vedere la sezione relativa all'accesso alle risorse di archiviazione e alle autorizzazioni in questo documento.
Questa sezione offre esempi che descrivono come creare e registrare un archivio dati tramite Python SDK per questi tipi di archiviazione. I parametri mostrati in questi esempi sono i parametri obbligatori per creare e registrare un archivio dati:
Per creare archivi dati per altri servizi di archiviazione supportati, visitare la documentazione di riferimento per i metodi register_azure_* applicabili.
Per informazioni su come connettersi a una risorsa di archiviazione dati con un'interfaccia utente, vedere Connettersi ai dati con studio di Azure Machine Learning.
Importante
Se si elimina la registrazione e si registra nuovamente un archivio dati con lo stesso nome e la nuova registrazione non riesce, l'Azure Key Vault per l'area di lavoro potrebbe non avere l'eliminazione temporanea abilitata. Per impostazione predefinita, l'eliminazione temporanea è abilitata per l'istanza dell'insieme di credenziali delle chiavi creato dall'area di lavoro. Tuttavia, potrebbe non essere abilitata se è stato usato un insieme di credenziali delle chiavi esistente o se è stata creata un'area di lavoro prima di ottobre 2020. Per informazioni su come abilitare l'eliminazione temporanea, vedere Attivare l'eliminazione temporanea per un insieme di credenziali delle chiavi esistente.
Nota
Un nome dell'archivio dati deve contenere solo lettere minuscole, cifre e caratteri di sottolineatura.
Contenitore BLOB di Azure
Per registrare un contenitore BLOB di Azure come archivio dati, usare il metodo register_azure_blob_container().
L'esempio di codice seguente crea e registra l'archivio blob_datastore_name dati nell'area ws di lavoro. L'archivio dati usa la chiave di accesso dell'account fornita per accedere al contenitore BLOB my-container-name nell'account di archiviazione my-account-name. Vedere la sezione Accesso all'archiviazione e autorizzazioni per indicazioni sugli scenari di rete virtuale e su dove trovare le credenziali di autenticazione necessarie.
blob_datastore_name='azblobsdk' # Name of the datastore to workspace
container_name=os.getenv("BLOB_CONTAINER", "<my-container-name>") # Name of Azure blob container
account_name=os.getenv("BLOB_ACCOUNTNAME", "<my-account-name>") # Storage account name
account_key=os.getenv("BLOB_ACCOUNT_KEY", "<my-account-key>") # Storage account access key
blob_datastore = Datastore.register_azure_blob_container(workspace=ws,
datastore_name=blob_datastore_name,
container_name=container_name,
account_name=account_name,
account_key=account_key)
Condivisione file di Azure
Per registrare una condivisione file di Azure come archivio dati, usare il metodo register_azure_file_share().
Questo esempio di codice crea e registra l'archivio dati file_datastore_name nell'area di lavoro ws. L'archivio dati usa la condivisione file my-fileshare-name nell'account di archiviazione my-account-name, con la chiave di accesso dell'account fornita. Vedere la sezione Accesso all'archiviazione e autorizzazioni per indicazioni sugli scenari di rete virtuale e su dove trovare le credenziali di autenticazione necessarie.
file_datastore_name='azfilesharesdk' # Name of the datastore to workspace
file_share_name=os.getenv("FILE_SHARE_CONTAINER", "<my-fileshare-name>") # Name of Azure file share container
account_name=os.getenv("FILE_SHARE_ACCOUNTNAME", "<my-account-name>") # Storage account name
account_key=os.getenv("FILE_SHARE_ACCOUNT_KEY", "<my-account-key>") # Storage account access key
file_datastore = Datastore.register_azure_file_share(workspace=ws,
datastore_name=file_datastore_name,
file_share_name=file_share_name,
account_name=account_name,
account_key=account_key)
Azure Data Lake Storage Generation 2
Per un archivio dati di Azure Data Lake Storage Generation 2 (ADLS Gen 2), usare il metodo register_azure_data_lake_gen2() per registrare un archivio dati delle credenziali connesso a un archivio dati di Azure Data Lake Gen 2 con autorizzazioni dell'entità servizio.
Per usare l'entità servizio, è necessario registrare l'applicazione e concedere all'entità servizio l'accesso ai dati tramite il controllo degli accessi in base al ruolo (RBAC) di Azure o gli elenchi di controllo di accesso (ACL). Per altre informazioni, vedere Controllo di accesso configurato per ADLS Gen 2.
Questo codice crea e registra l'archivio dati adlsgen2_datastore_name nell'area di lavoro ws. Questo archivio dati accede al file system test nell'account di archiviazione account_name, usando le credenziali dell'entità servizio fornite. Esaminare la sezione Accesso all'archiviazione e autorizzazioni per indicazioni sugli scenari di rete virtuale e su dove trovare le credenziali di autenticazione necessarie.
adlsgen2_datastore_name = 'adlsgen2datastore'
subscription_id=os.getenv("ADL_SUBSCRIPTION", "<my_subscription_id>") # subscription id of ADLS account
resource_group=os.getenv("ADL_RESOURCE_GROUP", "<my_resource_group>") # resource group of ADLS account
account_name=os.getenv("ADLSGEN2_ACCOUNTNAME", "<my_account_name>") # ADLS Gen2 account name
tenant_id=os.getenv("ADLSGEN2_TENANT", "<my_tenant_id>") # tenant id of service principal
client_id=os.getenv("ADLSGEN2_CLIENTID", "<my_client_id>") # client id of service principal
client_secret=os.getenv("ADLSGEN2_CLIENT_SECRET", "<my_client_secret>") # the secret of service principal
adlsgen2_datastore = Datastore.register_azure_data_lake_gen2(workspace=ws,
datastore_name=adlsgen2_datastore_name,
account_name=account_name, # ADLS Gen2 account name
filesystem='test', # ADLS Gen2 filesystem
tenant_id=tenant_id, # tenant id of service principal
client_id=client_id, # client id of service principal
client_secret=client_secret) # the secret of service principal
Creare archivi dati con altri strumenti di Azure
Oltre a creare archivi dati con Python SDK e lo studio, è possibile creare archivi dati anche con Azure Resource Manager o l'estensione VS Code di Azure Machine Learning.
Azure Resource Manager
È possibile usare diversi modelli in https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices per creare archivi dati. Per informazioni su questi modelli, visitare Usare un modello di Azure Resource Manager per creare un'area di lavoro per Azure Machine Learning.
Estensione Visual Studio Code
Per altre informazioni sulla creazione e la gestione di archivi dati con l'estensione VS Code di Azure Machine Learning, vedere la guida pratica per la gestione delle risorse di VS Code.
Usare i dati negli archivi dati
Dopo aver creato un archivio dati, creare un set di dati di Azure Machine Learning per interagire con i dati. Un set di dati crea un pacchetto dei dati da inserire in un oggetto consumabile valutato in modo differito per le attività di Machine Learning, ad esempio il training. Con i set di dati è possibile scaricare o montare file di qualsiasi formato dai servizi di archiviazione di Azure per il training dei modelli in una destinazione di calcolo. Altre informazioni su come eseguire il training di modelli ML con set di dati.
Ottenere archivi dati dall'area di lavoro
Per ottenere un archivio dati specifico registrato nell'area di lavoro corrente, usare il metodo statico get() nella classe Datastore:
# Get a named datastore from the current workspace
datastore = Datastore.get(ws, datastore_name='your datastore name')
Per ottenere l'elenco degli archivi dati registrati con un'area di lavoro specifica, usare la proprietà datastores in un oggetto dell'area di lavoro:
# List all datastores registered in the current workspace
datastores = ws.datastores
for name, datastore in datastores.items():
print(name, datastore.datastore_type)
Questo esempio di codice illustra come ottenere l'archivio dati predefinito dell'area di lavoro:
datastore = ws.get_default_datastore()
È anche possibile modificare l'archivio dati predefinito con l'esempio di codice seguente. Solo l'SDK supporta questa possibilità:
ws.set_default_datastore(new_default_datastore)
Accedere ai dati durante l'assegnazione dei punteggi
Azure Machine Learning offre diversi modi per usare i modelli per l'assegnazione dei punteggi. Alcuni di questi metodi non consentono l'accesso agli archivi dati. Nella tabella seguente vengono descritti i metodi che consentono l'accesso agli archivi dati durante l'assegnazione dei punteggi:
| Metodo | Accesso all'archivio dati | Descrizione |
|---|---|---|
| Previsione in batch | ✔ | Eseguire previsioni su grandi quantità di dati in modo asincrono. |
| Servizio Web | Distribuire modelli come servizi Web. |
Quando l'SDK non fornisce l'accesso agli archivi dati, è possibile creare codice personalizzato con la soluzione Azure SDK pertinente per accedere ai dati. Ad esempio, la libreria client di SDK di Archiviazione di Azure per Python può accedere ai dati archiviati in BLOB o file.
Spostare i dati in soluzioni di archiviazione di Azure supportate
Azure Machine Learning supporta l'accesso ai dati da
- Archiviazione BLOB di Azure
- File di Azure
- Azure Data Lake Storage Gen1
- Azure Data Lake Storage Gen2
- Database SQL di Azure
- Database di Azure per PostgreSQL
Se si usa l'archiviazione non supportata, è consigliabile usare Azure Data Factory e questi passaggi per spostare i dati in soluzioni di archiviazione di Azure supportate. Lo spostamento dei dati in un'archiviazione supportata può consentire di risparmiare sui costi relativi al traffico in uscita dei dati durante esperimenti di Machine Learning.
Azure Data Factory consente un trasferimento dei dati efficiente e resiliente con più di 80 connettori predefiniti senza costi aggiuntivi. Questi connettori includono servizi dati di Azure, origini dati locali, Amazon S3 e Redshift, nonché Google BigQuery.