Row lineage

オープン
#4,080 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python
領域
data

調査の方向性

Start with the scan projection and REST scan-planning code, then inspect the manifest and data-file metadata handling for first_row_id and data sequence numbers. Check the existing tests around scans, deletes, and inspect.files() before adding coverage. Done means scans expose both lineage columns with the specified null handling and position semantics, and the requested integration comparisons pass.

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

説明

V3
Feature Request / Improvement

We want to be able to read the row-lineage values on a table. This is a blocker for writing v3 tables.

table.scan(selected_fields=("id", "_row_id", "_last_updated_sequence_number"))
  • Data files with a null first_row_id inherit it from the manifest's first_row_id plus a running record count: #3972
  • Define the reserved columns _row_id (2147483540) and _last_updated_sequence_number (2147483539)
  • Let scans project them
  • Use the values stored in the file if there are any. Fill nulls with first_row_id + pos and the file's data sequence number.
  • Compute pos before applying deletes
  • Show first_row_id in inspect.files()
  • REST scan planning drops first_row_id
  • Integration test: each file's first_row_id matches Spark's MIN(_row_id): #3972
  • Integration test: Spark MERGE / UPDATE / rewrite_data_files, then compare with Spark's SELECT _row_id, _last_updated_sequence_number
主要言語
Python
スター
1.2k
フォーク
654
平均マージ
2日 11時間
マージ済み PR(30日)
122

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/iceberg-python のほかの issue

apache/iceberg-python の issue をすべて見る

似ている issue

Python の issue をもっと見る

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

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