Voorspellende optimalisatie voor beheerde tabellen in Unity Catalog
Notitie
Voor alle accounts die na 11 november 2024 zijn gemaakt, schakelt Databricks standaard voorspellende optimalisatie in.
Met voorspellende optimalisatie hoeft u geen onderhoudsbewerkingen voor beheerde Unity Catalog-tabellen in Azure Databricks handmatig te beheren.
Als voorspellende optimalisatie is ingeschakeld, identificeert Azure Databricks automatisch tabellen die baat hebben bij onderhoudsbewerkingen en voert ze uit voor de gebruiker. Onderhoudsbewerkingen worden alleen uitgevoerd als dat nodig is, waardoor zowel onnodige uitvoeringen voor onderhoudsbewerkingen als de last van het bijhouden en oplossen van problemen worden voorkomen.
Belangrijk
Voorspellende optimalisatie wordt alleen uitgevoerd op beheerde tabellen van Unity Catalog.
Voorspellende optimalisatie wordt niet uitgevoerd op streamingtabellen of gerealiseerde weergaven die zijn gemaakt in Databricks SQL of met behulp van Delta Live Tables-pijplijnen.
Welke bewerkingen worden uitgevoerd voor voorspellende optimalisatie?
Voorspellende optimalisatie voert de volgende bewerkingen automatisch uit voor ingeschakelde tabellen:
Operation | Omschrijving |
---|---|
OPTIMIZE (1) |
Triggers incrementele clustering voor ingeschakelde tabellen. Zie Liquid clustering gebruiken voor Delta-tabellen. Verbetert de queryprestaties door de bestandsgrootten te optimaliseren. Zie De indeling van het gegevensbestand optimaliseren. |
VACUUM |
Vermindert de opslagkosten door gegevensbestanden te verwijderen waarnaar niet meer wordt verwezen door de tabel. Zie Ongebruikte gegevensbestanden verwijderen met vacuüm. |
ANALYZE (2) |
Activeert incrementele update van statistieken om de queryprestaties te verbeteren. |
(1) OPTIMIZE
wordt niet uitgevoerd ZORDER
wanneer deze wordt uitgevoerd met voorspellende optimalisatie.
(2) Voorspellende optimalisatie met ANALYZE
is in openbare preview. Het bevat intelligente stastistics verzamelen tijdens schrijfbewerkingen. Gebruik dit formulier om u aan te melden voor de openbare preview. Tijdens de eerste openbare preview ANALYZE
kunnen opdrachten worden uitgevoerd op tabellen met maximaal 1 TB aan gegevens en 500 kolommen of minder.
Waarschuwing
Het bewaarvenster voor de VACUUM
opdracht wordt bepaald door de delta.deletedFileRetentionDuration
tabeleigenschap, die standaard 7 dagen is. Dit betekent dat VACUUM
in de afgelopen 7 dagen geen gegevensbestanden meer worden verwijderd waarnaar niet meer wordt verwezen door een Delta-tabelversie. Als u gegevens langer wilt bewaren (zoals het ondersteunen van tijdreizen voor langere duur), moet u deze tabeleigenschap instellen voordat u voorspellende optimalisatie inschakelt, zoals in het volgende voorbeeld:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
Waar wordt voorspellende optimalisatie uitgevoerd?
Voorspellende optimalisatie identificeert tabellen waarvan het voordeel zou zijn ANALYZE
, OPTIMIZE
en VACUUM
bewerkingen en wachtrijen om ze uit te voeren met serverloze berekeningen voor taken. Uw account wordt gefactureerd voor berekeningen die zijn gekoppeld aan deze workloads met behulp van een SKU die specifiek is voor Databricks Managed Services. Zie prijzen voor beheerde Databricks-services. Azure Databricks biedt systeemtabellen voor waarneembaarheid in voorspellende optimalisatiebewerkingen, kosten en impact. Zie Systeemtabellen gebruiken om voorspellende optimalisatie bij te houden.
Vereisten voor voorspellende optimalisatie
U moet voldoen aan de volgende vereisten om voorspellende optimalisatie in te schakelen:
Uw Azure Databricks-werkruimte moet zich in het Premium-abonnement bevinden in een regio die predictive optimization ondersteunt. Zie Azure Databricks-regio's.
U moet SQL Warehouses of Databricks Runtime 12.2 LTS of hoger gebruiken wanneer u voorspellende optimalisatie inschakelt.
Alleen beheerde tabellen in Unity Catalog worden ondersteund.
Als u privéconnectiviteit nodig hebt voor uw opslagaccounts, moet u serverloze privéconnectiviteit configureren. Zie Privéconnectiviteit configureren vanuit serverloze berekeningen.
Voorspellende optimalisatie inschakelen
U moet voorspellende optimalisatie inschakelen op accountniveau.
Notitie
Als uw account na 11 november 2024 is gemaakt, is voorspellende optimalisatie standaard ingeschakeld.
U moet over de volgende bevoegdheden beschikken om voorspellende optimalisatie op het opgegeven niveau in of uit te schakelen:
Unity Catalog-object | Privilege |
---|---|
Rekening | Accountbeheerder |
Catalogus | Cataloguseigenaar |
Schema | Schema-eigenaar |
Notitie
Wanneer u voorspellende optimalisatie voor de eerste keer inschakelt, maakt Azure Databricks automatisch een service-principal in uw Azure Databricks-account. Azure Databricks gebruikt deze service-principal om de aangevraagde onderhoudsbewerkingen uit te voeren. Zie Service-principals beheren.
Voorspellende optimalisatie voor uw account inschakelen
Een accountbeheerder moet de volgende stappen uitvoeren om voorspellende optimalisatie in te schakelen voor alle metastores in een account:
- Toegang tot de accountconsole.
- Navigeer naar Instellingen en schakel functie in.
- Selecteer Ingeschakeld naast Voorspellende optimalisatie.
Notitie
Metastores in regio's die geen ondersteuning bieden voor voorspellende optimalisatie, worden niet ingeschakeld.
Voorspellende optimalisatie voor een catalogus of schema in- of uitschakelen
Voorspellende optimalisatie maakt gebruik van een overnamemodel. Wanneer schema's zijn ingeschakeld voor een catalogus, nemen schema's de eigenschap over. Tabellen binnen een ingeschakeld schema nemen voorspellende optimalisatie over. Als u dit overnamegedrag wilt overschrijven, kunt u voorspellende optimalisatie expliciet uitschakelen voor een catalogus of schema.
Notitie
U kunt voorspellende optimalisatie uitschakelen op catalogus- of schemaniveau voordat u deze inschakelt op accountniveau. Als voorspellende optimalisatie later is ingeschakeld voor het account, wordt deze geblokkeerd voor tabellen in deze objecten.
Gebruik de volgende syntaxis om voorspellende optimalisatie in of uit te schakelen:
ALTER CATALOG [catalog_name] {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
ALTER {SCHEMA | DATABASE} schema_name {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
Controleren of voorspellende optimalisatie is ingeschakeld
Het Predictive Optimization
veld is een Unity Catalog-eigenschap die details bevat als voorspellende optimalisatie is ingeschakeld. Als voorspellende optimalisatie wordt overgenomen van een bovenliggend object, wordt dit aangegeven in de veldwaarde.
Belangrijk
U moet voorspellende optimalisatie op accountniveau inschakelen om dit veld weer te geven.
Gebruik de volgende syntaxis om te zien of voorspellende optimalisatie is ingeschakeld:
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name
Systeemtabellen gebruiken om voorspellende optimalisatie bij te houden
Azure Databricks biedt een systeemtabel voor het bijhouden van de geschiedenis van voorspellende optimalisatiebewerkingen. Zie referentie voor systeemtabellen voor voorspellende optimalisatie.
Foutbericht van Private Link
Als de systeemtabel bewerkingen markeert als mislukt, FAILED: PRIVATE_LINK_SETUP_ERROR
hebt u mogelijk niet correct geconfigureerde private link voor serverloze berekeningen. Zie Privéconnectiviteit configureren vanuit serverloze berekeningen.
Beperkingen
Voorspellende optimalisatie is niet beschikbaar in alle regio's. Zie Azure Databricks-regio's.
Voorspellende optimalisatie voert geen opdrachten uit OPTIMIZE
op tabellen die gebruikmaken van Z-order.
Voorspellende optimalisatie voert geen bewerkingen uit VACUUM
op tabellen met een bestandsretentievenster dat is geconfigureerd onder de standaardwaarde van 7 dagen. Zie Gegevensretentie configureren voor query's voor tijdreizen.
Voorspellende optimalisatie voert geen onderhoudsbewerkingen uit in de volgende tabellen:
- Tabellen die zijn geladen in een werkruimte als ontvangers van Delta Sharing.
- Externe tabellen.
- Gerealiseerde weergaven. Zie Gerealiseerde weergaven gebruiken in Databricks SQL.
- Streamingtabellen. Zie Gegevens laden met behulp van streamingtabellen in Databricks SQL.