INTEGRITY Dokumentace

Údržba tabulek

Údržba tabulek zahrnuje soubor operací, které udržují vaše tabulky Apache Iceberg výkonné a nákladově efektivní i v dlouhodobém horizontu. Jak se data zapisují, aktualizují a mažou, tabulky postupně hromadí metadata a soubory, což může časem zhoršovat výkon dotazů.

R2 Data Catalog automatizuje dvě klíčové operace údržby:

Bez pravidelné údržby mohou tabulky trpět:

Díky povolení automatické údržby tabulek zajišťuje R2 Data Catalog, že vaše tabulky zůstávají optimalizované, aniž byste je museli spouštět ručně.

Proč potřebuji komprimaci?

Každá zapisovací operace v Apache Iceberg ↗, bez ohledu na velikost, vede ke vzniku řady nových souborů. Postupem času může počet souborů neomezeně narůstat. To může vést k těmto problémům:

Automatická kompaktace R2 Data Catalog

R2 Data Catalog nyní umí správa komprimace pro tabulky Apache Iceberg uložené v R2. Po povolení se kompaktace spouští automaticky a slučuje nové soubory, které ještě nebyly zkompaktovány.

Zkomprimované soubory mají předponu compacted- v /data/ adresáři příslušné tabulky.

Příklady

# Enable catalog-level compaction (all tables)
npx wrangler r2 bucket catalog compaction enable my-bucket \
  --target-size 128 \
  --token $R2_CATALOG_TOKEN

# Enable compaction for a specific table
npx wrangler r2 bucket catalog compaction enable my-bucket my-namespace my-table \
  --target-size 256

# Disable catalog-level compaction
npx wrangler r2 bucket catalog compaction disable my-bucket

# Disable compaction for a specific table
npx wrangler r2 bucket catalog compaction disable my-bucket my-namespace my-table

Podrobnosti o správě kompaktace najdete v Správa katalogů.

Zvolte správnou cílovou velikost souboru

Cílovou velikost souboru pro komprimaci můžete nakonfigurovat. Minimum v současnosti činí 64 MB a maximum 512 MB.

Různé výpočetní enginy mají různé optimální velikosti souborů, proto si ověřte informace v jejich dokumentaci.

Kompromisy ve výkonu závisí na konkrétním případu použití. Dotazy vracející malé množství dat mohou být rychlejší u menších souborů, protože větší soubory mohou vést k načítání zbytečných dat.

Proč potřebuji expiraci snímků?

Každý zápis do tabulky Iceberg, ať už jde o vložení, aktualizaci nebo odstranění, vytvoří nový snapshot. Snapshoty se postupně hromadí a mohou způsobit problémy s výkonem:

Automatické vypršení platnosti snímků R2 Data Catalog

Nakonfigurujte expiraci snímků

Vypršení platnosti snímků určuje pomocí dvou parametrů, které snímky se mají odstranit:

Aby snímek expiroval, musí být splněny obě podmínky. Díky tomu si vždy zachováte nedávné snímky, i když jsou starší než prahová hodnota stáří.

Příklady

# Enable snapshot expiration for entire catalog
# Keep minimum 10 snapshots, expire those older than 7 days
npx wrangler r2 bucket catalog snapshot-expiration enable my-bucket \
  --token $R2_CATALOG_TOKEN \
  --older-than-days 7 \
  --retain-last 10

# Enable for specific table
# Keep minimum 5 snapshots, expire those older than 2 days
npx wrangler r2 bucket catalog snapshot-expiration enable my-bucket my-namespace my-table \
  --token $R2_CATALOG_TOKEN \
  --older-than-days 2 \
  --retain-last 5

# Disable snapshot expiration for a catalog
npx wrangler r2 bucket catalog snapshot-expiration disable my-bucket

Zvolte správné zásady uchovávání

Různé pracovní zátěže vyžadují různé strategie uchovávání snímků:

Toto jsou obecná doporučení, nezapomeňte zohlednit:

Aktuální omezení