[Java] Consume Substrait Plans
- 主要言語
- Java
- スター
- 94
- フォーク
- 152
- 平均マージ
- 3日 16時間
- マージ済み PR(30日)
- 11
説明
### Describe the enhancement requested
The main purpose is to expose Java API to be able to Consume Substrait Plans as an input data.
**High level proposal will be:**
1. Create Java JNI Wrappers to call C++ Substrait API:
- Call `Result> ExecuteSerializedPlan` from JNI Wrappers
- Expose the result in a C-Data Interface objects contract
2. Create Java API to read C-Data Interface:
- Call Java JNI Wrapper to execute serialized Substrait Plan
- Convert C-Data Interface `ArrowArrayStream` into `ArrowReader`: `Data.importArrayStream(this.allocator, arrowArrayStream)`
Parent issue, see subtasks
- https://github.com/apache/arrow/issues/34223
- https://github.com/apache/arrow/issues/34224
- https://github.com/apache/arrow-java/issues/216
- https://github.com/apache/arrow/issues/34226
### Component(s)
Documentation, Java, Packaging
コントリビューションガイド
調査の方向性
まず、提案されている JNI エントリポイント ExecuteSerializedPlan と、Java の変換呼び出し Data.importArrayStream(this.allocator, arrowArrayStream) を読みます。スコープを確定するため、リンクされている親 issue とサブタスクを確認します。Java から JNI 経由でシリアライズされた Substrait プランを実行し、C Data Interface を使用して結果を ArrowReader として公開できれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp, java
- 領域
- api, backend
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100