[Umbrella] Implement PendingUpdate subclasses
- Ngôn ngữ chính
- C++
- Star
- 221
- Fork
- 124
- Merge trung bình
- 1 ngày 16 giờ
- Pull request đã merge (30 ngày)
- 21
Mô tả
This issue tracks the progress of implementation of `PendingUpdate` subclasses. To implement each subclass, we need to make sure that following goals are met:
1. Implement respective functions in the [`TableMetadataBuilder`](https://github.com/apache/iceberg-cpp/blob/dbcbdf23ff7ebe5510431715fd66c7841df3d9fd/src/iceberg/table_metadata.h#L196) for this kind of update.
2. Implement respective [`TableUpdate`](https://github.com/apache/iceberg-cpp/blob/main/src/iceberg/table_update.h) subclass (if exists) to apply uncommitted changes to TableMetadataBuilder and generate update requirements.
3. Expose the new update as an interface to [`Table`](https://github.com/apache/iceberg-cpp/blob/main/src/iceberg/table.h) and [`Transaction`](https://github.com/apache/iceberg-cpp/blob/main/src/iceberg/transaction.h) classes.
Below is the list of subclasses that are expected to add. They should be put into the `iceberg/update` subdirectory.
### Medadata Update:
Unlike Java, we don't need pure interface for these classes.
- [x] UpdateProperties @WZhuo
- [x] ReplaceSortOrder @HeartLinked
- [x] UpdateSchema @gty404
- [x] UpdatePartitionSpec @zhjwpku
- [x] ManageSnapshots (<- SnapshotManager) @zhjwpku
- [x] SetSnapshot @HeartLinked
- [x] UpdateLocation (<- SetLocation) @HeartLinked
- [x] UpdatePartitionStatistics @HeartLinked
- [x] UpdateSnapshotReference @zhjwpku
- [x] UpdateStatistics @HeartLinked
- [x] ExpireSnapshots @dongxiao1198 @shangxinli
### Data Update:
For these classes, we still need intermediate interfaces and classes to consolidate common logic.
- [x] SnapshotUpdate(SnapshotProducer) @zhjwpku
- [x] FastAppend @zhjwpku
- [ ] MergingSnapshotProducer @gty404 (planned in 0.3.0)
- [ ] OverwriteFiles @gty404 (planned in 0.3.0)
- [ ] RowDelta
- [ ] MergeAppend
- [ ] DeleteFiles
- [ ] RewriteFiles
- [ ] ReplacePartitions
- [ ] RewriteManifests
- [ ] CherryPickOperation
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu với các lớp con chưa được đánh dấu được liệt kê cho thư mục iceberg/update và so sánh chúng với các triển khai đã hoàn tất. Đọc src/iceberg/table_metadata.h, src/iceberg/table_update.h, src/iceberg/table.h và src/iceberg/transaction.h để theo dõi các giao diện metadata, update và public bắt buộc. Được coi là hoàn tất khi lớp con được chọn đã được triển khai và được cung cấp thông qua các API Table và Transaction liên quan.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp
- Lĩnh vực
- databases
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100