apache / apache/parquet-java

Vectorized Reader In Parquet

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

説明

Vectorized Query Execution could have big performance improvement for SQL engines like Hive, Drill, and Presto. Instead of processing one row at a time, Vectorized Query Execution could streamline operations by processing a batch of rows at a time. Within one batch, each column is represented as a vector of a primitive data type. SQL engines could apply predicates very efficiently on these vectors, avoiding a single row going through all the operators before the next row can be processed.
As an efficient columnar data representation, it would be nice if Parquet could support Vectorized APIs, so that all SQL engines could read vectors from Parquet files, and do vectorized execution for Parquet File Format.

Detail proposal:
https://gist.github.com/zhenxiao/2728ce4fe0a7be2d3b30

**Reporter**: [Zhenxiao Luo](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=zhenxiao) / @zhenxiao
**Assignee**: [Zhenxiao Luo](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=zhenxiao) / @zhenxiao
#### Subtasks:
- [ ] [[Vectorized Reader] Support Complex Types (Map, Array, Struct) in Parquet Vectorized Reader](https://github.com/apache/parquet-java/issues/1824)
- [ ] [[Vectorized Reader] ColumnVector length should be in terms of rows, not DataPages](https://github.com/apache/parquet-java/issues/1439)
- [ ] [[Vectorized Reader] Make sure all encodings work in Parquet Vectorized Reader](https://github.com/apache/parquet-java/issues/1825)
- [ ] [[Vectorized Reader] Lazy Load in Vectorized Reader](https://github.com/apache/parquet-java/issues/1826)
- [ ] [[Vectorized Reader] Lazy Decoding in Vectorized Reader](https://github.com/apache/parquet-java/issues/1827)
- [ ] [[Vectorized Reader] Add Testcases/Benchmarks for ParquetVectorizedReader](https://github.com/apache/parquet-java/issues/1828)
- [ ] [[Vectorized Reader] Add attributes in ColumnVector and RowBatch](https://github.com/apache/parquet-java/issues/1852)
#### Related issues:
- [Improve Parquet Vectorization](https://issues.apache.org/jira/browse/HIVE-8128) (is related to)
#### Original Issue Attachments:
- [ParquetInPresto.pdf](https://issues.apache.org/jira/secure/attachment/12684592/ParquetInPresto.pdf)
- [Parquet-Vectorized-APIs.pdf](https://issues.apache.org/jira/secure/attachment/12684393/Parquet-Vectorized-APIs.pdf)

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

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

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

調査の方向性

リンクされている vectorized API の提案から始め、現在のスコープに対して一覧にあるサブタスクを確認してください。特に、複合型、エンコーディング、遅延読み込み、ベンチマークを確認します。Parquet が SQL エンジンに適したベクトル化読み取りをサポートし、一覧にある reader の動作とテストまたはベンチマークのカバレッジが対応済みであれば完了です。

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

評価

技術スタック
java
領域
data-engineering
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

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

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