apache / apache/parquet-java

Is big Decimal in Parquet big endian?

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

説明

### Describe the usage question you have. Please include as many useful details as possible.

It's not clear from description https://parquet.apache.org/docs/file-format/data-pages/encodings/ how are big Decimals (precision >= 18) placed. As I could understand they can be encoded as BYTE_ARRAY or FIXED_LEN_BYTE_ARRAY. But there're two ways to place "the bytes contained in the array" from memory: big endian and little endian. I.e. they are in LE in int128 in memory. Could I place the bytes into FIXED_LEN_BYTE_ARRAY as is?

It's also not clean if there's some encoding over these decimal's bytes, should the data be swapped to correct endianness before of after the encoding?

### Component(s)

_No response_

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

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

調査の方向性

Issue にリンクされている Parquet のデータページエンコーディングのドキュメントから始め、BYTE_ARRAY と FIXED_LEN_BYTE_ARRAY の decimal 値に関するバイト順序とエンコーディング規則を確認します。完了条件は、大きな decimal が big-endian と little-endian のどちらのバイトを使用するのか、またエンコーディングまたはバイトスワッピングがいつ発生するのかを文書化することです。

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

評価

領域
data-engineering
issue の種類
ドキュメント
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

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

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