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:

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 hanno CREATE EXTERNAL LOCATION nel metastore.

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:

  1. Accedere a un'area di lavoro collegata al metastore.

  2. Nella barra laterale fare clic su Icona catalogo Catalogo.

  3. Nella pagina Accesso rapido fare clic sul pulsante Dati >esterni, passare alla scheda Percorsi esterni e fare clic su Crea percorso.

  4. Immettere un nome percorso esterno.

  5. Facoltativamente, copiare il percorso del contenitore da un punto di montaggio esistente (solo contenitori di Azure Data Lake Storage Gen2).

  6. Se non si esegue la copia da un punto di montaggio esistente, usare il campo URL per immettere il percorso del contenitore di archiviazione o del bucket R2 che si vuole usare come percorso esterno.

    Ad esempio, abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> o r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  7. Selezionare le credenziali di archiviazione che concedono l'accesso alla posizione esterna.

  8. (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.

  9. Cliccare su Crea.

  10. (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.

  11. Concedere l'autorizzazione per usare il 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 o CREATE EXTERNAL VOLUME.

    Per usare Esplora cataloghi per concedere le autorizzazioni:

    1. Fare clic sul nome della posizione esterna per aprire il riquadro dei dettagli.
    2. Nella scheda Autorizzazioni fare clic su Concedi.
    3. Nella finestra di dialogo Concedi in <external location>selezionare utenti, gruppi o entità servizio nel campo Entità e selezionare il privilegio che si vuole concedere.
    4. Fare clic su Concedi.

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. Se location_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> o r2://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 a myWorkspace?
  • Il catalogo myCat è associato a con livello Read & Writedi myWorkspace 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 o proprietario della posizione 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

  1. Accedere a un'area di lavoro collegata al metastore.

  2. Nella barra laterale fare clic su Icona catalogo Catalogo.

  3. Nella pagina Accesso rapido fare clic sul pulsante Dati >esterni per passare alla scheda Percorsi esterni.

  4. Selezionare il percorso esterno e passare alla scheda Aree di lavoro .

  5. 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.

  6. 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.

  1. Usare il external-locations comando del gruppo di update comandi per impostare la posizione isolation mode esterna su ISOLATED:

    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.

  2. Usare il workspace-bindings comando del gruppo di update-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 impostare binding_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