Gå til innhold

Lagring og ytelse

Delta-tabeller i Databricks skriver som standard filene i ankomstrekkefølge, uten noen eksplisitt gruppering av data. Tre strategier styrer hvordan data grupperes fysisk i Parquet-filer på disk, og vedlikeholdsoperasjonene OPTIMIZE og VACUUM kan kjøres på to måter.

Grupperingsstrategier

Tre strategier er tilgjengelige for å kontrollere hvordan data grupperes fysisk i Parquet-filer på disk.

Strategi Beskrivelse Passer for
Liquid Clustering Databricks-administrert strategi som automatisk omorganiserer data basert på angitte kolonner. Kan endres uten å skrive om tabellen. Tabeller med varierende eller uforutsigbare spørringsmønstre.
Partisjonering Data deles inn i fysisk separate kataloger basert på distinkte verdier i én kolonne. Krever full omskriving av tabellen for å endres. Se merknad nedenfor. Tabeller med én kolonne med et begrenset antall distinkte verdier (i hundrevis) som konsekvent brukes i WHERE-setninger. Eksempel på egnede kolonner: Dato eller transaksjonstype.
Z-ordering Co-lokaliserer relaterte data i de samme Parquet-filene slik at Databricks kan hoppe over irrelevante filer under spørringer basert på min/maks-statistikk. Tabeller med høy lesefrekvens der spørringer filtrerer på bestemte kolonner. Eksempel på egnet kolonne: Bruker-ID.

Vedlikeholdsoperasjoner

To tilnærminger finnes for å kjøre OPTIMIZE og VACUUM på Delta-tabeller.

Prediktiv optimalisering

En Databricks-funksjon som automatisk utløser OPTIMIZE og VACUUM basert på observerte bruksmønstre. Krever ingen eksplisitt planlegging eller manuell kjøring.

Eksplisitt OPTIMIZE og VACUUM

Manuelt planlagte vedlikeholdsoperasjoner:

  • OPTIMIZE komprimerer små Parquet-filer til større filer for å redusere fragmentering og forbedre spørringsytelse.
  • VACUUM sletter Parquet-filer som ikke lenger er referert til av Delta-loggen, og frigjør lagringsplass. Standard oppbevaringsperiode er 7 dager.

Begrensninger

  • Partisjonering på kolonner med svært høy kardinalitet (mange distinkte verdier) kan gi dårligere ytelse enn ingen partisjonering.
  • Z-ordering må angis eksplisitt ved hver OPTIMIZE-kjøring for å opprettholdes.
  • Liquid Clustering krever Databricks Runtime 13.3 eller nyere.

Partisjonering kan ikke reverseres uten omskriving

En partisjonert tabell kan ikke ompartisjoneres eller avpartisjoneres uten full omskriving av tabellen.

Eksempel

CREATE TABLE my_table (
  user_id BIGINT,
  user_name STRING
) CLUSTER BY AUTO;

VACUUM my_table;
OPTIMIZE my_table;

Relatert innhold