Dela via


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 ett DROP 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 inte UNDROP använder källtabellen i det här fönstret slutar den grunda klonen att fungera när källtabellens datafiler har samlats in.