← R2 Data Catalog / r2-data-catalog
Ú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:
- Komprimace: Slučuje malé datové soubory do větších, efektivnějších souborů a zlepšuje tak výkon dotazů
- Vypršení platnosti snímků: Odstraňuje staré snímky tabulky a veškeré neodkazované datové soubory za účelem snížení režie metadat a nákladů na úložiště
Bez pravidelné údržby mohou tabulky trpět:
- Zhoršení výkonu dotazů: Více souborů ke skenování znamená pomalejší dotazy a vyšší náklady na výpočetní výkon
- Zvýšené náklady na úložiště: Hromadění malých souborů a starých snímků zbytečně zvyšuje spotřebu úložiště
- Režie metadat: Velké soubory metadat zpomalují plánování dotazů a operace s tabulkou
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:
- Pomalejší dotazy a vyšší počet I/O operací: bez kompaktace musí query enginy otevřít a přečíst každý jednotlivý soubor, což prodlužuje dobu zpracování dotazů a zvyšuje náklady.
- Zvýšená režie metadat: dotazovací nástroje musí prohledat soubory metadat, aby zjistily, které z nich mají číst. Při tisících malých souborů trvá plánování dotazu déle, ještě než dojde k přístupu k datům.
- Nižší účinnost komprese: menší soubory se komprimují méně efektivně než větší soubory, což vede k vyšším nákladům na úložiště a přenosu více dat během dotazů.
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-tablePodrobnosti 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 zátěže citlivější na latenci zvažte menší cílovou velikost souboru (například 64 MB - 128 MB)
- Pro zátěže se streamovaným příjmem dat zvažte střední velikost souborů (například 128 MB - 256 MB)
- Pro dotazy ve stylu OLAP, které potřebují prohledat velké množství dat, zvažte větší velikost souborů (například 256 MB - 512 MB)
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:
- Režie metadat: Každý snímek přidává záznamy do souborů metadat tabulky. S rostoucím počtem snímků se soubory metadat zvětšují, což zpomaluje plánování dotazů a operace s tabulkou
- Zvýšené náklady na úložiště: Staré snímky odkazují na datové soubory, které již nemusí být potřeba. Bez vypršení platnosti snímků tyto soubory nadále zbytečně zabírají úložiště
- Pomalejší operace s tabulkou: Operace jako výpis snímků nebo přístup k historii tabulky se postupem času zpomalují
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:
--older-than-days: Odeberte snímky starší než tento počet dní (výchozí hodnota: 30 dní)--retain-last: Vždy zachovejte alespoň tento minimální počet nedávných snímků (výchozí hodnota: 5 snímků)
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-bucketZvolte správné zásady uchovávání
Různé pracovní zátěže vyžadují různé strategie uchovávání snímků:
- Vývojové a testovací tabulky: Kratší doba uchování (2-7 dní, 5 snímků) pro minimalizaci nákladů na úložiště
- Produkční analytické tabulky: Střední doba uchování (7-30 dní, 10-20 snímků) pro ladění a analýzu
- Tabulky pro dodržování předpisů a audit: Delší doba uchování (30-90 dní, 50+ snímků) pro splnění regulatorních požadavků
- Vysokofrekvenční příjem dat: Vyšší minimální počet snímků pro zachování podrobnější historie
Toto jsou obecná doporučení, nezapomeňte zohlednit:
- Požadavky pro časové cestování
- Požadavky na soulad s předpisy
- Náklady na úložiště
Aktuální omezení
- S kompaktací jsou v současnosti podporovány pouze datové soubory uložené ve formátu parquet.
- Soubory, na které dříve neodkazoval žádný snapshot, se nevyčistí (osiřelé soubory).
- Minimální cílová velikost souboru pro kompaktaci je 64 MB a maximální 512 MB.