Förutsägande optimering för hanterade Unity Catalog-tabeller
Kommentar
För alla konton som skapats efter den 11 november 2024 möjliggör Databricks förutsägelseoptimering som standard.
Förutsägande optimering tar bort behovet av att manuellt hantera underhållsåtgärder för hanterade Unity Catalog-tabeller i Azure Databricks.
Med förutsägande optimering aktiverat gör Azure Databricks automatiskt följande:
- Identifierar tabeller som skulle dra nytta av underhållsåtgärder och ställer dessa åtgärder i kö för att köras.
- Samlar in statistik när data skrivs till en hanterad tabell.
Underhållsåtgärder körs efter behov, vilket eliminerar både onödiga körningar för underhållsåtgärder och den börda som är kopplad till spårnings- och felsökningsprestanda.
Viktigt!
Förutsägelseoptimering körs endast på hanterade Unity Catalog-tabeller.
Förutsägelseoptimering körs inte på strömmande tabeller eller materialiserade vyer som skapats i Databricks SQL eller med hjälp av Delta Live Tables-pipelines.
Vilka åtgärder körs förutsägelseoptimering?
Förutsägelseoptimering kör följande åtgärder automatiskt för aktiverade tabeller:
Operation | beskrivning |
---|---|
OPTIMIZE
(1) |
Utlöser inkrementell klustring för aktiverade tabeller. Se Använd flytande klustring för Delta-tabeller. Förbättrar frågeprestanda genom att optimera filstorlekar. Se Optimera layouten av datafilerna. |
VACUUM |
Minskar lagringskostnaderna genom att ta bort datafiler som inte längre refereras till av tabellen. Se Ta bort oanvända datafiler med åtgärden "vacuum". |
ANALYZE |
Utlöser inkrementell uppdatering av statistik för att förbättra frågeprestanda. Se ANALYZE TABLE. |
(1)OPTIMIZE
körs ZORDER
inte när den körs med förutsägelseoptimering.
Varning
Kvarhållningsfönstret för kommandot VACUUM
bestäms av tabellens delta.deletedFileRetentionDuration
-egenskap och är som standard 7 dagar. Det innebär att VACUUM
tar bort datafiler som inte längre refereras till av en Delta-tabellversion under de senaste 7 dagarna. Om du vill behålla data längre (till exempel för att stödja tidsresor under längre perioder) måste du ange den här tabellegenskapen på rätt sätt innan du aktiverar förutsägelseoptimering, som i följande exempel:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
Var körs förutsägelseoptimering?
Förutsägande optimering identifierar tabeller som skulle dra nytta av ANALYZE
, OPTIMIZE
och VACUUM
åtgärder och köar dem för att köra med hjälp av serverlös beräkning för jobb. Ditt konto debiteras för beräkning som är associerad med dessa arbetsbelastningar med en SKU som är specifik för Databricks Managed Services. Se priser för Databricks-hanterade tjänster. Azure Databricks tillhandahåller systemtabeller för observerbarhet i förebyggande optimeringsåtgärder, kostnader och påverkan. Se Använda systemtabeller för att spåra förutsägelseoptimering.
Förutsättningar för förutsägelseoptimering
Du måste uppfylla följande krav för att möjliggöra förutsägande optimering:
Din Azure Databricks-arbetsyta måste finnas på Premium-planen i en region som stöder förutsägelseoptimering. Se Azure Databricks-regioner.
Du måste använda SQL-lager eller Databricks Runtime 12.2 LTS eller senare när du aktiverar förutsägelseoptimering.
Endast hanterade tabeller i Unity Catalog stöds.
Om du behöver privat anslutning för dina lagringskonton måste du konfigurera en serverlös privat anslutning. Se Konfigurera privat anslutning från serverlös beräkning.
Aktivera förutsägande optimering
Du kan aktivera förutsägelseoptimering för ett konto, en katalog eller ett schema. Alla hanterade Unity Catalog-tabeller ärver kontovärdet som standard. Du kan åsidosätta kontostandarden för en katalog eller ett schema för att aktivera eller inaktivera förutsägelseoptimering på den nivån.
Kommentar
Om ditt konto skapades efter den 11 november 2024 aktiveras förutsägelseoptimering för ditt konto som standard.
Du måste ha följande behörigheter för att aktivera eller inaktivera förutsägelseoptimering på den angivna nivån:
Unity Catalog-objekt | Privilege |
---|---|
Konto | Kontoadministratör |
Katalog | Katalogägare |
Schemat | Schemaägare |
Kommentar
När du aktiverar förutsägelseoptimering för första gången skapar Azure Databricks automatiskt ett huvudnamn för tjänsten i ditt Azure Databricks-konto. Azure Databricks använder tjänstens huvudnamn för att utföra de begärda underhållsåtgärderna. Läs mer i Hantera tjänstens huvudnamn.
Aktivera eller inaktivera förutsägelseoptimering för ditt konto
En kontoadministratör kan utföra följande steg för att aktivera förutsägelseoptimering för alla metaarkiv i ett konto. Objekt i kontot ärver den här inställningen som standard (men inställningen kan åsidosättas på katalog- eller schemanivå):
- Få åtkomst till kontokonsolen.
- Gå till Inställningar och sedan Funktionsaktivering.
- Välj det alternativ som ska användas (till exempel Aktiverad) bredvid Förutsägelseoptimering.
Kommentar
- Metaarkiv i regioner som inte stöder förutsägande optimering är inte aktiverade.
- Om du inaktiverar förutsägelseoptimering på kontonivå inaktiveras den inte för kataloger eller scheman som har aktiverat den specifikt.
Aktivera eller inaktivera förutsägelseoptimering för en katalog eller ett schema
Förutsägelseoptimering använder en arvsmodell. När det är aktiverat för en katalog ärver scheman egenskapen. Tabeller i ett aktiverat schema ärver förutsägelseoptimering. Om du vill åsidosätta det här arvsbeteendet kan du uttryckligen aktivera eller inaktivera förutsägelseoptimering för en katalog eller ett schema.
Kommentar
Du kan inaktivera förutsägelseoptimering på katalog- eller schemanivå innan du aktiverar den på kontonivå. Om förutsägande optimering senare aktiveras för kontot blockeras det för tabeller i dessa objekt.
Använd följande syntax för att aktivera eller inaktivera förutsägelseoptimering, eller för att återgå till standardvärdet för ärvning från det överordnade objektet:
ALTER CATALOG [catalog_name] { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
ALTER { SCHEMA | DATABASE } schema_name { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
Kontrollera om förutsägelseoptimering är aktiverat
Fältet Predictive Optimization
är en Unity Catalog-egenskap som beskriver om förutsägelseoptimering är aktiverat. Om förutsägelseoptimering ärvs från ett överordnat objekt anges detta i fältvärdet.
Använd följande syntax för att se om förutsägelseoptimering är aktiverat:
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name
Använda systemtabeller för att spåra förutsägelseoptimering
Azure Databricks innehåller en systemtabell för att spåra historiken för förutsägande optimeringsåtgärder. Se referens till tabell för prediktiv optimering .
Felmeddelande om privat länk
Om systemtabellen markerar åtgärder som misslyckade med FAILED: PRIVATE_LINK_SETUP_ERROR
kanske du inte har rätt konfigurerad privat länk för serverlös beräkning. Se Konfigurera privat anslutning från serverlös beräkning.
Begränsningar
Förutsägelseoptimering är inte tillgängligt i alla regioner. Se Azure Databricks-regioner.
Förutsägande optimering kör inte OPTIMIZE
kommandon på tabeller som använder Z-ordning.
Förutsägande optimering kör inte VACUUM
åtgärder i tabeller med ett filkvarhållningsfönster som har konfigurerats under standardvärdet 7 dagar. Se Konfigurera datakvarhållning för frågor om tidsresor.
Förutsägande optimering utför inte underhållsåtgärder i följande tabeller:
- Tabeller som lästs in i en arbetsyta som mottagare av Delta Sharing.
- Externa tabeller.
- Materialiserade vyer. Se Använd materialiserade vyer i Databricks SQL.
- Strömmande tabeller. Se Läsa in data med hjälp av strömmande tabeller i Databricks SQL.