apache / apache/arrow-java

[Java] Port Row Set abstraction from Drill to Arrow

オープン
#372 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
Type: enhancement
主要言語
Java
スター
94
フォーク
152
平均マージ
3日 16時間
マージ済み PR(30日)
11

説明

Arrow is a great way to exchange data between systems. Somewhere in the process, however, data must be load into, and read out of the Arrow vectors.

Arrow's vector code started with similar code in Apache Drill. The Drill project created a "Row Set" abstraction that:
- Provides a simple way to define the schema for a set of batches.
- Loads data into vectors from row-oriented inputs.
- Reads data out of vectors in row-oriented output.
- Controls memory consumed by the record batch when loading data into vectors.
- Ensures maximum usage of the allocated vector space when loading data Into vectors.
- Optionally handles projection when reading data from an input file into a set of vectors.
- Optionally handles data conversion from input to vector formats.

This mechanism is handy for any Java developer who produces or consumes Arrow vectors.

Detailed information is available in [this wiki](https://github.com/paul-rogers/arrow/wiki), including a more detailed description of the motivation for this project, and an analysis of the work required to do the Drill-to-Arrow port.

The code is in Java simply because Drill is written in Java. The same mechanisms can be ported to other languages if useful. Those ports would be separate future projects.

The code will be placed in a new Java module which can be imported by projects that wish to use the code. Changes may be needed to expose items from the `vector` module; we'll tackle those issues if/when they occur.

**Reporter**: [Paul Rogers](https://issues.apache.org/jira/browse/ARROW-3164)

**Note**: *This issue was originally created as [ARROW-3164](https://issues.apache.org/jira/browse/ARROW-3164). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

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

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

調査の方向性

リンクされている Arrow wiki、特にその動機と Drill-to-Arrow の移植分析から始めてください。提案されている新しい Java モジュールが既存の vector モジュールとどのように連携すべきかを確認し、必要な公開範囲の変更を特定してください。Row Set 抽象化が、説明されているスキーマ、ロード、読み取り、メモリ、射影、変換の機能を備えたインポート可能な Java モジュールへ移植されれば完了です。

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

評価

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

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

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