Databricks Iceberg REST catalog doesn't support multiple snapshots per transaction
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par reproduire l’échec avec le Databricks ou Unity Iceberg REST catalog au moyen d’une transaction contenant plusieurs snapshots. Suivez .commit_transaction(), les deux appels à .update_snapshot() dans la méthode delete et le comportement de la transaction environnante ; le travail sera considéré comme terminé lorsque pyiceberg pourra valider de manière fiable des opérations compatibles lorsque le catalog rejette plusieurs snapshots par transaction.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- Python
- Étoiles
- 1.1k
- Forks
- 606
- Merge moyen
- 2 j 38 min
- PR mergées (30 j)
- 64
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/iceberg-python
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
apache/iceberg-python#4010 · 3 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
apache/iceberg-python#3996 ·
Les mainteneurs répondent en général sous 1 jour
-
Deletion vector bitmap count is read from the blob and used as a loop bound without validationOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
apache/iceberg-python#3979 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
apache/iceberg-python#3885 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug] PyArrowFileIO fails to propagate s3.ssl.ca-cert to pyarrow.fs.S3FileSystem tls_ca_file_pathOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
apache/iceberg-python#3866 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de apache/iceberg-python
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
mozilla/bedrock#17413 · 1 réaction ·
Les mainteneurs répondent en général sous 2 jours
-
instance instance add
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
searxng/searx-instances#943 · 1 commentaire ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
bug tools
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
lance-format/lance#9655 ·
Les mainteneurs répondent en général sous 2 jours