Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Databricks Iceberg REST catalog doesn't support multiple snapshots per transaction

Aperta
#3,076 1 commento 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
databases

Direzione di ricerca

Inizia riproducendo il problema con il Databricks o Unity Iceberg REST catalog usando una transazione contenente più snapshots. Traccia .commit_transaction(), le due chiamate a .update_snapshot() nel metodo delete e il comportamento della transazione circostante; il lavoro sarà completato quando pyiceberg potrà eseguire il commit in modo affidabile di operazioni compatibili quando il catalog rifiuta più snapshots per transazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Apache Iceberg version

0.10.0 (latest release)

Please describe the bug 🐞

When connecting with the databricks / unity iceberg REST catalog to write data using pyiceberg, commits fail at .commit_transaction() if the transaction contains several snapshots:
pyiceberg.exceptions.CommitFailedException: CommitFailedException: Failed to commit to the table, requirement failed: Adding multiple snapshots in a single update is not supported.

This is tricky, since some of the higher-level operations use transactions, but also the "primitives" can fail if a delete happens to contain 2 snapshots (.update_snapshot() is called in two places in the delete method).
However these failures might not appear on the happy path but only if eg another writer process has modified the table and the pyiceberg writer then fails because that triggers two snapshots in a transaction

Assuming databricks doesn't intend to bring multi-snapshot transactions into their iceberg rest catalog, would it be possible to add full "autocommit" support to pyiceberg, such that each snapshot can get committed indiviudually?
The transactions would loose their point, but at least one can then again use pyiceberg with unity's iceberg rest reliably

Steps to reproduce:

  • Connect to Databricks iceberg REST using pyiceberg
  • Open a transaction
  • perform operations that generate 2 or more snapshots
  • Attempt commit
Willingness to contribute
  • I can contribute a fix for this bug independently
  • I would be willing to contribute a fix for this bug with guidance from the Iceberg community
  • I cannot contribute a fix for this bug at this time
Lingua principale
Python
Stelle
1.1k
Fork
589
Merge medio
2g 2h
PR unite (30g)
70

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/iceberg-python

Tutte le issue di apache/iceberg-python

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.