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.
Katalogincheckningar flyttar samordningen av incheckningar från filsystemet till Unity Catalog, vilket gör katalogen till den enda källan till sanning för tabelltillstånd i Delta Lake och Apache Iceberg. Detta möjliggör transaktioner med flera tabeller, snabbare frågeplanering och styrd åtkomst för alla tabellåtgärder.
Traditionella Delta Lake-transaktioner samordnar åtaganden på enskild nivå. Varje tabell hanterar sin egen transaktionslogg och konfliktidentifiering oberoende av varandra. Genom att flytta incheckningssamordningen till katalognivå kan organisationer konsekvent styra all åtkomst till Lakehouse via Unity Catalog. Det gör det också möjligt för Unity Catalog att samordna incheckningar över flera tabeller inom en enda transaktionsgräns samtidigt som Delta Lake ACID-garantier bibehålls.
Fördelar
Katalogåtaganden erbjuder följande möjligheter:
Transaktioner som sträcker sig över flera tabeller: Kör flera SQL-instruktioner över flera tabeller i en enda atomisk commithändelse. Alla ändringar lyckas tillsammans eller misslyckas tillsammans. Se Transaktioner.
Important
Transaktioner som skriver till hanterade Iceberg-tabeller i Unity Catalog finns i privat förhandsversion. Om du vill ansluta till den här förhandsversionen skickar du registreringsformuläret för förhandsversionen av hanterade Iceberg-tabeller.
Styrd åtkomst: Läs- och skrivoperationer samordnas via Unity Catalog, så att bearbetningsmotorerna ser det senaste bekräftade tillståndet och styrningsprinciperna tillämpas.
Snabbare frågeplanering och skrivningar: Unity Catalog informerar en Delta-klient om metadata på tabellnivå direkt när den kommer åt en tabell, hoppar över molnlagring och tar bort en större källa med svarstider för metadata.
Begränsningar som kan tillämpas: Unity Catalog validerar eller avvisar schema- och begränsningsändringar, vilket förhindrar inkompatibla uppdateringar som kan bryta dataintegriteten eller nedströmsarbetsbelastningar.
Extern åtkomst: Skriv säkert till hanterade Unity Catalog-tabeller från externa motorer. Unity Catalog samordnar incheckningar och ändringar för att förebygga korruption och samtidighetskonflikter. Se Åtkomst till Databricks-data med externa system.
Important
Den här funktionen finns i Beta. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.
Requirements
- Tabeller måste vara Unity Catalog-hanterade tabeller (Delta eller Iceberg), inklusive strömningstabeller eller materialiserade vyer.
- Databricks Runtime 16.4 eller senare krävs för att läsa från, skriva till eller skapa hanterade tabeller med aktiverade katalogincheckningar.
- Databricks Runtime 18.0 eller senare krävs för att aktivera eller inaktivera katalogincheckningar på befintliga hanterade tabeller.
- Databricks Runtime 17.3 eller senare krävs för att läsa från eller skriva till streamingtabeller eller materialiserade vyer med katalogincheckningar aktiverade.
- I Spark-deklarativa pipelines krävs serverlös beräkning eller klassisk beräkningsmiljö med Databricks Runtime 17.3 eller senare för att läsa från, skriva till, skapa eller uppgradera streamingtabeller eller materialiserade vyer med aktiverade katalogincheckningar.
- Databricks Runtime 18 LTS eller senare krävs för att inaktivera incheckningar i katalogen för befintliga streamingtabeller eller materialiserade vyer.
Aktivera katalogincheckningar
Aktivera incheckningar i katalogen för nya eller befintliga hanterade tabeller, streamingtabeller och materialiserade vyer.
Aktivera katalogincheckningar för nya hanterade tabeller
Använd tabellegenskapen delta.feature.catalogManaged när du skapar en hanterad tabell:
CREATE TABLE sales_data (
sale_id BIGINT,
amount DECIMAL(10,2),
sale_date DATE
)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
Aktivera katalogcommits för befintliga hanterade tabeller
Använd ALTER TABLE för att lägga till katalogcommits till en befintlig hanterad tabell:
ALTER TABLE sales_data SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
Important
Om du aktiverar katalogincheckningar i en befintlig tabell synkroniseras tabelltillståndet med katalogen. Den här åtgärden kan ta flera minuter för tabeller med stora volymer av skrivåtgärder.
Aktivera incheckningar i katalogen för nya eller befintliga streamingtabeller eller materialiserade vyer
Lägg till delta.feature.catalogManaged tabellegenskapen i streamingtabellen eller den materialiserade vydefinitionen, och kör sedan en uppdatering. För ett befintligt objekt, uppdatera dess ursprungliga definition.
ALTER TABLE ... SET TBLPROPERTIES stöds inte.
Följande exempel aktiverar incheckningar i katalogen för en ny eller befintlig streamingtabell:
CREATE OR REFRESH STREAMING TABLE streaming_sales_data
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported')
AS SELECT * FROM STREAM sales_data;
För en materialiserad vy, använd samma tabellegenskap i dess CREATE OR REFRESH MATERIALIZED VIEW definition.
Kontrollera om katalogkommitteringar är aktiverade
Så här kontrollerar du om katalogkommandon är aktiverade för en tabell:
DESCRIBE DETAIL sales_data;
Om det är aktiverat visas catalogManaged i tableFeatures kolumnen.
Inaktivera katalogändringar
Använd Databricks Runtime 18.0 eller senare för att stänga av katalogincheckningar på en befintlig hanterad tabell.
För en befintlig streamingtabell eller materialiserad vy använder du Databricks Runtime 18 LTS eller senare.
Se Ta bort en Delta Lake-tabellfunktion och nedgradera tabellprotokollet.
Varning
Avbryt inte uppgraderings- eller nedgraderingsåtgärder medan ALTER eller DROP instruktioner utförs. Avbrott kan lämna tabellen i ett delvis uppgraderat eller nedgraderat tillstånd, vilket låser den från alla framtida läsningar och skrivningar. Om du vill återställa kör du lämpligt kommando igen i stället för att avbryta. Kontakta Databricks-supporten om tabellen blir låst.
Limitations
- Du kan inte aktivera eller inaktivera katalogincheckningar på befintliga hanterade tabeller med
CREATE OR REPLACE TABLEellerREPLACE TABLE. AnvändCREATE TABLEmed egenskapendelta.feature.catalogManagedför att slå på den när du skapar en hanterad tabell, ellerALTER TABLEför att slå på eller av den på en befintlig hanterad tabell. - Katalogincheckningar är inte kompatibla med extern åtkomst till data för strömmande tabeller eller materialiserade vyer. Om du vill använda katalogincheckningar måste du först inaktivera extern åtkomst. Se Aktivera extern dataåtkomst till strömmande tabeller och materialiserade vyer.
- Tabeller med aktiverade catalog commits delas via OpenSharing med försignerade URL:er i stället för molntokens.
- Kluster med en användare kan inte komma åt strömmande tabeller som har katalogincheckningar aktiverade.