PyIceberg Near-Term Roadmap
kevinjqliu opened this issue · comments
Feature Request / Improvement
PyIceberg 0.7.0
The main objective of 0.7.0 is to have partitioned writes (non-exhaustive list :)
- Support for merge-into / upsert: #402
- Support for parallelizing writes: #428 #346
- Support parallelized writes: #444
- Support
table_exists
on catalog: #406 #507, fixed in #512 - Metadata tables: #511
- Files assigned to @Gowthami03B, PR in #614
- Snapshots assigned to @Fokko in #524
- History assigned to @ndrluis in #828
- Metadata log entries @kevinjqliu (issue in #594): #667
- Manifests @geruh: PR in #717
- Partitions assigned to @syun64 (issue in #24): #603
- References assigned to @geruh in #602
- Entries assigned to @Fokko in #551
- Manifest read/write improvements:
- Incremental append scan: #533
PyIceberg 0.8.0
- Table maintenance:
- Snapshot expiration
- Metadata rewrites
- Compaction
- Delete orphan files
- Catalogs:
- ORC Support: #20
- Branch Support: #306
- Tag Support: #573. PR: #603
- Write with Sort Order #271
- Support deletes with Merge-on-read: #1078
- Support writes to Bucket Partitioned Tables: #1074
PyIceberg 1.0.0
Long-term goals:
- Support Griffe to detect breaking API changes #334: #394
- Implement Arrow dataset: #30
- Support table maintenance operations: #31
- Add View support
- Add Puffin support
- Support engine integrations
- DuckDB
- Daft (Eventual-Inc/Daft#1877)
- Polars (pola-rs/polars#15018)
- Ray
- Support Commit Retries: #269
@kevinjqliu @Fokko Where would something like the Iceberg Spark create_changelog_view
procedure fit in this roadmap? Is that something that might be tackled as part of the other procedures under table maintenance, or is it likely to come later (1.0.0), or not at all in PyIceberg?
Sorry for the late reply, I was touching grass.
@kevinjqliu @Fokko Where would something like the Iceberg Spark create_changelog_view procedure fit in this roadmap? Is that something that might be tackled as part of the other procedures under table maintenance, or is it likely to come later (1.0.0), or not at all in PyIceberg?
Thanks for bringing this up @corleyma 🙌 Some related work is being done in #533 and I think PyIceberg should definitely support something like that.
@kevinjqliu @Fokko where would something like #402 go?
I've added it to the overview. Once the partial deletes + partitioned writes are in, this is supported automatically. We might want to have some community discussion on the API once those two PRs land.
@Fokko can we add issues for creating tests and documentation for the new features of 0.7.0 as good first issues?
@Fokko can we add issues for creating tests and documentation for the new features of 0.7.0 as good first issues?
@tusharchou: Whenever you create a new feature, you need to add the unit & integration test and make the necessary changes in mkdocs as a part of that PR, but if you feel like there are some missing parts, please feel free to raise an improvement/issue and we can discuss that in the python syncup.