apache / apache/parquet-java

make the default behavior for proto writing not-backwards compatible

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

説明

https://issues.apache.org/jira/browse/PARQUET-968 introduced supporting maps and lists in a spec compliant way.  however, to not break existing libraries, a flag was introduced and defaulted the write behavior to NOT use the specs compliant writes.

it's been over 5 years, and people should be really off of it.  so much so, that trying to use the new parquet-cli tool to read parquet files generated by flink doesn't work b/c it's hard coded to never allow the old style.  the deprecated parquet-tools reads these files fine b/c it's the older style.

i started coding up a workaround in flink-parquet and parquet-cli, but stopped.  we really should just move on at this point, imho.  protobufs often have repeated primitives and maps, so it's more pressing to get proper specs compliant support for it now.  we should keep the flag around and let people override it back to being backwards compatible though.

i have the code written and can submit a PR if you'd like.

i'm not an expert in parquet though, so i'm unclear as to the deep downstream ramifications of this change, so i would love to get feedback in this area.

**Reporter**: [J Y](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=jinyius) / @jinyius

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

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

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

調査の方向性

まず PARQUET-968 と移行ドキュメントを確認し、その後 flink-parquet と parquet-cli における既存のフラグ処理を調査します。デフォルトが仕様準拠になる一方で、後方互換性のあるオーバーライドが引き続き利用可能であることを確認し、Flink によって生成されたファイルと旧来の形式のファイルに対して parquet-cli をテストします。

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

評価

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

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

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