Creare una posizione esterna per connettere l'archiviazione cloud ad Azure Databricks
Questo articolo descrive come configurare un percorso esterno in Unity Catalog per connettere l'archiviazione cloud ad Azure Databricks.
Le posizioni esterne associano le credenziali di archiviazione del catalogo Unity ai contenitori di archiviazione di oggetti cloud. I percorsi esterni vengono usati per definire percorsi di archiviazione gestiti per cataloghi e schemi e per definire posizioni per tabelle esterne e volumi esterni.
È possibile creare un percorso esterno che faccia riferimento all'archiviazione in un contenitore di archiviazione di Azure Data Lake Storage Gen2 o in un bucket Cloudflare R2.
È possibile creare una posizione esterna usando Esplora cataloghi, l'interfaccia della riga di comando di Databricks, i comandi SQL in un notebook o una query SQL di Databricks o Terraform.
Per altre informazioni sugli usi di posizioni esterne e sulla relazione tra le credenziali di archiviazione e le posizioni esterne, vedere Gestire l'accesso all'archiviazione cloud tramite Il catalogo unity.
Prima di iniziare
Prerequisiti:
È necessario creare il contenitore di archiviazione di Azure Data Lake Storage Gen2 o il bucket Cloudflare R2 che si vuole usare come posizione esterna prima di creare l'oggetto percorso esterno in Azure Databricks.
Gli account di archiviazione di Azure Data Lake Storage Gen2 usati come posizioni esterne devono avere uno spazio dei nomi gerarchico.
È necessario avere una credenziale di archiviazione definita in Azure Databricks che consente l'accesso al percorso della posizione di archiviazione cloud. Si veda Creare credenziali di archiviazione per la connessione ad Azure Data Lake Storage Gen2 e Creare credenziali di archiviazione per la connessione a Cloudflare R2.
Requisiti di autorizzazione:
- È necessario avere il
CREATE EXTERNAL LOCATION
privilegio sia per il metastore che per le credenziali di archiviazione a cui si fa riferimento nel percorso esterno. Per impostazione predefinita, gli amministratori metastore hannoCREATE EXTERNAL LOCATION
nel metastore. - Se si sta creando una posizione esterna per la posizione di archiviazione radice del DBFS, il sistema può creare le credenziali di archiviazione per te, ma è necessario essere un amministratore dell'area di lavoro. Per informazioni dettagliate, vedere Creare una posizione esterna per i dati nella radice DBFS
Creare manualmente una posizione esterna usando Esplora cataloghi
È possibile creare manualmente una posizione esterna usando Esplora cataloghi.
Autorizzazioni e prerequisiti: vedere Prima di iniziare.
Per creare il percorso esterno:
Accedere a un'area di lavoro collegata al metastore.
Nella barra laterale fare clic su Catalogo.
Nella pagina Accesso rapido fare clic sul >esterni, passare alla scheda Percorsi esterni e fare clic su Crea percorso.
Immettere un nome percorso esterno.
In URLimmettere o selezionare il percorso della posizione esterna. Sono disponibili tre opzioni:
Per copiare il percorso del contenitore da un esistente punto di montaggio DBFS , fai clic su Copia da DBFS.
Per copiare il sottopercorso nel percorso di archiviazione radice DBFS, fare clic su Copia da DBFS e selezionare Copia dalla radice DBFS. Se sei un amministratore dell'area di lavoro, il sistema crea anche le credenziali di archiviazione per te.
Vedere Creare un percorso esterno per i dati nella radice DBFS.
Se non si esegue la copia da un punto di montaggio o da una radice DBFS esistente, usare il campo URL
per immettere il percorso del contenitore di archiviazione o del bucket R2 da usare come percorso esterno. Ad esempio,
abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
or2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.
Selezionare le credenziali di archiviazione che concedono l'accesso alla posizione esterna.
Nota
Se la posizione esterna è per la radice DBFS e si è un amministratore dell'area di lavoro, il sistema crea automaticamente le credenziali di archiviazione e non è necessario selezionare una.
Se non si dispone di credenziali di archiviazione, è possibile crearne una:
Nell'elenco a discesa credenziali di archiviazione, selezionare + Crea nuove credenziali di archiviazione.
Nell'elenco a discesa denominato "Tipo di Credenziale", selezionare il tipo di credenziale che si desidera utilizzare nell'oggetto di credenziali di archiviazione: Identità Gestita di Azure o Token API di Cloudflare.
Per Identità gestita di Azure, inserire l'ID del connettore di accesso e (facoltativamente) l'identità gestita assegnata dall'utente che permette l'accesso al percorso di archiviazione. Per i token API di Cloudflare, immettere l'account Cloudflare, l'ID chiave di accesso e la chiave segreta di accesso.
Per altre informazioni, vedere Creare credenziali di archiviazione per la connessione ad Azure Data Lake Storage Gen2 o Creare credenziali di archiviazione per la connessione a Cloudflare R2.
(Facoltativo) Se si desidera che gli utenti abbiano accesso in sola lettura alla posizione esterna, fare clic su Opzioni avanzate e selezionare 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.
Cliccare 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 (Facoltativo) Assegnare una posizione esterna a aree di lavoro specifiche.
Passare alla scheda Autorizzazioni per concedere l'autorizzazione per l'uso del percorso esterno.
Per consentire a chiunque di usare la posizione esterna, è necessario concedere le autorizzazioni:
- Per usare il percorso esterno per aggiungere un percorso di archiviazione gestito al metastore, al catalogo o allo schema, concedere il
CREATE MANAGED LOCATION
privilegio. - Per creare tabelle o volumi esterni, concedere
CREATE EXTERNAL TABLE
oCREATE EXTERNAL VOLUME
.
- Fare clic su Concedi.
- Nella
<external location>
selezionare utenti, gruppi o entità servizio nel campo Entità e selezionare il privilegio che si vuole concedere. - Fare clic su Concedi.
- Per usare il percorso esterno per aggiungere un percorso di archiviazione gestito al metastore, al catalogo o allo schema, concedere il
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 segnaposto. Per le autorizzazioni e i prerequisiti necessari, vedere Prima di iniziare.
<location-name>
: nome per la posizione esterna. Selocation_name
include caratteri speciali, ad esempio trattini (-
), deve essere racchiuso da backtick (` `
). Vedere Nomi.<bucket-path>
: percorso nel tenant cloud a cui questa posizione esterna concede l'accesso. Ad esempio,abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
or2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.<storage-credential-name>
: nome delle credenziali di archiviazione che autorizza la lettura e la scrittura nel percorso del contenitore di archiviazione o del bucket. Se il nome delle credenziali di archiviazione include caratteri speciali, ad esempio trattini (-
), deve essere racchiuso da backtick (` `
).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
Se si vuole limitare l'accesso alla posizione esterna a aree di lavoro specifiche nell'account, note anche come associazione dell'area di lavoro o isolamento della posizione esterna, vedere (Facoltativo) Assegnare una posizione esterna a aree di lavoro specifiche.
(Facoltativo) Assegnare una posizione esterna a aree di lavoro specifiche
Importante
Questa funzionalità è disponibile in anteprima pubblica.
Per impostazione predefinita, un percorso esterno è accessibile da tutte le aree di lavoro nel metastore. Ciò significa che se a un utente è stato concesso un privilegio (ad esempio READ FILES
) in tale posizione esterna, può esercitare tale privilegio da qualsiasi area di lavoro collegata al metastore. Se si usano aree di lavoro per isolare l'accesso ai dati utente, è possibile consentire l'accesso a una posizione esterna solo da aree di lavoro specifiche. Questa funzionalità è nota come associazione dell'area di lavoro o isolamento della posizione esterna.
I casi d'uso tipici per l'associazione di una posizione esterna a aree di lavoro specifiche includono:
- Garantire che i data engineer che dispongono del
CREATE EXTERNAL TABLE
privilegio in una posizione esterna contenente dati di produzione possano creare tabelle esterne in tale posizione solo in un'area di lavoro di produzione. - Assicurarsi che i data engineer che dispongono del
READ FILES
privilegio in una posizione esterna che contiene dati sensibili possano usare solo aree di lavoro specifiche per accedere a tali dati.
Per altre informazioni su come limitare altri tipi di accesso ai dati in base all'area di lavoro, vedere Limitare l'accesso al catalogo a aree di lavoro specifiche.
Importante
Le associazioni dell'area di lavoro vengono a cui si fa riferimento quando vengono esercitati privilegi rispetto alla posizione esterna. Ad esempio, se un utente crea una tabella esterna eseguendo l'istruzione CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
dall'area di lavoro, vengono eseguiti i controlli di associazione dell'area myWorkspace
di lavoro seguenti oltre ai normali controlli dei privilegi utente:
- La posizione esterna è
'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
associata amyWorkspace
? - Il catalogo
myCat
è associato a con livellomyWorkspace
diRead & Write
accesso?
Se la posizione esterna viene successivamente non associato da myWorkspace
, la tabella esterna continua a funzionare.
Questa funzionalità consente anche di popolare un catalogo da un'area di lavoro centrale e di renderlo disponibile per altre aree di lavoro usando associazioni di catalogo, senza dover rendere disponibile anche la posizione esterna in tali altre aree di lavoro.
Associare una posizione esterna a una o più aree di lavoro
Per assegnare una posizione esterna a aree di lavoro specifiche, è possibile usare Esplora cataloghi o l'interfaccia della riga di comando di Databricks.
Autorizzazioni necessarie: amministratore metastore, proprietario dell'ubicazione esterna o MANAGE
sull'ubicazione esterna.
Nota
Gli amministratori metastore possono visualizzare tutte le posizioni esterne in un metastore usando Esplora cataloghi e i proprietari di posizioni esterne possono visualizzare tutte le posizioni esterne di cui sono proprietari in un metastore, indipendentemente dal fatto che la posizione esterna sia assegnata all'area di lavoro corrente. I percorsi esterni non assegnati all'area di lavoro vengono visualizzati in grigio.
Esplora cataloghi
Accedere a un'area di lavoro collegata al metastore.
Nella barra laterale fare clic su Catalogo.
Nella pagina Accesso rapido fare clic sul >esterni per passare alla scheda Percorsi esterni.
Selezionare il percorso esterno e passare alla scheda Aree di lavoro .
Nella scheda Aree di lavoro deselezionare la casella di controllo Tutte le aree di lavoro hanno accesso.
Se la posizione esterna è già associata a una o più aree di lavoro, questa casella di controllo è già deselezionata.
Fare clic su Assegna alle aree di lavoro e immettere o trovare le aree di lavoro da assegnare.
Per revocare l'accesso, passare alla scheda Aree di lavoro , selezionare l'area di lavoro e fare clic su Revoca. Per consentire l'accesso da tutte le aree di lavoro, selezionare la casella di controllo Tutte le aree di lavoro con accesso .
CLI
Esistono due gruppi di comandi dell'interfaccia della riga di comando di Databricks e due passaggi necessari per assegnare una posizione esterna a un'area di lavoro.
Negli esempi seguenti sostituire <profile-name>
con il nome del profilo di configurazione dell'autenticazione di Azure Databricks. Deve includere il valore di un token di accesso personale, oltre al nome dell'istanza dell'area di lavoro e all'ID dell'area di lavoro in cui è stato generato il token di accesso personale. Consultare Autenticazione con token di accesso personale di Azure Databricks.
Usare il
external-locations
comando del gruppo diupdate
comandi per impostare la posizioneisolation mode
esterna suISOLATED
:databricks external-locations update <my-location> \ --isolation-mode ISOLATED \ --profile <profile-name>
L'impostazione predefinita
isolation-mode
èOPEN
tutte le aree di lavoro collegate al metastore.Usare il
workspace-bindings
comando del gruppo diupdate-bindings
comandi per assegnare le aree di lavoro alla posizione esterna:databricks workspace-bindings update-bindings external-location <my-location> \ --json '{ "add": [{"workspace_id": <workspace-id>}...], "remove": [{"workspace_id": <workspace-id>}...] }' --profile <profile-name>
Usare le
"add"
proprietà e"remove"
per aggiungere o rimuovere associazioni dell'area di lavoro.Nota
L'associazione di sola lettura (
BINDING_TYPE_READ_ONLY
) non è disponibile per i percorsi esterni. Di conseguenza, non esiste alcun motivo per impostarebinding_type
per l'associazione di percorsi esterni.
Per elencare tutte le assegnazioni dell'area di lavoro per una posizione esterna, usare il workspace-bindings
comando del gruppo di get-bindings
comandi:
databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>
Vedere anche Associazioni di aree di lavoro nelle informazioni di riferimento sull'API REST.
Annullare l'associazione di una posizione esterna da un'area di lavoro
Le istruzioni per revocare l'accesso all'area di lavoro a una posizione esterna tramite Esplora cataloghi o il gruppo di comandi dell'interfaccia della workspace-bindings
riga di comando sono incluse in Associare una posizione esterna a una o più aree di lavoro.
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. Vedere Specificare un percorso di archiviazione gestito nel catalogo unity.
- Definire tabelle esterne usando percorsi esterni. Vedere Usare tabelle esterne.
- Definire volumi esterni usando percorsi esterni. Vedere Che cosa sono i volumi del catalogo Unity?.