apache / apache/parquet-java

Add way to disables statistics on a per column basis

Aperta
#2,521 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Component: Java Component: Parquet Priority: Major Type: enhancement
Lingua principale
Java
Stelle
3.1k
Fork
1.6k
Merge medio
3g 12h
PR unite (30g)
33

Descrizione

When you write dataset with BINARY columns that can be fairly large (several Mbs) you can often end with an OutOfMemory error where you either have to:

 

 - Throw more RAM

 - Increase number of output files

 - Play with Block size

 

Using a fork with increased checks frequency for row group size help but it is not enough. (PR: )

 

 

The OutOfMemory error is now caused due to the accumulation of min/max values for those columns for each BlockMetaData.

 

The "parquet.statistics.truncate.length" configuration is of no help because it is applied during the footer serialization whereas the OOM occurs before that.

 

I think it would be nice to have, like for dictionary or bloom filter, a way to disable the statistic on a per-column basis.

 

Could be very useful to lower memory consumption when stats of huge binary column are unnecessary.

 

 

 

**Reporter**: [Anthony Pessy](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=panthony) / @panthony
#### Original Issue Attachments:
- [add_config_to_opt-out_of_a_column's_statistics.patch](https://issues.apache.org/jira/secure/attachment/13011473/add_config_to_opt-out_of_a_column%27s_statistics.patch)
- [NoOpStatistics.java](https://issues.apache.org/jira/secure/attachment/13037932/NoOpStatistics.java)

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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia leggendo i file allegati NoOpStatistics.java e add_config_to_opt-out_of_a_column's_statistics.patch, quindi traccia il modo in cui le statistiche si accumulano in BlockMetaData prima della serializzazione del footer. Il lavoro è completo quando viene fornito un modo per disabilitare le statistiche per colonna, così che le colonne BINARY di grandi dimensioni non accumulino più valori min/max causando errori OutOfMemory.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
data-engineering
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.