Förutsägande optimering för Unity Catalog hanterad tables
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 Unity Catalog hanterade tables på Azure Databricks.
Med förutsägande optimering aktiverat identifierar Azure Databricks automatiskt tables 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.
Viktigt!
Förutsägelseoptimering körs endast på Unity Catalog hanterade tables.
Prediktiv optimering körs inte på strömmande tables eller materialiserade views, skapade i Databricks SQL eller med hjälp av Delta Live Tables pipeliner.
Vilka åtgärder körs förutsägelseoptimering?
Förutsägande optimering kör följande åtgärder automatiskt för aktiverade tables:
Operation | beskrivning |
---|---|
OPTIMIZE
(1) |
Utlöser inkrementell klustring för aktiverad tables. Se punkt Använd flytande klustring för Delta tables. Förbättrar frågeprestanda genom att optimera filstorlekar. Se layout för datafil Optimize. |
VACUUM |
Minskar lagringskostnaderna genom att ta bort datafiler som inte längre refereras av table. Se Remove oanvända datafiler med vacuum. |
ANALYZE
(2) |
Utlöser inkrementell update av statistik för att förbättra frågeprestanda. |
(1)OPTIMIZE
körs ZORDER
inte när den körs med förutsägelseoptimering.
(2) Förutsägelseoptimering med ANALYZE
finns i offentlig förhandsversion. Använd det här formuläret för att registrera dig för den offentliga förhandsversionen. Under den första offentliga förhandsvisningen kan ANALYZE
-kommandon köras på tables med 500 columns eller färre.
Varning
Egenskapen windowVACUUM
, som vanligtvis är inställd på 7 dagar, bestämmer kvarhållningen delta.deletedFileRetentionDuration
för kommandot table. Det innebär att VACUUM
tar bort datafiler som inte längre refereras till av en Delta table-version 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 set den här table egenskapen på rätt sätt innan du aktiverar förutsägande optimering, som i följande exempel:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
Where körs förutsägelseoptimering?
Förutsägande optimering identifierar tables som skulle dra nytta av ANALYZE
, OPTIMIZE
och VACUUM
åtgärder och köar dem att köra genom att använda serverlös beräkning för arbetsuppgifter. 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 system tables för att få insikter i prediktiv optimering, kostnader och påverkan. Se Använda system tables 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 Unity Catalog hanterade tables 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å.
Kommentar
Om ditt konto skapades efter den 11 november 2024 aktiveras förutsägelseoptimering 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 |
Catalog | Catalog ä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 metastores i ett konto:
- Få åtkomst till kontokonsolen.
- Gå till Inställningar och sedan Funktionsaktivering.
- Select Aktiverad bredvid Förutsägelseoptimering.
Kommentar
Metastores i regioner som inte stöder förutsägelseoptimering är inte aktiverade.
Aktivera eller inaktivera förutsägelseoptimering för en catalog eller schema
Förutsägelseoptimering använder en arvsmodell. När det är aktiverat för en catalogärver scheman egenskapen. Tables inom en aktiverad schema ärver förutsägelseoptimering. Om du vill åsidosätta det här arvsbeteendet kan du uttryckligen inaktivera förutsägelseoptimering för en catalog eller schema.
Kommentar
Du kan inaktivera förutsägelseoptimering på catalog- eller schema nivå innan du aktiverar den på kontonivå. Om förutsägande optimering senare aktiveras för kontot blockeras det för tables 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ägande optimering är aktiverat. Om förutsägelseoptimering ärvs från ett överordnat objekt anges detta i fältvärdet.
Viktigt!
Du måste aktivera förutsägelseoptimering på kontonivå för att kunna visa det här fältet.
Använd följande syntax för att se om förutsägelseoptimering är aktiverat:
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name
Använd system tables för att spåra förutsägelseoptimering
Azure Databricks tillhandahåller ett system table för att spåra historiken för förutsägande optimeringsåtgärder. Se system för förutsägande optimering table referens.
Felmeddelande om privat länk
Om systemet table markerar åtgärder som misslyckade med FAILED: PRIVATE_LINK_SETUP_ERROR
kanske du inte har konfigurerat en privat länk för serverlös beräkning korrekt. 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å tables som använder sig av Z-ordning.
Förutsägande optimering kör inte VACUUM
åtgärder på tables med en filkvarhållning window konfigurerad 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 på följande tables:
- Tables läses in på en arbetsyta som Delta Sharing recipients.
- Extern tables.
- Materialiserad views. Se använd materialiserade views i Databricks SQL.
- Strömmande tables. Se Läsa in data med hjälp av strömmande tables i Databricks SQL.