Share via


Förutsägelseoptimering för Delta Lake

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Förutsägande optimering tar bort behovet av att manuellt hantera underhållsåtgärder för Delta-tabeller i Azure Databricks.

Med förutsägande optimering aktiverat identifierar Azure Databricks automatiskt tabeller som skulle dra nytta av underhållsåtgärder och kör dem för användaren. Underhållsåtgärder körs bara 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.

Vilka åtgärder körs förutsägelseoptimering?

Förutsägelseoptimering kör följande åtgärder automatiskt för aktiverade Delta-tabeller:

Operation beskrivning
OPTIMIZE Förbättrar frågeprestanda genom att optimera filstorlekar. Se Komprimera datafiler med optimera på Delta Lake.
VACUUM Minskar lagringskostnaderna genom att ta bort datafiler som inte längre refereras till av tabellen. Se Ta bort oanvända datafiler med vakuum.

Kommentar

OPTIMIZE körs ZORDER inte när den körs med förutsägande optimering.

Varning

Kvarhållningsfönstret för VACUUM kommandot bestäms av tabellegenskapen delta.deletedFileRetentionDuration , som standard är 7 dagar. Det innebär att VACUUM datafiler som inte längre refereras till av en Delta-tabellversion tas bort 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 OPTIMIZE av och VACUUM åtgärder och köar dem för att köras med jobbberäkning. 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.

Kommentar

Förutsägande optimering kör OPTIMIZE inte kommandon på tabeller som använder flytande klustring.

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 måste aktivera förutsägelseoptimering på kontonivå.

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
Schema 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 förutsägelseoptimering för ditt konto

En kontoadministratör måste utföra följande steg för att aktivera förutsägelseoptimering för alla metaarkiv i ett konto:

  1. Få åtkomst till kontokonsolen.
  2. Gå till Inställningar och sedan Funktionsaktivering.
  3. Välj Aktiverad bredvid Förutsägande optimering.

Kommentar

Metaarkiv i regioner som inte stöder förutsägande optimering är inte aktiverade.

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 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:

ALTER CATALOG [catalog_name] {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
ALTER {SCHEMA | DATABASE} schema_name {ENABLE | DISABLE} 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 Tabellreferens för systemtabell för förutsägande optimering.

Begränsningar

Förutsägelseoptimering är inte tillgängligt i alla regioner. Se Azure Databricks-regioner.

Förutsägande optimering kör OPTIMIZE inte kommandon på tabeller som använder flytande klustring eller Z-ordning.

Förutsägande optimering utför inte underhållsåtgärder i följande tabeller: