Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Important
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Important
Stöd för ytlig kloning skiljer sig åt för Unity Catalog-hanterade och externa tabeller. För hanterade tabeller använder du Databricks Runtime 13.3 LTS och senare, och för externa tabeller använder du Databricks Runtime 14.3 LTS och senare.
Du kan bara klona hanterade Unity Catalog-tabeller till andra hanterade Unity Catalog-tabeller och externa Unity Catalog-tabeller till andra externa Unity Catalog-tabeller.
VACUUM beteende skiljer sig mellan hanterade och externa tabeller. Se Använda VACUUM med grunda kloner i Unity Catalog.
Använd en ytlig klon för att skapa Unity Catalog-tabeller med åtkomstkontrollbehörigheter som är oberoende av deras källtabeller, utan att kopiera de underliggande datafilerna. Ytlig klon i Unity Catalog stöds endast för Delta Lake-tabeller. Du kan inte skapa en grund klon av en Iceberg-tabell eller någon annan tabell som inte är en Delta-tabell.
Information om hur du klonar en tabell finns i Klona en tabell i Azure Databricks.
Skapa en hanterad shallow-klon i Unity Catalog
Skapa en ytlig klon av en hanterad tabell i Unity Catalog.
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
Om du vill skapa en hanterad ytlig klon i Unity Catalog måste du ha följande behörigheter för käll- och målresurserna.
| Resource | Behörigheter som krävs |
|---|---|
| Källschema | USE SCHEMA |
| Källkatalog | USE CATALOG |
| Målschema |
USE SCHEMA, CREATE TABLE |
| Målkatalog | USE CATALOG |
Precis som andra skapa tabellinstruktioner äger du måltabellen när du kör SHALLOW CLONE. Ägaren till en klonad måltabell styr åtkomsträttigheterna för den tabellen oberoende av källtabellen. Ägaren till en klonad tabell kan skilja sig från ägaren till en källtabell.
Skapa en extern, grund klon av Unity-katalogen
Skapa en extern, ytlig klon i Unity Catalog genom att ange en extern plats.
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
LOCATION 's3://<bucket-name>/<path-name>/<target-table-name>'
Om du vill skapa en extern grund klon i Unity Catalog måste du ha följande behörigheter för käll- och målresurserna.
| Resource | Behörigheter som krävs |
|---|---|
| Källschema | USE SCHEMA |
| Källkatalog | USE CATALOG |
| Målschema |
USE SCHEMA, CREATE TABLE |
| Målkatalog | USE CATALOG |
| Extern destinationsplats | CREATE EXTERNAL TABLE |
Arbeta med grunda klonade tabeller i standardåtkomstläge
Om du vill fråga efter en ytlig klon i standardåtkomstläge (tidigare delat åtkomstläge) måste du ha följande behörigheter för tabellen och de resurser som innehåller den:
| Resource | Behörigheter som krävs |
|---|---|
| Catalog | USE CATALOG |
| Schema | USE SCHEMA |
| Bord | SELECT |
Du måste också ha MODIFY behörigheter för målet för kloningsåtgärden för att köra följande åtgärder:
INSERTDELETEUPDATEMERGECREATE TABLEDROP TABLE
Arbeta med grunda klonade tabeller i dedikerat åtkomstläge
När du arbetar med grunda kloner i Unity Catalog i dedikerat åtkomstläge (tidigare åtkomstläge för en enskild användare) måste du ha behörighet för resurserna för både den klonade tabellkällan och måltabellen.
För enkla frågor, förutom de behörigheter som krävs i måltabellen, måste du ha USE behörigheter för källkatalogen och schemat och SELECT behörigheterna i källtabellen. För frågor som uppdaterar eller infogar poster i måltabellen måste du också ha MODIFY behörighet för källtabellen.
Databricks rekommenderar att du använder Unity Catalog-kloner vid beräkning med standardåtkomstläge eftersom detta tillåter oberoende ändringar av behörigheter för grunda klonmål i Unity Catalog och deras källtabeller.
Använda VACUUM med grunda kloner i Unity Catalog
När du använder Unity Catalog-tabeller för källan och målet för en ytlig kloningsåtgärd hanterar Unity Catalog de underliggande datafilerna för att förbättra tillförlitligheten för källan och målet för klonåtgärden. Att köra VACUUM på källan till en ytlig klon gör inte att den klonade tabellen går sönder.
Normalt när VACUUM identifierar giltiga filer för ett visst kvarhållningströskelvärde är det bara metadata för den nuvarande tabellen som beaktas. Unity Catalog har dock stöd för grunda kloner och spårar relationerna mellan alla klonade tabeller och källdatafilerna, så att mängden giltiga filer utökas till att omfatta de datafiler som behövs för att besvara frågor för både grunda kloner och källtabellen.
För VACUUM en grund klon i Unity Catalog är en giltig datafil alla filer inom det angivna kvarhållningströskelvärdet för källtabellen eller en klonad tabell. Hanterade tabeller och externa tabeller har lite olika beteenden.
Den här förbättrade spårningen av metadata ändrar hur VACUUM åtgärder påverkar underliggande datafiler för Delta Lake-tabellerna med följande beteende:
- För hanterade tabeller
VACUUMkan åtgärder på källan eller målet för en ytlig kloningsåtgärd ta bort datafiler från källtabellen. - För externa tabeller
VACUUMtar åtgärder bara bort datafiler från källtabellen när de körs mot källtabellen. - Endast datafiler som inte anses giltiga för källtabellen eller någon ytlig klon mot källan tas bort.
- Om flera grunda kloner har definierats mot en enda källtabell, så tar inte utförandet av
VACUUMpå någon av de klonade tabellerna bort giltiga datafiler för de andra klonade tabellerna.
Note
Databricks rekommenderar att du aldrig kör VACUUM med en kvarhållningsinställning på mindre än 7 dagar för att undvika att skada pågående långvariga transaktioner. Om du behöver ett lägre tröskelvärde för kvarhållning bör du överväga hur VACUUM på grunda kloner i Unity Catalog skiljer sig från hur VACUUM påverkar andra klonade tabeller på Azure Databricks. Mer information finns i Klona en tabell i Azure Databricks.
Även om du tar bort en ytklonad tabell kan du behöva SELECT-åtkomst till den ytklonade tabellen för att köra VACUUM på bastabellen. Databricks läser den grunda klonens Delta-logg för att verifiera vilka bastabelldatafiler klonen fortfarande refererar till innan de dammsugas. Databricks behåller den här länken i 7 dagar efter att en ytklonad tabell har tagits bort för att stödja åtgärden UNDROP. I standardläge för åtkomst krävs dock inte den här behörigheten.
Ta bort bastabellen för en grundlig klon
Om du tar bort bastabellen för en ytlig klon blir klonen oanvändbar. Som standardinställning hindrar Databricks dig från att ta bort en bastabell om den fortfarande har grunda kloner som refererar till den.
Om du vill åsidosätta det här skyddet använder du syntaxen DROP TABLE ... FORCE . Om du använder FORCE:
- Bastabellen tas bort omedelbart.
- Alla refererande grunda kloner bryts och:
- Ytliga kloner misslyckas vid operationer som kräver läsning av data eller metadata (till exempel
SELECT,INSERT,UPDATE,DESCRIBE HISTORY,CLONE). - För att möjliggöra rensning är ytliga kloner fortfarande synliga via åtgärder på metadatanivå (till exempel
SHOW TABLES,DROP TABLE).
- Ytliga kloner misslyckas vid operationer som kräver läsning av data eller metadata (till exempel
Det här beteendet gäller endast för hanterade Unity Catalog-tabeller. Mer information finns i DROP TABLE.
Limitations
- Ytlig klon stöds endast för Delta Lake-tabeller. Du kan inte skapa en grund klon av en Iceberg-tabell eller någon annan tabell som inte är en Delta-tabell.
- Du kan inte använda
CREATE OR REPLACEför att skriva över en befintlig ytlig klon. AnvändDROP TABLEföljt avCREATE TABLEeller använd ett nytt tabellnamn. - Ytliga kloner av externa tabeller måste vara externa tabeller. Ytliga kloner i hanterade tabeller måste också vara hanterade tabeller.
- Du kan inte dela ytliga kloner med OpenSharing.
- Du kan inte kapsla grunda kloner, vilket innebär att du inte kan göra en grund klon från en grund klon.
- För hanterade tabeller, orsakar borttagning av källtabellen att måltabellen slutar fungera för grunda kloner. De underliggande datafilerna för externa tabeller tas inte bort av
DROP TABLEåtgärder, och därför påverkas inte grunda kloner av externa tabeller genom att källan tas bort. - Med Unity Catalog kan användare hantera
UNDROPtabeller i cirka 7 dagar efter ettDROP TABLEkommando. I Databricks Runtime 13.3 LTS och senare fortsätter hanterade grunda kloner av en borttagen källtabell att fungera under den 7-dagarsperiod under vilken Unity Catalog stöderUNDROP. Om källtabellen inte återställs i det fönstret slutar den grunda klonen att fungera när källdatafilerna tas bort under skräpinsamlingen.