apache / apache/hudi

Expand scope of shredded type supports

Open
#18,070 0 comments 0 reactions 0 assignees View on GitHub
type:devtask
Dominant language
Java
Stars
6.2k
Forks
2.5k
Avg merge
2d 8h
Merged PRs (30d)
111

Description

### Task Description

**What needs to be done:**

The current state of parquet-shredding scope is defined here:

https://github.com/apache/parquet-format/blob/4b1c72c837bec5b792b2514f0057533030fcedf8/VariantShredding.md?plain=1#L81-L108

While we are currently iterating on our support for shredded, it is best we keep our PRs small and iterate on changes while implementing this feature. As such, we have limited the scope of our shredded type support to limited types.

As such, after blockers are removed we should expand the scope to match up with parquet's shredded spec.

**Why this task is needed:**

Reduce delta between Parquet support and Hudi support, reducing user confusion as we currently have 2 paths.

One, being `HoodieRecordType.SPARK` which does not go through the Avro write support. And `HoodieRecordType.AVRO` which does.

Hence, within our own code paths, there's discrepancies in behaviour. This task aims to reduce this discrepancy with tests added to prevent regression.

### Task Type

Code improvement/refactoring

### Related Issues

**Parent feature issue:** (if applicable )
**Related issues:**
NOTE: Use `Relationships` button to add parent/blocking issues after issue is created.

Contributor guide

No contributing guide indexed for this repository

Research direction

Read the linked VariantShredding.md scope definition first, then inspect the existing Hudi support for shredded types and the SPARK and AVRO record paths. Compare the currently supported types with the Parquet shredded specification; done means the supported scope is expanded and regression tests cover the aligned behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spark
Domain
data-engineering
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.