apache / apache/iceberg-python

Why non-atomic delete and upsert?

オープン
#3,577 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
1.1k
フォーク
581
平均マージ
1日 17時間
マージ済み PR(30日)
78

説明

### Question

The implementation of the `delete` and `upsert` operation make an deliberate choice to create multiple snapshots, breaking the atomicity expectation.

For example, if I start a `delete` operation to remove some entries, I do not expect consumers of the data to see a snapshot with some but not all of the entries gone.

Given that the implementation choice looks very deliberate, I'm curious about the rationale for it?

It seems that other clients of the library expect atomic operation as well, for example https://github.com/apache/iceberg-python/issues/3076

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

この issue ではファイル、テスト、エントリポイントが指定されていないため、まず PyIceberg 内の delete と upsert の実装を見つけ、どのようにスナップショットを作成しているかを確認してください。観測された複数スナップショットの動作が意図的なものかどうかを判断し、変更を加える前に、その根拠を文書化するか、必要なアトミックな動作を定義してください。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
data-engineering, databases
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。