Avro schema is re-converted to an Iceberg schema on every manifest read during scan planning
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- リファクタリング
- 明瞭さ
- 明確に書かれている
- 活発さ
- 静か
- 技術スタック
- python
- 領域
- performance
調査の方向性
pyiceberg/avro/file.py の AvroFileHeader.get_schema() から始め、avro_to_iceberg 変換を追跡します。繰り返し同じマニフェストを使って scan().plan_files() を実行し、同じ処理が繰り返されることを観察して、変換結果がスキーマ文字列によって再利用されることを確認します。マニフェスト数が増えるにつれて、プランニングのパフォーマンスが向上します。
索引モデルが issue の本文から書いたものです。
説明
Feature Request / Improvement
AvroFileHeader.get_schema() (pyiceberg/avro/file.py) runs the full avro_to_iceberg conversion every time an
Avro file is opened.
The inefficiency
- Every manifest under a spec embeds an identical Avro schema string.
- So during scan planning, that same conversion is repeated once per manifest.
- The cost grows with the manifest count, even though only a couple of distinct schemas are ever involved.
Proposed fix
- The conversion depends only on the schema string, so the result can be cached (keyed on that string).
Measured impact
scan().plan_files()on an unpartitioned 150-manifest table: ~86 ms → ~48 ms (~1.8× faster).- The saving grows as the number of manifests increases.
I am willing to contribute for this improvement.
- 主要言語
- Python
- スター
- 1.1k
- フォーク
- 589
- 平均マージ
- 2日 4時間
- マージ済み PR(30日)
- 72
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/iceberg-python のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/iceberg-python#3996 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
apache/iceberg-python#3979 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/iceberg-python#3885 ·
-
[Bug] PyArrowFileIO fails to propagate s3.ssl.ca-cert to pyarrow.fs.S3FileSystem tls_ca_file_path オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
apache/iceberg-python#3866 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/iceberg-python#3836 · コメント 1 件 ·
apache/iceberg-python の issue をすべて見る
似ている issue
-
documentation help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
simonw/sqlite-utils#872 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100