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.
Questa pagina descrive come connettersi a una posizione esterna Azure Data Lake Storage Gen2 (ADLS Gen2). Dopo aver completato questa connessione, è possibile gestire l'accesso a questi oggetti ADLS Gen2 usando Unity Catalog.
Per connettersi a un percorso di un container ADLS Gen2, sono necessari due oggetti proteggibili di Unity Catalog. Il primo è una credenziale storage, che specifica un'identità gestita Azure che consente l'accesso al contenitore ADLS Gen2. Questa credenziale di archiviazione è necessaria per il secondo oggetto obbligatorio: una posizione esterna, che definisce il percorso del percorso di archiviazione di ADLS Gen2 e le credenziali necessarie per accedere a tale posizione.
Requirements
In Azure Databricks:
- Area di lavoro di Azure Databricks abilitata per Unity Catalog.
-
CREATE STORAGE CREDENTIALprivilegio sul metastore di Unity Catalog associato all'area di lavoro. Gli amministratori dell'account e gli amministratori del metastore hanno questo privilegio per impostazione predefinita. -
CREATE EXTERNAL LOCATIONprivilegio sia sul metastore di Unity Catalog sia sulla credenziale di archiviazione a cui si riferisce la posizione esterna. Per impostazione predefinita, gli amministratori metastore e gli amministratori dell'area di lavoro hanno questo privilegio.
Nel tuo account Azure:
Un account di archiviazione e un contenitore ADLS Gen2. Per evitare addebiti in uscita, deve trovarsi nella stessa area dell'area di lavoro da cui si vuole accedere ai dati.
I percorsi di posizione esterna devono contenere solo caratteri ASCII standard (lettere , , cifre
A–Ze simboli comuni comea–z, ,0–9/)._-Gli account di archiviazione di Azure Data Lake Storage usati come posizioni esterne devono avere uno spazio dei nomi gerarchico.
Non è possibile usare i contenitori di archiviazione di Azure con criteri di immutabilità (WORM - Write Once, Read Many) abilitati come percorsi esterni. Il Catalogo Unity richiede autorizzazioni DELETE per i contenitori di archiviazione, che i criteri di immutabilità impediscono. Per altre informazioni sui criteri di immutabilità, vedere Configurare i criteri di immutabilità per i contenitori.
Se l'accesso alla rete pubblica è disabilitato nell'account di archiviazione, è necessario abilitare l'opzione Consenti ai servizi attendibili di Azure di consentire ad Azure Databricks di connettersi all'account di archiviazione. È possibile configurare questa impostazione usando il interfaccia della riga di comando di Azure:
# Check current network rule set az storage account show --name <storage_account_name> --resource-group <resource_group_name> --query "networkRuleSet" # Set bypass for Azure Services az storage account update \ --name <storage_account_name> \ --resource-group <resource_group_name> \ --bypass AzureServices
Autorizzazione per creare un connettore di accesso per Azure Databricks nella sottoscrizione Azure. A tale scopo, è necessario essere un
ContributoroOwnerdi un gruppo di risorse Azure.Autorizzazione per modificare i criteri di accesso per l'account di archiviazione. Per eseguire questa operazione, devi essere il proprietario o un utente con il ruolo Azure RBAC
User Access Administratornel tuo account di archiviazione.
Creare credenziali di archiviazione che accedono ad ADLS Gen2
Per creare credenziali di archiviazione per l'accesso a un contenitore ADLS Gen2, creare prima un connettore di accesso per Azure Databricks con un'identità gestita, quindi concedere all'identità gestita l'accesso all'account di archiviazione.
Passaggio 1: Creare un connettore di accesso per Azure Databricks
Un connettore di accesso per Azure Databricks è una risorsa Azure di prima parte che consente di connettere le identità gestite a un account Azure Databricks. Ogni connettore di accesso per Azure Databricks può includere un'identità gestita assegnata dal sistema, una o più identità gestite assegnate dall'utente o entrambe.
Accedere al portale di Azure come collaboratore o proprietario di un gruppo di risorse.
Fare clic su + Crea o Crea una risorsa.
Effettuare una ricerca per Access Connector per Azure Databricks e selezionarlo.
Clicca su Crea.
Nella scheda Informazioni di base accettare, selezionare o immettere i valori per i campi seguenti:
- Subscription: si tratta della sottoscrizione Azure in cui verrà creato il connettore di accesso. Il valore predefinito è la sottoscrizione Azure in uso. Può trattarsi di qualsiasi sottoscrizione nel tenant.
- Gruppo di risorse: si tratta del gruppo di risorse Azure in cui verrà creato il connettore di accesso.
- Nome: immettere un nome che indica lo scopo del connettore.
- Area: deve essere la stessa area dell'account di archiviazione a cui ci si connetterà.
Fare clic su Avanti, immettere i tag e fare clic su Avanti.
Nella scheda "Identità gestite" di, creare le identità gestite come segue:
- Per usare un'identità gestita assegnata dal sistema, impostare Stato su Sì.
- Per aggiungere identità gestite assegnate dall'utente, fare clic su + Aggiungi e selezionare una o più identità gestite assegnate dall'utente.
Clicca su Rivedi e crea.
Esaminare le impostazioni di configurazione e quindi fare clic su Crea.
Una volta completata la distribuzione, fare clic su Vai alla risorsa.
Prendere nota dell'ID risorsa.
L'ID risorsa è nel formato:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
Passaggio 2: Concedere all'identità gestita l'accesso all'account di archiviazione
Per concedere le autorizzazioni in questo passaggio, è necessario avere il ruolo Azure RBAC Owner o User Access Administrator nel tuo account di archiviazione.
Quando si concede all'identità gestita l'accesso all'account di archiviazione e al contenitore, sono disponibili le opzioni seguenti:
- Concedere l'accesso in lettura e scrittura all'intero account di archiviazione usando il ruolo
Storage Blob Data Contributor. - Concedere un ruolo più limitato all'account di archiviazione usando il ruolo
Storage Blob Delegatore l'accesso in lettura e scrittura a un contenitore specifico usando il ruoloStorage Blob Data Contributor.
Le istruzioni seguenti presuppongono che si assegni il ruolo Storage Blob Data Contributor sull'account di archiviazione, ma è possibile sostituire le altre opzioni in base alle esigenze.
- Accedi al tuo account Azure Data Lake Storage.
- Passare a Controllo di accesso (IAM), fare clic su + Aggiungi e selezionare Aggiungi assegnazione di ruolo.
- Selezionare il ruolo Collaboratore ai dati dei BLOB di archiviazione e fare clic su Avanti.
- In Assegna accesso a, selezionare Identità gestita.
- Fare clic su +Seleziona membri e selezionare Connettore di accesso per Azure Databricks o Identità gestita assegnata dall'utente.
- Cercare il nome del connettore o l'identità assegnata dall'utente, selezionarlo e fare clic su Rivedi e assegna.
Passaggio 3: Concedere all'identità gestita l'accesso agli eventi di file
La concessione dell'accesso all'identità gestita agli eventi di file consente ad Azure Databricks di sottoscrivere le notifiche degli eventi di file generate dai provider di servizi cloud. In questo modo l'elaborazione dei file risulta più efficiente. Per altre informazioni, vedere Configurare gli eventi di file per un percorso esterno.
Per concedere le autorizzazioni in questo passaggio, devi avere il ruolo RBAC di Azure "Proprietario" o "Amministratore Accesso Utenti" sul tuo account di archiviazione.
- Accedi al tuo account Azure Data Lake Storage.
- Passare a Controllo di accesso (IAM), fare clic su + Aggiungi e selezionare Aggiungi assegnazione di ruolo.
- Selezionare il ruolo Collaboratore dati della coda di archiviazione e fare clic su Avanti.
- In Assegna accesso a, selezionare Identità gestita.
- Fare clic su +Seleziona membri e selezionare Connettore di accesso per Azure Databricks o Identità gestita assegnata dall'utente.
- Cercare il nome del connettore o l'identità assegnata dall'utente, selezionarlo e fare clic su Rivedi e assegna.
Passaggio 4: Concedi ad Azure Databricks l'accesso per configurare gli eventi dei file per conto dell'utente
Annotazioni
Se non si concede l'accesso ad Azure Databricks per configurare gli eventi di file per conto dell'utente, è necessario configurare manualmente gli eventi di file per ogni posizione. Ignorare questa configurazione manuale limita l'accesso a diverse funzionalità di Databricks. Per altre informazioni sugli eventi di file, vedere Configurare gli eventi di file per un percorso esterno.
Questo passaggio consente ad Azure Databricks di configurare automaticamente gli eventi di file. Per concedere le autorizzazioni in questo passaggio, è necessario avere i ruoli Azure RBAC di Proprietario o Amministratore accesso utenti sulla propria identità gestita e sul gruppo di risorse in cui si trova l'account Azure Data Lake Storage.
Seguire le istruzioni in Passaggio 3: Concedere all'identità gestita l'accesso agli eventi relativi ai file e assegnare il ruolo Storage Account Contributor alla propria identità gestita.
Questo ruolo non sostituisce i ruoli concessi nei passaggi 2 o 3 in questa pagina, ma è in aggiunta a essi.
Passare al gruppo di risorse di Azure in cui si trova l'account azure Data Lake Storage.
Passare a Controllo di accesso (IAM), fare clic su + Aggiungi e selezionare Aggiungi assegnazione di ruolo.
Selezionare il ruolo Collaboratore EventGrid EventSubscription e fare clic su Avanti.
In Assegna accesso a, selezionare Identità gestita.
Fare clic su +Seleziona membri e selezionare Connettore di accesso per Azure Databricks o Identità gestita assegnata dall'utente.
Cercare il nome del connettore o l'identità assegnata dall'utente, selezionarlo e fare clic su Rivedi e assegna.
Passaggio 5: Creare le credenziali di archiviazione in Databricks
Dopo aver creato un connettore di accesso con un'identità gestita e aver concesso le autorizzazioni per l'account di archiviazione, è possibile creare le credenziali di archiviazione in Azure Databricks.
Accedere all'area di lavoro di Azure Databricks abilitata per Unity Catalog come utente con il privilegio
CREATE STORAGE CREDENTIALnel metastore.Nella barra laterale fare clic
Catalogo.
Fare clic
e quindi su Crea credenziali.Selezionare un tipo di credenziale di Azure Managed Identity.
Immettere un nome credenziali di archiviazione e un commento facoltativo.
Immettere l'ID connettore di accesso (ID risorsa annotato nel passaggio 1).
L'ID risorsa è nel formato:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>(Facoltativo) Se il connettore di accesso è stato creato usando un'identità gestita assegnata dall'utente, immettere l'ID identità gestita (ID risorsa dell'identità gestita).
(Facoltativo) Se si vuole che gli utenti abbiano accesso in sola lettura alle posizioni esterne che usano questa credenziale di archiviazione, fare clic su Opzioni avanzate e selezionare Limita all'uso di sola lettura. Per altre informazioni, vedere Contrassegnare le credenziali di archiviazione come di sola lettura.
Clicca su Crea.
(Facoltativo) Associare le credenziali di archiviazione a aree di lavoro specifiche.
Per impostazione predefinita, qualsiasi utente con privilegi può usare le credenziali di archiviazione in qualsiasi area di lavoro collegata al metastore. Se si vuole consentire l'accesso solo da aree di lavoro specifiche, passare alla scheda Aree di lavoro e assegnare le aree di lavoro. Vedere Assegnare credenziali di archiviazione a aree di lavoro specifiche.
È ora possibile creare un percorso esterno che faccia riferimento alle credenziali di archiviazione.
Creare una posizione esterna per un contenitore di ADLS Gen2
Questa sezione descrive come creare una posizione esterna usando Esplora cataloghi o SQL. Si presuppone che si disponga già di credenziali di archiviazione che consentano l'accesso al contenitore ADLS Gen2. Se non si dispone di credenziali di archiviazione, seguire la procedura descritta in Creare credenziali di archiviazione che accedono ad ADLS Gen2.
Opzione 1: Creare manualmente una posizione esterna usando Esplora cataloghi
È possibile creare manualmente una posizione esterna usando Esplora cataloghi.
Per creare il percorso esterno:
Accedi a un'area di lavoro collegata al metastore.
Nella barra laterale fare clic
Catalogo.
Fare clic
e quindi su Crea una posizione esterna.Immettere un nome di una posizione esterna.
In Tipo di archiviazione selezionare Azure.
In URL immettere il percorso del contenitore ADLS Gen2. Ad esempio:
abfss://mycontainer@mystorageaccount.dfs.core.windows.net/<path>.In Credenziali di archiviazione selezionare le credenziali di archiviazione che concedono l'accesso alla posizione esterna.
(Facoltativo) Se si vuole che gli utenti abbiano accesso in sola lettura alla posizione esterna, fare clic su Opzioni avanzate e selezionare Limita all'uso di sola lettura. Per altre informazioni, vedere Contrassegnare una posizione esterna come di sola lettura.
(Facoltativo) Se la destinazione esterna è destinata a un catalogo metastore Hive federato, fare clic su Opzioni avanzate e abilitare la modalità di fallback.
Consultare Abilitare la modalità di fallback nei percorsi esterni.
(Facoltativo) Per abilitare la possibilità di iscriversi alle notifiche di modifica nel percorso esterno, fare clic su Opzioni avanzate e selezionare Abilita notifiche di eventi sui file.
Per informazioni dettagliate, vedere Configurare gli eventi di file per una posizione esterna.
Clicca su Crea.
(Facoltativo) Associare la posizione esterna a aree di lavoro specifiche.
Per impostazione predefinita, qualsiasi utente con privilegi può usare la posizione esterna in qualsiasi area di lavoro collegata al metastore. Se si vuole consentire l'accesso solo da aree di lavoro specifiche, passare alla scheda Aree di lavoro e assegnare le aree di lavoro. Vedere Assegnare una posizione esterna a aree di lavoro specifiche.
Passare alla scheda Autorizzazioni per concedere l'autorizzazione per l'uso della posizione esterna.
Per consentire a chiunque di usare la posizione esterna, è necessario concedere le autorizzazioni:
- Per utilizzare l'ubicazione esterna per aggiungere un'ubicazione di archiviazione gestita al metastore, al catalogo o allo schema, concedere il
CREATE MANAGED LOCATIONprivilegio. - Per creare tabelle o volumi esterni, concedere
CREATE EXTERNAL TABLEoCREATE EXTERNAL VOLUME.
Segui questi passaggi:
- Fare clic su "Concedi".
- Nella finestra di dialogo Grant on
<external location>, selezionare utenti, gruppi o entità servizio nel campo Principals e selezionare il privilegio che si vuole concedere. - Fare clic su "Concedi".
- Per utilizzare l'ubicazione esterna per aggiungere un'ubicazione di archiviazione gestita al metastore, al catalogo o allo schema, concedere il
Opzione 2: Creare un percorso esterno usando SQL
Per creare un percorso esterno usando SQL, eseguire il comando seguente in un notebook o nell'editor di query SQL. Sostituire i valori dei segnaposto. Per le autorizzazioni e i prerequisiti necessari, vedere Requisiti.
-
<location-name>: Un nome per la posizione esterna. Selocation_nameinclude caratteri speciali, ad esempio trattini (-), deve essere racchiuso da backticks (` `). Consulta Nomi. -
<container-path>: Il percorso nel tenant cloud a cui questa posizione esterna consente l'accesso. Ad esempio:abfss://mycontainer@mystorageaccount.dfs.core.windows.net/. -
<storage-credential-name>: nome delle credenziali di archiviazione che autorizza la lettura e la scrittura nel contenitore. Se il nome delle credenziali di archiviazione include caratteri speciali, ad esempio trattini (-), deve essere racchiuso da apici inversi (` `).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<container-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
Se vuoi limitare l'accesso alla località esterna a specifiche aree di lavoro nel tuo account, operazione nota anche come associazione alle aree di lavoro o isolamento della località esterna, consulta Assegnare una località esterna a specifiche aree di lavoro.
Verificare la connessione
Per verificare di aver creato correttamente il percorso esterno, provare a leggere un file dal percorso esterno. Si supponga, ad esempio, di avere un percorso abfss://mycontainer@mystorageaccount.dfs.core.windows.net/ esterno contenente un file CSV denominato example.csv. Per leggere dal abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csv file, seguire questa procedura:
Nella barra laterale fare clic
Area di lavoro.
Fare clic su Crea, quindi selezionare Notebook.
Eseguire il frammento di codice Python seguente:
display(dbutils.fs.ls('abfss://mycontainer@mystorageaccount.dfs.core.windows.net/'))Visualizza un elenco di percorsi dei file nella posizione esterna. In questo esempio il
abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csvfile viene visualizzato nell'output.Per leggere un file specifico nella posizione esterna, eseguire il seguente frammento di codice Python:
spark.read.format("csv") \ .option("header", "true") \ .option("delimiter", ";") \ .load('abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csv') \ .display()Vengono visualizzati i dati nel
abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csvfile.
Passaggi successivi
- Concedere ad altri utenti l'autorizzazione per l'uso di percorsi esterni. Vedere Gestire le posizioni esterne.
- Definire percorsi di archiviazione gestiti usando percorsi esterni. Consultare Specificare una posizione di archiviazione gestita in Unity Catalog.
- Definire tabelle esterne usando posizioni esterne. Consultare Lavorare con tabelle esterne.
- Definire volumi esterni utilizzando percorsi di accesso esterni. Consulta Che cosa sono i volumi di Unity Catalog?.