apache / apache/iceberg-python

Pluggable Scan Planning

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

説明

### Feature Request / Improvement

Umbrella issue. Today we have tightly coupled query planning in Python. This works well but runs into limitations when it comes to concurrency and performance. Having pluggable query planning will allow for:

- **Python based query planning** which is working today and is proven.
- **Iceberg-Rust based query planning** as suggeted in https://github.com/apache/iceberg-python/issues/2159#issuecomment-3033339213.
- **REST Catalog server side planning** this leverages the REST Catalog to plan the query, rather than the client. First issue can be found here: https://github.com/apache/iceberg-python/issues/2302.

As an API, I think it makes sense to follow the Server Side planning. So a `PlanTableScanRequest` as an input, and the [ScanTasks](https://github.com/apache/iceberg/blob/68a241615e104d97a86c932c381d7dfac802d769/open-api/rest-catalog-open-api.py#L1290) as the output.

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

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

調査の方向性

まず、このアンブレラ issue を issue 2302 と併せて読みます。issue 2302 では、REST Catalog の最初のサーバーサイド計画作業を扱っています。提案されている PlanTableScanRequest 入力と ScanTasks 出力を確認し、既存の Python クエリ計画パスと比較します。Python、Iceberg-Rust、REST Catalog の計画に対応できる、合意済みの pluggable planning API ができれば完了です。

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

評価

技術スタック
python, rust
領域
backend-api-design, distributed-systems
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
静か
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

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

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