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.
Importante
Questa documentazione è stata ritirata e potrebbe non essere aggiornata.
Questo articolo descrive i modelli legacy per la configurazione dell'accesso ad Azure Data Lake Storage. Databricks consiglia di usare Unity Catalog per configurare l'accesso ad Azure Data Lake Storage e ai volumi per l'interazione diretta con i file. Vedere Usare le identità gestite di Azure nell’Unity Catalog per accedere all'archiviazione.
Questo articolo illustra come connettersi ad Azure Data Lake Storage e gestione rete virtuale di Azure da Azure Databricks.
Nota
Il driver blob legacy di Windows Archiviazione di Azure (WASB) è stato deprecato. ABFS offre numerosi vantaggi rispetto a WASB. Vedi la documentazione di Azure su ABFS. Per la documentazione relativa all'uso del driver WASB precedente, vedere Connettersi all'archiviazione BLOB di Azure con WASB (legacy).
Passaggio 1: Registrare un'applicazione Microsoft Entra ID
La registrazione di un'applicazione con Microsoft Entra ID crea un'entità del servizio che è possibile usare per fornire l'accesso agli account di archiviazione di Azure.
Per registrare un'applicazione Microsoft Entra ID, è necessario avere il Application Administrator ruolo o l'autorizzazione Application.ReadWrite.All in Microsoft Entra ID.
- Nel portale di Azure, passare al servizio Microsoft Entra ID.
- In Gestisci fare clic su Registrazioni app.
- Fare clic su + Nuova registrazione. Immettere un nome per l'applicazione e fare clic su Registra.
- Fare clic su Certificati e segreti.
- Fare clic su + Nuovo segreto client.
- Aggiungere una descrizione per il segreto e fare clic su Aggiungi.
- Copiare e salvare il valore del nuovo segreto.
- Nella panoramica della registrazione dell'applicazione, copiare e salvare l'ID applicazione (client) e l'ID directory (tenant).
Passaggio 2: Assegnare ruoli al service principal
È possibile controllare l'accesso alle risorse di archiviazione assegnando ruoli a una registrazione dell'applicazione Microsoft Entra ID associata all'account di archiviazione. Potrebbe essere necessario assegnare altri ruoli in base a requisiti specifici.
Per assegnare ruoli su un account di archiviazione, è necessario avere il ruolo Proprietario o Amministratore di accesso utente di Azure RBAC sull'account di archiviazione.
- Nel portale di Azure, vai al servizio Account di archiviazione.
- Selezionare un account di archiviazione di Azure da usare con la registrazione dell'applicazione.
- Fare clic su Controllo di accesso (IAM).
- Fare clic su + Aggiungi dal menu a discesa, selezionare Aggiungi assegnazione di ruolo.
- Impostare il campo Seleziona sul nome dell'applicazione Microsoft Entra ID e impostare Ruolo su Collaboratore dati BLOB di archiviazione.
- Fai clic su Salva.
Passaggio 3: Configurare le credenziali di Azure in Azure Databricks
Configurare il cluster o il notebook di Azure Databricks con le credenziali per l'account di archiviazione Azure a cui si vuole accedere.
Tipi di credenziali supportati e archiviazione dei segreti
È possibile usare le credenziali seguenti per accedere ad Azure Data Lake Storage o all'archiviazione BLOB:
OAuth 2.0 con un principale di servizio Microsoft Entra ID: Databricks consiglia di usare i principali di servizio Microsoft Entra ID per connettersi ad Azure Data Lake Storage. Per creare un'entità servizio di Microsoft Entra ID e concederle l'accesso agli account di archiviazione di Azure, completare i passaggi 1 e 2 sopra.
Per creare un service principal di Microsoft Entra ID, è necessario avere il ruolo
Application Administratoro l'autorizzazioneApplication.ReadWrite.Allin Microsoft Entra ID. Per assegnare ruoli a un account di archiviazione, è necessario essere Owner o un utente con il ruolo Amministratore accesso utenti di Azure RBAC per l'account di archiviazione.Importante
L'archiviazione BLOB non supporta le entità servizio di Microsoft Entra ID.
Firme di accesso condiviso (SAS): è possibile usare i token di firma di accesso condiviso di archiviazione, per accedere all'archiviazione di Azure. Con SAS, è possibile limitare l'accesso a un account di archiviazione mediante token temporanei con un controllo granulare degli accessi.
È possibile concedere a un token SAS solo le autorizzazioni di cui si dispone sull'account di archiviazione, sul contenitore o sul file.
Chiavi dell'account: è possibile usare le chiavi di accesso dell'account di archiviazione per gestire l'accesso alle Archiviazione di Azure. Le chiavi di accesso dell'account di archiviazione forniscono l'accesso completo alla configurazione di un account di archiviazione e ai dati. Databricks consiglia di usare un'entità servizio Microsoft Entra ID o un token di firma di accesso condiviso per connettersi all'archiviazione di Azure anziché alle chiavi dell'account.
Per visualizzare le chiavi di accesso di un account, è necessario avere il ruolo di Proprietario, Collaboratore o Operatore di Chiavi Account di Archiviazione nell'account di archiviazione.
Databricks consiglia di usare ambiti segreti per l'archiviazione di tutte le credenziali. È possibile concedere l'accesso per leggere l'ambito del segreto agli utenti, alle entità servizio e ai gruppi nell'area di lavoro. In questo modo le credenziali di Azure vengono protette consentendo agli utenti di accedere all'archiviazione Azure. Per creare un ambito di segreti, vedi Gestire gli ambiti di segreti.
Nota
Le principali del servizio Microsoft Entra ID possono essere usate anche per accedere all'archiviazione di Azure da SQL Warehouse, vedere Configurazioni di accesso ai dati.
Impostare le proprietà di Spark per configurare le credenziali di Azure
È possibile impostare le proprietà di Spark per configurare le credenziali Azure per accedere all'archiviazione Azure. È possibile definire l'ambito delle credenziali in un cluster o in un notebook. Usare il controllo di accesso del cluster e il controllo di accesso dei Notebook insieme per proteggere l'accesso all'archiviazione di Azure. Vedere Autorizzazioni di calcolo e Collaborazione con i Notebook di Databricks.
Per impostare le proprietà di Spark, usare il frammento di codice seguente nella configurazione spark di un cluster o in un notebook:
Entità servizio di Azure
Usare il formato seguente per impostare la configurazione di Spark del cluster:
spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<directory-id>/oauth2/token
È anche possibile usare spark.conf.set nei Notebook, come illustrato nell'esempio seguente:
service_credential = dbutils.secrets.get(scope="<secret-scope>",key="<service-credential-key>")
spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "OAuth")
spark.conf.set("fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
spark.conf.set("fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net", "<application-id>")
spark.conf.set("fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net", service_credential)
spark.conf.set("fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
Sostituzione
-
<secret-scope>con il nome dell'ambito del segreto Databricks. -
<service-credential-key>con il nome della chiave contenente il segreto del client. -
<storage-account>con il nome dell'account di archiviazione Azure. -
<application-id>con l’ID applicazione (client) dell'applicazione Microsoft Entra ID. -
<directory-id>con l’ID directory (tenant) per l'applicazione Microsoft Entra ID.
Token di firma di accesso condiviso
È possibile configurare i token SAS per più account di archiviazione nella stessa sessione Spark.
spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "SAS")
spark.conf.set("fs.azure.sas.token.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.sas.FixedSASTokenProvider")
spark.conf.set("fs.azure.sas.fixed.token.<storage-account>.dfs.core.windows.net", dbutils.secrets.get(scope="<scope>", key="<sas-token-key>"))
Sostituzione
-
<storage-account>con il nome dell'account di archiviazione Azure. -
<scope>con il nome dell'ambito segreto di Azure Databricks. -
<sas-token-key>con il nome della chiave contenente il token SAS di Archiviazione di Azure.
Chiave dell'account
spark.conf.set(
"fs.azure.account.key.<storage-account>.dfs.core.windows.net",
dbutils.secrets.get(scope="<scope>", key="<storage-account-access-key>"))
Sostituzione
-
<storage-account>con il nome dell'account di archiviazione di Azure. -
<scope>con il nome dell'ambito del segreto di Azure Databricks. -
<storage-account-access-key>con il nome della chiave contenente la chiave di accesso dell'account di archiviazione di Azure.
Passaggio 4: Accedere all'archiviazione Azure
Dopo aver configurato correttamente le credenziali per accedere al contenitore di archiviazione di Azure, è possibile interagire con le risorse nell'account di archiviazione usando gli URI. Databricks consiglia di usare il driver abfss per una maggiore sicurezza.
spark.read.load("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to-data>")
dbutils.fs.ls("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to-data>")
CREATE TABLE <database-name>.<table-name>;
COPY INTO <database-name>.<table-name>
FROM 'abfss://container@storageAccount.dfs.core.windows.net/path/to/folder'
FILEFORMAT = CSV
COPY_OPTIONS ('mergeSchema' = 'true');
Notebook di esempio
Notebook dei principali del servizio di ADLS OAuth 2.0 con Microsoft Entra ID (in precedenza Azure Active Directory)
Prendi notebook
Problemi noti di Azure Data Lake Storage
Se si tenta di accedere a un contenitore di archiviazione creato tramite il portale di Azure, è possibile che venga visualizzato l'errore seguente:
StatusCode=404
StatusDescription=The specified filesystem does not exist.
ErrorCode=FilesystemNotFound
ErrorMessage=The specified filesystem does not exist.
Quando uno spazio dei nomi gerarchico è abilitato, non è necessario creare contenitori tramite il portale di Azure. Se viene visualizzato questo problema, eliminare il contenitore BLOB tramite il portale di Azure. Dopo alcuni minuti, è possibile accedere al contenitore. In alternativa, è possibile modificare l'URI abfss per usare un contenitore diverso, purché questo contenitore non venga creato tramite il portale di Azure.
Vedere Problemi noti relativi ad Azure Data Lake Storage nella documentazione Microsoft.
Modelli deprecati per l'archiviazione e l'accesso ai dati da Azure Databricks
Di seguito sono riportati i criteri di archiviazione deprecati:
- Databricks non consiglia più di montare percorsi di dati esterni nel file system di Databricks. Vedere Montaggio dell'archiviazione di oggetti cloud in Azure Databricks.
- Databricks non consiglia più di usare il pass-through delle credenziali con Azure Data Lake Storage. Vedi Accedere ad Azure Data Lake Storage tramite il pass-through delle credenziali di Microsoft Entra ID (legacy).