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 spiega come creare e gestire i destinatari in Delta Sharing, quando questi si trovano in un'area di lavoro di Databricks abilitata per Unity Catalog.
Un destinatario è l'oggetto denominato che rappresenta l'identità di un utente o di un gruppo di utenti che utilizzano dati condivisi. La modalità di creazione dei destinatari varia a seconda che il destinatario abbia o meno accesso a un'area di lavoro di Databricks abilitata per Unity Catalog:
Destinatari con accesso a un'area di lavoro Databricks abilitata a Unity Catalog:
È possibile creare un oggetto destinatario con una connessione sicura gestita da Databricks. Questa modalità di condivisione è denominata condivisione da Databricks a Databricks ed è documentata in questa pagina.
Destinatari senza accesso a un'area di lavoro Databricks con supporto per Unity Catalog:
È necessario usare la condivisione aperta, con una connessione sicura gestita usando l'autenticazione basata su token (token di connessione o federazione OAuth). Per informazioni sulla creazione di destinatari di condivisione aperta, vedere Usare la federazione OIDC (Open ID Connect) per abilitare l'autenticazione per le azioni di Delta Sharing (condivisione aperta) e Creare un oggetto destinatario per gli utenti non-Databricks che usano token di bearer (condivisione aperta).
Per ulteriori informazioni su queste due modalità di condivisione e su quando scegliere quale, consultare Condivisione aperta rispetto a condivisione Databricks-a-Databricks.
Requisiti
Per creare un destinatario:
- È necessario essere un amministratore del metastore o avere il
CREATE RECIPIENTprivilegio per il metastore del catalogo Unity in cui sono registrati i dati da condividere. - È necessario creare il destinatario usando un'area di lavoro di Azure Databricks con il metastore di Unity Catalog collegato.
- Se si usa un notebook di Databricks per creare il destinatario, il calcolo deve usare Databricks Runtime 11.3 LTS o versione successiva e la modalità di accesso standard o dedicata (in precedenza modalità di accesso condiviso e singolo utente).
Per altre operazioni di gestione dei destinatari, ad esempio visualizzazione, eliminazione, aggiornamento e concessione dell'accesso dei destinatari a una condivisione, vedere i requisiti delle autorizzazioni elencati nelle sezioni specifiche dell'operazione di questo articolo.
Creare un oggetto destinatario per gli utenti che hanno accesso a Databricks (condivisione da Databricks a Databricks)
Se il destinatario dei dati ha accesso a un'area di lavoro di Databricks abilitata per Unity Catalog, è possibile creare un oggetto destinatario con un tipo di autenticazione DATABRICKS.
Un oggetto destinatario con il tipo di autenticazione di DATABRICKS rappresenta un destinatario di dati in un particolare metastore del catalogo Unity, identificato nella definizione dell'oggetto destinatario da una stringa di identificatore di condivisione costituita dal cloud, dall'area e dall'UUID del metastore. È possibile accedere ai dati condivisi con questo destinatario solo in tale metastore.
Passaggio 1: Richiedere l'identificatore di condivisione del destinatario
Chiedere a un utente destinatario di inviare l'identificatore di condivisione per il metastore del catalogo Unity collegato alle aree di lavoro in cui l'utente o il gruppo di utenti destinatario funzionerà con i dati condivisi.
L'identificatore di condivisione è una stringa costituita dal cloud, dall'area e dall'UUID del metastore (identificatore univoco per il metastore), nel formato <cloud>:<region>:<uuid>.
Nello screenshot seguente, ad esempio, la stringa dell'identificatore di condivisione completa è aws:us-west-2:19a84bee-54bc-43a2-87de-023d0ec16016.
Il destinatario può trovare l'identificatore usando Esplora cataloghi, l'interfaccia della riga di comando di Databricks Unity Catalog o la funzione SQL predefinita CURRENT_METASTORE in un notebook di Databricks o una query SQL di Databricks eseguita in un ambiente di calcolo compatibile con Unity-Catalog nell'area di lavoro che intende usare.
Esploratore di cataloghi
Per ottenere l'identificatore di condivisione tramite Esplora cataloghi:
Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
Nella parte superiore del riquadro Catalogo, fare clic su
e selezionare Delta Sharing.
In alternativa, nella pagina Accesso rapido fare clic sul pulsante condivisione delta >.
Nella scheda Condivisi con me, fare clic sul nome dell'organizzazione di condivisione Databricks in alto a destra e selezionare Copia identificatore di condivisione.
SQL
Eseguire il comando seguente in un notebook o nell'editor di query SQL di Databricks:
SELECT CURRENT_METASTORE();
Interfaccia a riga di comando (CLI)
Eseguire il comando seguente usando la CLI di Databricks. L'identificatore di condivisione viene restituito come global_metastore_id.
databricks metastores summary
È possibile inviare al destinatario le informazioni contenute in questo passaggio oppure indirizzarli a Ottenere l'accesso nel modello Databricks-a-Databricks.
Passaggio 2: Creare il destinatario
Per creare un destinatario per la condivisione Databricks-to-Databricks, è possibile usare Catalog Explorer, il CLI di Databricks Unity Catalog o il CREATE RECIPIENT comando SQL in un notebook di Azure Databricks o nell'editor di query SQL di Databricks.
Autorizzazioni necessarie: amministratore o utente metastore con il privilegio per il CREATE RECIPIENT metastore di Unity Catalog in cui sono registrati i dati da condividere.
Esploratore di cataloghi
Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
Nella parte superiore del riquadro Catalogo, fare clic su
e selezionare Delta Sharing.
In alternativa, nella pagina Accesso rapido fare clic sul pulsante condivisione delta >.
Nella scheda Condivisi da me fare clic su Nuovo destinatario.
Immettere il nome del destinatario .
Per Tipo di destinatario, selezionare Databricks.
Immettere l'identificatore di condivisione del destinatario.
Usare l'intera stringa di identificatore di condivisione nel formato
<cloud>:<region>:<uuid>. Ad esempio:aws:us-west-2:19a84bee-54bc-43a2-87de-023d0ec16016.(Facoltativo) Immettere un commento.
Cliccare su Crea.
(Facoltativo) Creare proprietà del destinatario personalizzate.
Nella scheda Panoramica del destinatario, fare clic sull'icona di modifica
accanto a Proprietà del destinatario. Aggiungere quindi un nome di proprietà (chiave) e un valore. Per informazioni dettagliate, vedere Gestire le proprietà dei destinatari.
SQL
Eseguire il comando seguente in un notebook o nell'editor di query SQL di Databricks:
CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
USING ID '<sharing-identifier>'
[COMMENT "<comment>"];
Usare l'intera stringa di identificatore di condivisione nel formato <cloud>:<region>:<uuid>. Ad esempio: aws:eu-west-1:g0c979c8-3e68-4cdf-94af-d05c120ed1ef.
È anche possibile aggiungere proprietà personalizzate per il destinatario. Per informazioni dettagliate, vedere Gestire le proprietà dei destinatari.
Interfaccia a riga di comando (CLI)
Eseguire il comando seguente usando la CLI di Databricks. Sostituire i valori dei segnaposto.
-
<recipient-name>: nome del destinatario. -
<sharing-identifier>: l'intera stringa di identificatore di condivisione nel formato<cloud>:<region>:<uuid>. Ad esempio:aws:eu-west-1:g0c979c8-3e68-4cdf-94af-d05c120ed1ef. -
<authentication-type>: impostato suDATABRICKSquando viene fornita una stringa di identificatore di condivisione nel formato<cloud>:<region>:<uuid>per<sharing-identifier>.
databricks recipients create <recipient-name> <authentication-type> --sharing-code <sharing-identifier>
È anche possibile aggiungere proprietà personalizzate per il destinatario. Per informazioni dettagliate, vedere Gestire le proprietà dei destinatari.
Il destinatario viene creato con authentication_type di DATABRICKS.
Concedere al destinatario l'accesso a una condivisione
Dopo aver creato il destinatario e creato le condivisioni, è possibile concedere al destinatario l'accesso a tali condivisioni.
Per concedere l'accesso condiviso ai destinatari, è possibile usare Esplora cataloghi, l'interfaccia della riga di comando di Databricks Unity Catalog o il GRANT ON SHARE comando SQL in un notebook di Azure Databricks o nell'editor di query SQL di Databricks.
Autorizzazioni necessarie: una delle seguenti:
- Amministratore Metastore.
- Autorizzazioni delegate o proprietà per la condivisione e per gli oggetti destinatario ((
USE SHARE+SET SHARE PERMISSION) o proprietario della condivisione) E (USE RECIPIENTo proprietario del destinatario).
Per istruzioni, vedere Gestire l'accesso alle condivisioni dati di Delta Sharing (per i provider).
Visualizzare i destinatari
Per visualizzare un elenco di destinatari, è possibile usare Esplora cataloghi, l'interfaccia della riga di comando di Databricks Unity Catalog o il SHOW RECIPIENTS comando SQL in un notebook di Azure Databricks o nell'editor di query SQL di Databricks.
Autorizzazioni necessarie: è necessario essere un amministratore del metastore o avere il USE RECIPIENT privilegio di visualizzare tutti i destinatari nel metastore. Gli altri utenti hanno accesso solo ai destinatari di cui sono proprietari.
Esploratore di cataloghi
Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
Nella parte superiore del riquadro Catalogo, fare clic su
e selezionare Delta Sharing.
In alternativa, nella pagina Accesso rapido fare clic sul pulsante condivisione delta >.
Nella scheda Condivisi da me fare clic su Destinatari.
SQL
Eseguire il seguente comando in un notebook o nell'editor di query SQL di Databricks. Facoltativamente, sostituire <pattern> con un LIKE predicato.
SHOW RECIPIENTS [LIKE <pattern>];
Interfaccia a riga di comando (CLI)
Eseguire il comando seguente usando la CLI di Databricks.
databricks recipients list
Visualizzare i dettagli del destinatario
Per visualizzare informazioni dettagliate su un destinatario, è possibile usare Esplora cataloghi, l'interfaccia della riga di comando di Databricks Unity Catalog o il DESCRIBE RECIPIENT comando SQL in un notebook di Azure Databricks o nell'editor di query SQL di Databricks.
Autorizzazioni necessarie: amministratore metastore, utente con privilegi USE RECIPIENT o proprietario dell'oggetto destinatario.
I dettagli includono:
- Autore del destinatario, timestamp di creazione, commenti e tipo di autenticazione (
TOKENoDATABRICKS). - Se il destinatario usa la condivisione aperta: la durata del token, il collegamento di attivazione, lo stato di attivazione (se le credenziali sono state scaricate) e gli elenchi di accesso IP, se assegnati.
- Se il destinatario utilizza la condivisione tra Databricks: il cloud, la regione e l'ID del metastore del catalogo Unity del destinatario, insieme allo stato di attivazione.
- Proprietà del destinatario, incluse le proprietà personalizzate. Vedere Gestire le proprietà dei destinatari.
Esploratore di cataloghi
Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
Nella parte superiore del riquadro Catalogo, fare clic su
e selezionare Delta Sharing.
In alternativa, nella pagina Accesso rapido fare clic sul pulsante condivisione delta >.
Nella scheda Condivisi da me fare clic su Destinatari e selezionare il destinatario.
SQL
Eseguire il seguente comando in un notebook o nell'editor di query SQL di Databricks.
DESCRIBE RECIPIENT <recipient-name>;
Interfaccia a riga di comando (CLI)
Eseguire il comando seguente usando la CLI di Databricks.
databricks recipients get <recipient-name>
Visualizzare le autorizzazioni di condivisione di un destinatario
Per visualizzare l'elenco di condivisioni a cui è stato concesso l'accesso a un destinatario, è possibile usare Esplora cataloghi, l'interfaccia della riga di comando di Databricks o il SHOW GRANTS TO RECIPIENT comando SQL in un notebook di Azure Databricks o nell'editor di query SQL di Databricks.
Autorizzazioni necessarie: amministratore metastore, utente con privilegi USE RECIPIENT o proprietario dell'oggetto destinatario.
Esploratore di cataloghi
Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
Nella parte superiore del riquadro Catalogo, fare clic su
e selezionare Delta Sharing.
In alternativa, nella pagina Accesso rapido fare clic sul pulsante condivisione delta >.
Nella scheda Condivisi da me fare clic su Destinatari e selezionare il destinatario.
Passare alla scheda Condivisioni per visualizzare l'elenco di condivisioni condivise con il destinatario.
SQL
Eseguire il seguente comando in un notebook o nell'editor di query SQL di Databricks.
SHOW GRANTS TO RECIPIENT <recipient-name>;
Interfaccia a riga di comando (CLI)
Eseguire il comando seguente usando la CLI di Databricks.
databricks recipients share-permissions <recipient-name>
Aggiornare un destinatario
Per aggiornare un destinatario, puoi utilizzare il Catalog Explorer, il Databricks Unity Catalog CLI o il ALTER RECIPIENT comando SQL in un notebook di Azure Databricks o nell'editor di query SQL di Databricks.
Le proprietà che è possibile aggiornare includono il nome del destinatario, il proprietario, il commento e le proprietà personalizzate.
Autorizzazioni necessarie: È necessario essere un amministratore del metastore o il proprietario dell'oggetto destinatario per aggiornare il proprietario. È necessario essere un amministratore del metastore (o un utente con il privilegio CREATE RECIPIENT) e essere il proprietario per aggiornare il nome. È necessario essere il proprietario per aggiornare il commento o le proprietà personalizzate.
Esploratore di cataloghi
Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
Nella parte superiore del riquadro Catalogo, fare clic su
e selezionare Delta Sharing.
In alternativa, nella pagina Accesso rapido fare clic sul pulsante condivisione delta >.
Nella scheda Condivisi da me fare clic su Destinatari e selezionare il destinatario.
Nella pagina dei dettagli del destinatario:
Aggiornare il proprietario.
Modificare o aggiungere un commento.
Rinominare il destinatario.
Fare clic
Menu kebab e selezionare Rinomina.
Modificare, rimuovere o aggiungere proprietà del destinatario personalizzate.
Clicca sull'icona
accanto alle proprietà del destinatario . Aggiungere quindi un nome di proprietà (chiave) e un valore. Per informazioni dettagliate, vedere Gestire le proprietà dei destinatari.Solo destinatari autenticati tramite token:
- Visualizzare e copiare il collegamento di autenticazione . Consulta Ottieni il collegamento di attivazione
- In Gestione token, ruotare o aggiornare il token portatore. Vedere Gestire i token dei destinatari.
Solo destinatari federati OIDC:
- In politiche di federazione OIDC, fare clic su Aggiungi politiche. Vedere LINK.
- Visualizza e copia endpoint destinatario e endpoint MTLS destinatario.
SQL
Eseguire uno o più dei comandi seguenti in un notebook o nell'editor di query SQL di Databricks.
ALTER RECIPIENT <recipient-name> RENAME TO <new-recipient-name>;
ALTER RECIPIENT <recipient-name> OWNER TO <new-owner>;
COMMENT ON RECIPIENT <recipient-name> IS "<new-comment>";
ALTER RECIPIENT <recipient-name> SET PROPERTIES ( <property-key> = property_value [, ...] )
ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( <property-key> [, ...] )
Per altre informazioni sulle proprietà, vedere Gestire le proprietà dei destinatari.
Interfaccia a riga di comando (CLI)
Creare un file JSON che include un aggiornamento al nome del destinatario, al commento, al proprietario, all'elenco di accesso IP o alle proprietà personalizzate.
{
"name": "new-recipient-name",
"owner": "someone-else@example.com",
"comment": "something new",
"ip_access_list": {
"allowed_ip_addresses": ["8.8.8.8", "8.8.8.4/10"]
},
"property": {
"country": "us",
"id": "001"
}
}
Eseguire quindi il comando seguente usando l'interfaccia della riga di comando di Databricks. Sostituire <recipient-name> con il nome del destinatario corrente e sostituire update-recipient-settings.json con il nome del file JSON.
databricks recipients update --json-file update-recipient-settings.json
Per altre informazioni sulle proprietà, vedere Gestire le proprietà dei destinatari.
(Facoltativo) Limitare l'accesso ai destinatari usando gli elenchi di accesso
È possibile limitare l'accesso dei destinatari a un set limitato di indirizzi IP quando si configura l'oggetto destinatario. Vedere Limitare l'accesso dei destinatari alla condivisione delta tramite elenchi di accesso IP (condivisione aperta).
Gestire le proprietà dei destinatari
Gli oggetti destinatario includono proprietà predefinite che è possibile usare per perfezionare l'accesso alla condivisione dei dati. Ad esempio, è possibile usarli per eseguire le operazioni seguenti:
- Condividere partizioni di tabella diverse con destinatari diversi, consentendo di usare le stesse condivisioni con più destinatari mantenendo al tempo stesso i limiti dei dati tra di essi.
- Condividere visualizzazioni dinamiche che limitano l'accesso dei destinatari ai dati della tabella a livello di riga o colonna in base alle proprietà del destinatario.
È anche possibile creare proprietà personalizzate.
Le proprietà predefinite iniziano con databricks. e includono quanto segue:
-
databricks.accountId: l'account di Azure Databricks a cui appartiene un destinatario di dati (solo condivisione da Databricks a Databricks). -
databricks.metastoreId: Il metastore del catalogo Unity al quale appartiene un destinatario di dati. (Solo per la condivisione da Databricks a Databricks). -
databricks.name: nome del destinatario dati.
Le proprietà personalizzate che potrebbero essere di valore possono includere, ad esempio, country. Ad esempio, se si collega la proprietà 'country' = 'us' personalizzata a un destinatario, è possibile partizionare i dati della tabella in base al paese e condividere solo le righe con i dati degli Stati Uniti con i destinatari a cui è assegnata tale proprietà. È anche possibile condividere una visualizzazione dinamica che limita l'accesso alle righe o alle colonne in base alle proprietà del destinatario. Per esempi più dettagliati, vedere Usare le proprietà dei destinatari per filtrare le partizioni e Aggiungere visualizzazioni dinamiche a una condivisione per filtrare righe e colonne.
Requisiti
Le proprietà dei destinatari sono supportate in Databricks Runtime 12.2 e versioni successive.
Aggiungere proprietà quando si crea o si aggiorna un destinatario
È possibile aggiungere proprietà quando si crea un destinatario o le si aggiorna per un destinatario esistente. È possibile usare Esplora cataloghi, l'interfaccia della riga di comando di Databricks Unity Catalog o i comandi SQL in un notebook di Azure Databricks o nell'editor di query SQL di Databricks.
Autorizzazioni necessarie: amministratore o utente del metastore con il privilegio CREATE RECIPIENT per il metastore di Unity Catalog.
Esploratore di cataloghi
Quando si crea o si aggiorna un destinatario usando Esplora cataloghi, aggiungere o aggiornare le proprietà personalizzate eseguendo le operazioni seguenti:
Passare alla pagina Dettagli destinatario.
Se si sta creando un nuovo destinatario, si arriva a questa pagina dopo aver fatto clic su Crea. Se stai aggiornando un destinatario esistente, andare su questa pagina cliccando
> e selezionando il destinatario.
Fare clic su Modifica proprietà > +Aggiungi proprietà.
Immettere un nome di proprietà (chiave) e un valore.
Ad esempio, se si desidera filtrare i dati condivisi in base al paese e condividere solo i dati degli Stati Uniti con questo destinatario, è possibile creare una chiave denominata "country" con il valore "US".
Fare clic su Salva.
SQL
Per aggiungere una proprietà personalizzata quando si crea un destinatario, eseguire il comando seguente in un notebook o nell'editor di query SQL di Databricks:
CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[USING ID '<sharing-identifier>'] /* Skip this if you are using open sharing */
[COMMENT "<comment>"]
PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );
<property-key> può essere un valore letterale stringa o un identificatore.
<property-value> deve essere una stringa letterale.
Ad esempio:
CREATE RECIPIENT acme PROPERTIES ('country' = 'us', 'partner_id' = '001');
Per aggiungere, modificare o eliminare proprietà personalizzate per un destinatario esistente, eseguire una delle operazioni seguenti:
ALTER RECIPIENT <recipient-name> SET PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );
ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( '<property-key>' );
Interfaccia a riga di comando (CLI)
Per aggiungere proprietà personalizzate quando si crea un destinatario, eseguire il comando seguente usando l'interfaccia della riga di comando di Databricks. Sostituire i valori dei segnaposto.
-
<recipient-name>: nome del destinatario. -
<property-key>può essere un valore letterale stringa o un identificatore. -
<property-value>deve essere una stringa letterale.
databricks recipients create \
--json='{
"name": "<recipient-name>",
"properties_kvpairs": {
"properties": {
"<property-key>": "<property-value>",
}
}
}'
Ad esempio:
databricks recipients create \
--json='{
"name": "<recipient-name>",
"properties_kvpairs": {
"properties": {
"country": "us",
"partner_id":"001"
}
}
}'
Per aggiungere o modificare proprietà personalizzate per un destinatario esistente, usare update anziché create:
databricks recipients update \
--json='{
"name": "<recipient-name>",
"properties_kvpairs": {
"properties": {
"country": "us",
"partner_id":"001"
}
}
}'
Visualizzare le proprietà del destinatario
Per visualizzare le proprietà dei destinatari, seguire le istruzioni riportate in Visualizzare i dettagli del destinatario.
Eliminare un destinatario
Per eliminare un destinatario, è possibile usare Catalog Explorer, il Databricks Unity Catalog CLI, o il DROP RECIPIENT comando SQL in un notebook di Azure Databricks o nell'editor di query SQL di Databricks. Per eliminare il destinatario, è necessario essere il proprietario dell'oggetto destinatario.
Quando si elimina un destinatario, gli utenti rappresentati dal destinatario non possono più accedere ai dati condivisi. I token usati dai destinatari in uno scenario di condivisione aperta vengono invalidati.
Autorizzazioni necessarie: proprietario dell'oggetto destinatario.
Esploratore di cataloghi
Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
Nella parte superiore del riquadro Catalogo, fare clic su
e selezionare Delta Sharing.
In alternativa, nella pagina Accesso rapido fare clic sul pulsante condivisione delta >.
Nella scheda Condivisi da me fare clic su Destinatari e selezionare il destinatario.
Nella scheda Destinatari trovare e selezionare il destinatario.
Fare clic
Menu kebab e selezionare Elimina.
Nella finestra di dialogo di conferma fare clic su Elimina.
SQL
Eseguire il seguente comando in un notebook o nell'editor di query SQL di Databricks.
DROP RECIPIENT [IF EXISTS] <recipient-name>;
Interfaccia a riga di comando (CLI)
Eseguire il comando seguente usando la CLI di Databricks.
databricks recipients delete <recipient-name>