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 funzionalità è in Anteprima Pubblica.
Importante
Il supporto dei cloni superficiali è diverso per le tabelle gestite ed esterne di Unity Catalog. Per le tabelle gestite usare Databricks Runtime 13.3 e versioni successive e per le tabelle esterne usare Databricks Runtime 14.2 e versioni successive.
È possibile clonare le tabelle gestite del Unity Catalog solo in altre tabelle gestite del Unity Catalog e le tabelle esterne del Unity Catalog solo in altre tabelle esterne del Unity Catalog.
VACUUM il comportamento è diverso tra tabelle gestite ed esterne. Vedi cloni superficiali di Vacuum e Unity Catalog.
È possibile usare clone superficiale per creare nuove tabelle del catalogo Unity da tabelle del catalogo Unity esistenti. Il supporto dei cloni superficiali per Unity Catalog consente di creare tabelle con privilegi di controllo di accesso indipendenti dalle tabelle padre senza dover copiare i file di dati sottostanti.
Per informazioni sulla clonazione di una tabella, vedere Clonare una tabella in Azure Databricks.
Per informazioni sulle tabelle di Unity Catalog, vedere Tabelle di Azure Databricks.
Creare un clone parziale nel Unity Catalog
È possibile creare un clone superficiale nel catalogo unity usando la stessa sintassi disponibile per cloni superficiali in tutto il prodotto, come illustrato nell'esempio di sintassi seguente:
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name> SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
Per creare un clone superficiale nel catalogo unity, è necessario disporre di privilegi sufficienti per le risorse di origine e di destinazione, come descritto nella tabella seguente:
| Conto risorse | Autorizzazioni obbligatorie |
|---|---|
| Tabella di origine | SELECT |
| Schema di origine | USE SCHEMA |
| Catalogo di origine | USE CATALOG |
| Schema di destinazione |
USE SCHEMA, CREATE TABLE |
| Catalogo obiettivo | USE CATALOG |
| Posizione esterna di destinazione (solo tabelle esterne) | CREATE EXTERNAL TABLE |
Analogamente ad altre istruzioni CREATE TABLE, l'utente che crea un clone superficiale è il proprietario della tabella di destinazione. Il proprietario di una tabella clonata di destinazione può controllare i diritti di accesso per tale tabella indipendentemente dalla tabella di origine.
Nota
Il proprietario di una tabella clonata potrebbe essere diverso dal proprietario di una tabella di origine.
Eseguire query o modificare una tabella clonata superficialmente nel Unity Catalog
Importante
Le istruzioni in questa sezione descrivono i privilegi necessari per il calcolo configurato con la modalità di accesso standard (in precedenza modalità di accesso condiviso). Per la modalità di accesso dedicato (precedentemente modalità di accesso per utente singolo), vedere Gestire tabelle clonate in modalità superficiale in modalità di accesso dedicato.
Per eseguire query su un clone superficiale nel catalogo unity, è necessario disporre di privilegi sufficienti per la tabella e le risorse contenenti, come descritto nella tabella seguente:
| Conto risorse | Autorizzazioni obbligatorie |
|---|---|
| Catalogo | USE CATALOG |
| Diagramma | USE SCHEMA |
| Tabella | SELECT |
È inoltre necessario disporre delle MODIFY autorizzazioni sulla destinazione dell'operazione di clonazione per completare le seguenti azioni:
- Inserire record
- Eliminazione di record
- Aggiorna record
MERGECREATE TABLEDROP TABLE
Cloni superficiali di Vacuum e Unity Catalog
Quando si usano le tabelle di Catalogo Unity per l'origine e la destinazione di un'operazione clone superficiale, Unity Catalog gestisce i file di dati sottostanti per migliorare l'affidabilità per l'origine e la destinazione dell'operazione di clonazione. Eseguire VACUUM sulla sorgente di una clonazione superficiale non interrompe la tabella clonata.
In genere, quando VACUUM identifica i file validi per una determinata soglia di conservazione, vengono considerati solo i metadati per la tabella corrente. Il supporto dei cloni superficiali per Unity Catalog tiene traccia delle relazioni tra tutte le tabelle clonate e i file di dati di origine, quindi i file validi vengono espansi per includere i file di dati necessari per la restituzione di query per qualsiasi tabella clonata superficiale e la tabella di origine.
Ciò significa che per la semantica dei cloni VACUUM superficiali di Unity Catalog, un file di dati valido è qualsiasi file entro la soglia di conservazione specificata per la tabella di origine o qualsiasi tabella clonata. Le tabelle gestite e le tabelle esterne hanno una semantica leggermente diversa.
Questo rilevamento avanzato dei metadati modifica il modo VACUUM in cui le operazioni influiscono sui file di dati che supportano le tabelle, con la seguente semantica:
- Per le tabelle gestite,
VACUUMle operazioni eseguite sull'origine o sulla destinazione di un'operazione di clonazione superficiale potrebbero eliminare i file di dati dalla tabella di origine. - Per le tabelle esterne,
VACUUMle operazioni rimuovono solo i file di dati dalla tabella di origine quando vengono eseguiti sulla tabella di origine. - Vengono rimossi solo i file di dati non considerati validi per la tabella di origine o qualsiasi clone superficiale sull'origine.
- Se più cloni superficiali vengono definiti su una singola tabella di origine, l'esecuzione
VACUUMin una delle tabelle clonate non rimuove i file di dati validi per altre tabelle clonate.
Nota
Databricks consiglia di non eseguire VACUUM mai con un'impostazione di conservazione di meno di 7 giorni per evitare di danneggiare le transazioni a esecuzione prolungata in corso. Se hai bisogno di eseguire VACUUM con una soglia di conservazione inferiore, assicurati di comprendere in VACUUM come i cloni superficiali in Unity Catalog differiscano dal modo in cui VACUUM interagisce con altre tabelle clonate su Azure Databricks. Vedere Clonare una tabella in Azure Databricks.
Lavorare con tabelle clonate superficialmente in modalità di accesso dedicato
Quando si lavora con cloni superficiali del catalogo Unity in modalità di accesso dedicato, è necessario disporre delle autorizzazioni per le risorse per l'origine della tabella clonata e la tabella di destinazione.
Ciò significa che per le query semplici oltre alle autorizzazioni necessarie per la tabella di destinazione, è necessario disporre USE delle autorizzazioni per il catalogo di origine e lo schema e SELECT le autorizzazioni per la tabella di origine. Per le query che aggiornano o inseriscono record nella tabella di destinazione, è necessario disporre anche di MODIFY autorizzazioni per la tabella di origine.
Databricks consiglia di usare i cloni di Unity Catalog nel calcolo con la modalità di accesso standard, in quanto ciò consente l'evoluzione indipendente delle autorizzazioni per le destinazioni clone superficiali di Unity Catalog e le relative tabelle di origine.
Eliminare la tabella di base per un clone superficiale
Se la tabella di base di un clone superficiale viene eliminata, il clone diventa inutilizzabile. Per impostazione predefinita, Databricks impedisce l'eliminazione di una tabella di base se contiene ancora cloni superficiali che lo fanno riferimento.
Per eseguire l'override di questa protezione, usare la DROP TABLE ... FORCE sintassi . Se si usa FORCE:
- La tabella di base viene eliminata immediatamente.
- Tutti i cloni superficiali referenziati diventano interrotti e:
- Esito negativo nelle operazioni che richiedono la lettura di dati o metadati ( ad esempio ,
SELECT).INSERTUPDATEDESCRIBE HISTORYCLONE - Sono ancora visibili tramite operazioni a livello di metadati ( ad esempio
SHOW TABLES,DROP TABLE) per consentire la pulizia.
- Esito negativo nelle operazioni che richiedono la lettura di dati o metadati ( ad esempio ,
Questo comportamento si applica solo alle tabelle gestite di Unity Catalog.
Vedi DROP TABLE.
Limiti
- I cloni superficiali delle tabelle esterne devono essere anch'essi tabelle esterne. I cloni superficiali delle tabelle gestite devono essere anch'essi tabelle gestite.
- Non è possibile usare
REPLACEoCREATE OR REPLACEper sovrascrivere un clone superficiale esistente. Al contrario,DROPil clone superficiale ed eseguire una nuova istruzioneCREATE. - Non è possibile condividere cloni superficiali usando la condivisione delta.
- Non è possibile annidare cloni superficiali, ovvero non è possibile creare un clone superficiale da un clone superficiale.
- Per le tabelle gestite, l'eliminazione della tabella di origine interrompe la tabella di destinazione per cloni superficiali. I file di dati che supportano le tabelle esterne non vengono rimossi dalle operazioni
DROP TABLEe pertanto i cloni superficiali delle tabelle esterne non sono influenzati dall'eliminazione dell'origine. - Unity Catalog consente agli
UNDROPutenti di gestire le tabelle per circa 7 giorni dopo unDROP TABLEcomando. In Databricks Runtime 13.3 LTS e versioni successive, i cloni leggeri gestiti relativi a una tabella gestita eliminata continuano a funzionare durante questo periodo di 7 giorni. Se nonUNDROPla tabella di origine in questa finestra, il clone superficiale smette di funzionare quando i file di dati della tabella di origine vengono raccolti come rifiuti.