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.
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Viktigt!
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 och senare, och för externa tabeller använder du Databricks Runtime 14.2 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.
Du kan använda en ytlig klon för att skapa nya Unity Catalog-tabeller från befintliga Unity Catalog-tabeller. Med grundläggande klonstöd för Unity Catalog kan du skapa tabeller med åtkomstkontrollbehörigheter oberoende av deras ursprungliga tabeller utan att behöva kopiera underliggande datafiler.
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.
| Resurs | 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 den användare som skapar en ytlig klon måltabellen. Ägaren till en klonad måltabell styr åtkomsträttigheterna för den tabellen oberoende av källtabellen. Det innebär att ä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.
| Resurs | 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
För att ställa frågor om en grund klon i standardåtkomstläge (tidigare läget för delad åtkomst) måste du ha följande behörigheter på tabellen och de tillhörande resurserna.
| Resurs | Behörigheter som krävs |
|---|---|
| Katalog | USE CATALOG |
| Schemat | USE SCHEMA |
| Tabell | SELECT |
Du måste också ha MODIFY behörighet för målet för kloningsåtgärden för att slutföra följande åtgärder.
- Infoga poster
- Ta bort poster
- Uppdateringsposter
MERGECREATE 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 den klonade tabellkällan och måltabellen.
Det innebär att för enkla frågor utöver 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 skulle uppdatera eller infoga poster i måltabellen måste du också ha MODIFY behörighet för källtabellen.
Databricks rekommenderar att du arbetar med Unity Catalog-kloner vid beräkning med standardåtkomstläge eftersom detta möjliggör oberoende utveckling 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 för en ytlig klon skadar inte den klonade tabellen.
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. Dock spårar stöd för grund kloning i Unity Catalog relationerna mellan alla klonade tabeller och källdatafilerna, vilket innebär att giltiga filer utökas för att inkludera datafiler som behövs för att svara på frågor för både en grundklonad tabell och källtabellen.
Det innebär att för grund klonsemantik VACUUM i Unity Catalog är en giltig datafil valfri fil inom det angivna tröskelvärdet för kvarhållning för källtabellen eller en klonad tabell. Hanterade tabeller och externa tabeller har lite olika semantik.
Den här förbättrade spårningen av metadata ändrar hur VACUUM åtgärder påverkar underliggande datafiler för Delta-tabellerna med följande semantik.
- För hanterade tabeller
VACUUMkan åtgärder mot 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.
Kommentar
Databricks rekommenderar att du aldrig kör VACUUM med en kvarhållningsinställning på mindre än 7 dagar för att undvika att pågående långvariga transaktioner skadas. Om du behöver köra VACUUM med ett lägre tröskelvärde för kvarhållning, se till att du förstår hur VACUUM ytligare kloner i Unity Catalog skiljer sig från hur VACUUM samspelar med andra klonade tabeller i Azure Databricks. Mer information finns i Klona en tabell i Azure Databricks.
Även om en grund klonad tabell tas bort kan du behöva SELECT åtkomst till den grunda klonade 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 bibehåller den här länken i 7 dagar efter att en ytligt klonad tabell har raderats 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 en grundklons bastabell tas bort 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:
- Misslyckas med åtgärder som kräver läsning av data eller metadata (till exempel
SELECT, ,INSERTUPDATE,DESCRIBE HISTORY, ).CLONE - Är fortfarande synliga via åtgärder på metadatanivå (till exempel
SHOW TABLES,DROP TABLE) för att tillåta rensning.
- Misslyckas med åtgärder 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.
Begränsningar
- Ytliga kloner av externa tabeller måste vara externa tabeller. Ytliga kloner i hanterade tabeller måste också vara hanterade tabeller.
- Du kan inte använda
REPLACEellerCREATE OR REPLACEför att skriva över en befintlig grund klon. I ställetDROPden grunda klonen och kör en nyCREATE-instruktion. - Du kan inte dela ytliga kloner med Delta Sharing.
- 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.