Grund klon för Unity Catalog-tabeller
Viktigt!
Grund klonstöd för hanterade Unity Catalog-tabeller finns i offentlig förhandsversion i Databricks Runtime 13.3 och senare. Stöd för ytlig kloning för den externa unity-katalogen finns i offentlig förhandsversion i Databricks Runtime 14.2 och senare.
Du kan använda en ytlig klon för att skapa nya Unity Catalog-tabeller från befintliga Unity Catalog-tabeller. Med grund klonstöd för Unity Catalog kan du skapa tabeller med åtkomstkontrollbehörigheter som är oberoende av deras överordnade tabeller utan att behöva kopiera underliggande datafiler.
Viktigt!
Du kan bara klona hanterade Unity Catalog-tabeller till hanterade Unity Catalog-tabeller och externa Unity Catalog-tabeller till externa Unity Catalog-tabeller. VACUUM
beteende skiljer sig mellan hanterade och externa tabeller. Se Vakuum- och Unity Catalog-grunda kloner.
Mer information om Delta-klon finns i Klona en tabell i Azure Databricks.
Mer information om Unity Catalog-tabeller finns i Vad är tabeller och vyer?.
Skapa en grund klon i Unity Catalog
Du kan skapa en ytlig klon i Unity Catalog med samma syntax som är tillgänglig för grunda kloner i hela produkten, som du ser i följande syntaxexempel:
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name> SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
Om du vill skapa en grund klon i Unity Catalog måste du ha tillräcklig behörighet för både käll- och målresurserna, enligt beskrivningen i följande tabell:
Resurs | Behörigheter som krävs |
---|---|
Källtabell | SELECT |
Källschema | USE SCHEMA |
Källkatalog | USE CATALOG |
Målschema | USE SCHEMA , CREATE TABLE |
Målkatalog | USE CATALOG |
Extern målplats (endast externa tabeller) | CREATE EXTERNAL TABLE |
Precis som andra skapa tabellinstruktioner är den användare som skapar en ytlig klon ägare till måltabellen. Ägaren till en klonad måltabell kan styra åtkomsträttigheterna för tabellen oberoende av källtabellen.
Kommentar
Ägaren till en klonad tabell kan skilja sig från ägaren till en källtabell.
Fråga efter eller ändra en grund klonad tabell i Unity Catalog
Viktigt!
Anvisningarna i det här avsnittet beskriver de privilegier som behövs för beräkning som konfigurerats med läget för delad åtkomst. Information om åtkomstläge för en användare finns i Arbeta med grunda klonade tabeller i åtkomstläge för en användare.
Om du vill köra frågor mot en ytlig klon i Unity Catalog måste du ha tillräcklig behörighet i tabellen och innehålla resurser, enligt beskrivningen i följande tabell:
Resurs | Behörigheter som krävs |
---|---|
Katalog | USE CATALOG |
Schema | USE SCHEMA |
Register | SELECT |
Du måste också ha MODIFY
behörighet för målet för klonåtgärden för att slutföra följande åtgärder:
- Infoga poster
- Ta bort poster
- Uppdateringsposter
MERGE
CREATE OR REPLACE TABLE
DROP TABLE
Vakuum- och Unity Catalog-grunda kloner
Viktigt!
Det här beteendet är i offentlig förhandsversion i Databricks Runtime 13.3 LTS och senare för hanterade tabeller och Databricks Runtime 14.2 och senare för externa tabeller.
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. Om du kör VACUUM
på källan för en ytlig klon bryts inte den klonade tabellen.
När VACUUM
du identifierar giltiga filer för ett visst kvarhållningströskelvärde beaktas normalt endast metadata för den aktuella tabellen. Grund klonstöd för Unity Catalog spårar relationerna mellan alla klonade tabeller och källdatafilerna, så giltiga filer utökas så att de innehåller datafiler som behövs för att returnera frågor för en grund klonad tabell samt 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 datafiler som stöder Delta-tabellerna med följande semantik:
- För hanterade tabeller
VACUUM
kan å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
VACUUM
tar å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 tar körningen
VACUUM
på någon av de klonade tabellerna inte bort giltiga datafiler för andra klonade tabeller.
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 kontrollerar du att du förstår hur VACUUM
grunda kloner i Unity Catalog skiljer sig från hur VACUUM
interagerar med andra klonade tabeller i Azure Databricks. Se Klona en tabell i Azure Databricks.
Arbeta med grunda klonade tabeller i åtkomstläge för en användare
När du arbetar med grunda kloner i Unity Catalog i åtkomstläge för en 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 läget för delad åtkomst eftersom detta möjliggör oberoende utveckling av behörigheter för grunda klonmål i Unity Catalog och deras källtabeller.
Begränsningar
- Grunda kloner i externa tabeller måste vara externa tabeller. Grunda kloner i hanterade tabeller måste vara hanterade tabeller.
- Du kan inte dela grunda kloner med deltadelning.
- Du kan inte kapsla grunda kloner, vilket innebär att du inte kan göra en grund klon från en grund klon.
- När det gäller hanterade tabeller bryter källtabellen måltabellen för grunda kloner. Datafiler som säkerhetskopierar 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
UNDROP
tabeller i cirka 7 dagar efter ettDROP TABLE
kommando. I Databricks Runtime 13.3 LTS och senare fortsätter hanterade grunda kloner baserat på en borttagen hanterad tabell att fungera under den här 7-dagarsperioden. Om du inteUNDROP
använder källtabellen i det här fönstret slutar den grunda klonen att fungera när källtabellens datafiler har samlats in.