apache / apache/arrow-java

[Java] Port Row Set abstraction from Drill to Arrow

Đang mở
#372 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
Type: enhancement
Ngôn ngữ chính
Java
Star
94
Fork
152
Merge trung bình
3 ngày 16 giờ
Pull request đã merge (30 ngày)
11

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với wiki Arrow được liên kết, đặc biệt là phần động lực và phân tích port Drill-to-Arrow của wiki đó. Xem xét cách module Java mới được đề xuất nên tương tác với module vector hiện có và xác định mọi thay đổi về khả năng truy cập cần thiết. Công việc được xem là hoàn tất khi abstraction Row Set được port sang một module Java có thể import, với các khả năng về schema, loading, reading, memory, projection và conversion như đã mô tả.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java
Lĩnh vực
data
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
20/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.