apache / apache/parquet-java

Delta Encoding is not used when dictionary enabled

Offen
#2,024 7 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Component: Java Component: Parquet Priority: Major Type: bug
Vorherrschende Sprache
Java
Sterne
3.1k
Forks
1.6k
Ø Merge
3 T. 12 Std.
Gemergte PRs (30 T.)
33

Beschreibung

Current code doesn't enable using both Delta Encoding and Dictionary Encoding. If I instantiate ParquetWriter like this :
```Java
val writer = new ParquetWriter[Group](outFile, new GroupWriteSupport, codec, blockSize, pageSize, dictPageSize, enableDictionary = true, true, ParquetProperties.WriterVersion.PARQUET_2_0, configuration)
```

Then this piece of code :
https://github.com/apache/parquet-mr/blob/master/parquet-column/src/main/java/org/apache/parquet/column/values/factory/DefaultValuesWriterFactory.java#L78-L86

Causes that DictionaryValuesWriter is used instead of the inferred DeltaLongEncodingWriter.

The original issue is here : https://github.com/apache/parquet-mr/pull/154#issuecomment-266489768

**Reporter**: [Jakub Liska](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=l154k)

**Note**: *This issue was originally created as [PARQUET-796](https://issues.apache.org/jira/browse/PARQUET-796). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginnen Sie in parquet-column/src/main/java/org/apache/parquet/column/values/factory/DefaultValuesWriterFactory.java bei den Zeilen 78-86 und verfolgen Sie anschließend, wie DictionaryValuesWriter anstelle des ermittelten DeltaLongEncodingWriter ausgewählt wird. Rekonstruieren Sie die ParquetWriter-Konfiguration aus dem Issue und fügen Sie Tests hinzu, die das erwartete Encoding-Verhalten zeigen, wenn Dictionary Encoding aktiviert ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
data-engineering
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.