apache / apache/parquet-java

Add way to disables statistics on a per column basis

オープン
#2,521 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る
Component: Java Component: Parquet Priority: Major Type: enhancement
主要言語
Java
スター
3.1k
フォーク
1.6k
平均マージ
3日 12時間
マージ済み PR(30日)
33

説明

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.*

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず、添付された NoOpStatistics.java と add_config_to_opt-out_of_a_column's_statistics.patch を読み、続いて footer のシリアライズ前に BlockMetaData 内で統計情報がどのように蓄積されるかを追跡してください。大きな BINARY 列が min/max 値を蓄積して OutOfMemory エラーを引き起こさないよう、列ごとに統計情報を無効化できる方法を提供できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
data-engineering
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。