apache / apache/fluss

[Umbrella] Support full scan in batch mode for PrimaryKey Table

Open
#1,876 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Java
Stars
2.1k
Forks
625
Avg merge
3d 14h
Merged PRs (30d)
97

Description

### Search before asking

- [x] I searched in the [issues](https://github.com/apache/fluss/issues) and found nothing similar.

### Motivation

Currently, Fluss does not support performing full snapshot scans of the latest data in batch-execution mode on Primary-Key tables. However, this capability is critically important in many scenarios, such as OLAP queries or ad-hoc data inspection.
The existing LimitBatchScanner does not support full snapshot inspection, and the KvSnapshotBatchScanner does not support ad-hoc queries on the current dataset snapshot. Neither of them meets the requirements.

### Solution

The above features can be separated into two subtasks:
- [ ] Fluss supports ad-hoc full snapshot scanning for Primary Key Tables
- [ ] Flink Integration: support non-limited scanning for Primary Key Tables in batch execution mode

### Anything else?

The underlying implementation of the newly introduced BatchScanner should follow the streaming fetch mode to avoid scanning large datasets in a single RPC communication.

### Willingness to contribute

- [ ] I'm willing to submit a PR!

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the existing LimitBatchScanner and KvSnapshotBatchScanner implementations, then trace the newly introduced BatchScanner and its streaming fetch mode. Check the Flink Integration requirements for batch execution. Done means Primary Key Tables support ad-hoc full snapshot scans and Flink supports non-limited batch scans without sending the whole dataset in one RPC.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.