apache arrow - rabbit slide show...python, c, ruby, lua, matlab, r...
TRANSCRIPT
![Page 1: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/1.jpg)
Apache Arrow Powered by Rabbit 2.2.2
Apache Arrow
須藤功平株式会社クリアコード
RubyData Tokyo Meetup2018-11-17
![Page 2: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/2.jpg)
Apache Arrow Powered by Rabbit 2.2.2
Apache Arrow
各種言語で使えるインメモリーデータ処理
プラットフォーム
![Page 3: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/3.jpg)
Apache Arrow Powered by Rabbit 2.2.2
提供するもの
高速なデータフォーマット✓
高速なデータ処理ロジック各プロダクトで個別に実装するより一緒にいいものを実装して共有しよう!
✓
✓
効率的なデータ交換処理✓
...✓
![Page 4: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/4.jpg)
Apache Arrow Powered by Rabbit 2.2.2
利用例
高速なデータ処理ロジック
Apache Arrow提供高速なデータフォーマット
効率的なデータ交換処理
分散処理ツール
コーディネーター
ワーカー
データ収集
ツール
データ前処理
ツール
クエリー
実行エンジン可視化
ツール
ワーカー
ワーカー
![Page 5: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/5.jpg)
Apache Arrow Powered by Rabbit 2.2.2
大事にすること1
効率的なデータ交換
![Page 6: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/6.jpg)
Apache Arrow Powered by Rabbit 2.2.2
前提
イマドキのデータ処理システムは単一コンポーネントで
完結しない
![Page 7: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/7.jpg)
Apache Arrow Powered by Rabbit 2.2.2
複数コンポーネント
メリット:コンポーネント毎に適した言語を使える✓
✓
デメリット:データ交換が増える(オーバーヘッド)✓
✓
![Page 8: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/8.jpg)
Apache Arrow Powered by Rabbit 2.2.2
データ交換コスト
シリアライズコスト✓
転送コスト✓
デシリアライズコスト✓
![Page 9: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/9.jpg)
Apache Arrow Powered by Rabbit 2.2.2
コスト例:JSON
シリアライズコスト [1] -#to_json-> "[1]"転送コスト -output#write-> -input#read->デシリアライズコスト "[1]" -JSON.parse-> [1]
![Page 10: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/10.jpg)
Apache Arrow Powered by Rabbit 2.2.2
コスト比較例:JSON
n = 1000000numbers = n.times.to_aJSON.dump(numbers, json_file)JSON.load(json_file)
![Page 11: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/11.jpg)
Apache Arrow Powered by Rabbit 2.2.2
コスト比較例:Apache Arrow
n = 1000000numbers = Arrow::Int32Array.new(numbers)arrow_table = Arrow::Table.new("number" => numbers)arrow_table.save(arrow_path)Arrow::Table.load(arrow_path)
![Page 12: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/12.jpg)
Apache Arrow Powered by Rabbit 2.2.2
コスト比較例
実行時間 JSON比JSON 0.099秒 1
Apache Arrow 0.002秒 1/50
![Page 13: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/13.jpg)
Apache Arrow Powered by Rabbit 2.2.2
データ交換コストの影響
コンポーネント数と正の相関コンポーネントが増えると無視できない✓
✓
データ量と正の相関データが多くなると無視できない✓
✓
![Page 14: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/14.jpg)
Apache Arrow Powered by Rabbit 2.2.2
まとめ
イマドキのデータ処理システムで大量データを処理するならデータ交換コストを無視できない
✓
Apache Arrowはデータ交換コストが低い仕組みは後述✓
✓
![Page 15: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/15.jpg)
Apache Arrow Powered by Rabbit 2.2.2
大事にすること2
各種言語で使えること
![Page 16: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/16.jpg)
Apache Arrow Powered by Rabbit 2.2.2
各種言語
Java, C++, Python, C, Ruby, Lua, JavaScript, Go, Rust,
MATLAB, R, C#
![Page 17: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/17.jpg)
Apache Arrow Powered by Rabbit 2.2.2
イマドキのデータ処理システム
コンポーネント毎に適した言語を採用採用言語でApache Arrowを使えないとシステムでApache Arrowを使えない
✓
✓
Apache Arrowに対応していればコンポーネントでその言語を採用しやすい
Railsが活きるコンポーネントでRubyを使うとか✓
✓
![Page 18: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/18.jpg)
Apache Arrow Powered by Rabbit 2.2.2
実現方法
ネイティブ実装Java, C++, JavaScript, Go, Rust, C#✓
メリット:扱いやすい(インストールが楽とか)✓
✓
C++実装のバインディングPython, C, Ruby, Lua, MATLAB, R✓
メリット:高速・実装の共有✓
✓
![Page 19: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/19.jpg)
Apache Arrow Powered by Rabbit 2.2.2
まとめ
Apache Arrowは各種言語で使えるRubyと他の言語でのデータ交換が楽になる✓
✓
Ruby実装はC++実装のバインディング速い・豊富な機能(C++実装はすごく進んでいる)✓
✓
![Page 20: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/20.jpg)
Apache Arrow Powered by Rabbit 2.2.2
大事にすること3
速いこと
![Page 21: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/21.jpg)
Apache Arrow Powered by Rabbit 2.2.2
速さが必要な理由
大量のデータを処理するため
ポイント:大量データ前提の設計
![Page 22: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/22.jpg)
Apache Arrow Powered by Rabbit 2.2.2
速いデータフォーマット
パースせずに使えるデータフォーマットメモリー上で効率よく扱える並びでデータを配置✓
パースしなくてよいし、そのまま使っても速い✓
✓
既存のデータの並びと互換性あり例:NumPyの数値配列と互換✓
互換性があるとゼロコピーで使える✓
✓
![Page 23: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/23.jpg)
Apache Arrow Powered by Rabbit 2.2.2
速いデータ処理
SIMD・キャッシュメモリー・マルチコアで高速化データをアライン・局所化・リードオンリーに✓
✓
高速な式評価器式:column1 + column2みたいなやつifとかも使える
✓
Gandiva:式をJITコンパイルして実行✓
✓
![Page 24: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/24.jpg)
Apache Arrow Powered by Rabbit 2.2.2
データ処理例:Ruby
n = 100000ruby_table = n.times.collect do { "number1" => rand, "number2" => rand, }endruby_table.collect do |record| record["number1"] + record["number2"]end
![Page 25: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/25.jpg)
Apache Arrow Powered by Rabbit 2.2.2
データ処理例:Numo::NArray
n = 100000numo_number1 = Numo::DFloat.new(n).randnumo_number2 = Numo::DFloat.new(n).randnumo_number1 + numo_number2
![Page 26: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/26.jpg)
Apache Arrow Powered by Rabbit 2.2.2
データ処理例:Gandiva
n = 100000arrow_number1 = Arrow::DoubleArray.new(n.times.collect {rand})arrow_number2 = Arrow::DoubleArray.new(n.times.collect {rand})arrow_table = Arrow::Table.new("number1" => arrow_number1, "number2" => arrow_number2)
![Page 27: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/27.jpg)
Apache Arrow Powered by Rabbit 2.2.2
データ処理例:Gandiva
# 次のリリースまでにいい感じに書けるようにする予定schema = arrow_table.schemaexpression = Gandiva::Expression.new("add", [schema[:number1], schema[:number2]], Arrow::Field.new("sum", :double))projector = Gandiva::Projector.new(schema, [expression])arrow_table.each_record_batch do |record_batch| projector.evaluate(record_batch)end
![Page 28: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/28.jpg)
Apache Arrow Powered by Rabbit 2.2.2
データ処理例
実行時間 Ruby比Ruby 0.010247秒 1
Numo::NArray 0.000158秒 1/67
Gandiva 0.000459秒 1/25Numo::NArrayがすごくがんばっている
![Page 29: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/29.jpg)
Apache Arrow Powered by Rabbit 2.2.2
速いデータ交換
同一マシン上での交換メモリーファイルシステム上に置いてmmap✓
Plasma:データ共有サーバーを動かしてIPCInter-Process Communication
✓
✓
別マシン上での交換Arrow Flight:gRPCベースのRPCフレームワーク✓
✓
![Page 30: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/30.jpg)
Apache Arrow Powered by Rabbit 2.2.2
GPUで速い
Plasma:GPU対応✓
RAPIDS:NVIDIAのGPUをデータサイエンスで活用するためのプロジェクト
libgdf:Apache ArrowフォーマットのデータをGPUで扱うデータフレームライブラリーRubyバインディングはまだない
✓
✓
![Page 31: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/31.jpg)
Apache Arrow Powered by Rabbit 2.2.2
まとめ
Apache Arrowは速い速いデータフォーマット✓
速いデータ処理(もっと速くなるはず)✓
速いデータ交換✓
✓
今後、GPUももっと活用していく✓
![Page 32: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/32.jpg)
Apache Arrow Powered by Rabbit 2.2.2
Apache Arrowのこれから例
データフォーマットの相互変換強化
![Page 33: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/33.jpg)
Apache Arrow Powered by Rabbit 2.2.2
相互変換:Apache Parquet
# Apache Arrow→Apache Parquetarrow_table.save("data.parquet")# Apache Parquet→Apache ArrowArrow::Table.load("data.parquet")
![Page 34: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/34.jpg)
Apache Arrow Powered by Rabbit 2.2.2
相互変換:Feather
# Apache Arrow→Featherarrow_table.save("data.feather")# Feather→Apache ArrowArrow::Table.load("data.feather")
![Page 35: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/35.jpg)
Apache Arrow Powered by Rabbit 2.2.2
相互変換:Apache ORC
# Apache ORC→Apache ArrowArrow::Table.load("data.orc")
![Page 36: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/36.jpg)
Apache Arrow Powered by Rabbit 2.2.2
相互変換:CSV
# Apache Arrow→CSVarrow_table.save("data.csv")# CSV→Apache ArrowArrow::Table.load("data.csv")
![Page 37: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/37.jpg)
Apache Arrow Powered by Rabbit 2.2.2
CSV読み込み例
# 標準ライブラリー(Ruby実装)CSV.foreach(path) {|row| row}# 拡張ライブラリーCcsv.foreach(path) {|row| row}# C++実装Arrow::Table.load(path, use_threads: true)
![Page 38: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/38.jpg)
Apache Arrow Powered by Rabbit 2.2.2
CSV読み込み時間
実行時間 csv比csv 0.818315秒 1
ccsv 0.064988秒 1/13
Apache Arrow 0.009030秒 1/90
![Page 39: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/39.jpg)
Apache Arrow Powered by Rabbit 2.2.2
相互変換:RubyオブジェクトRubyバインディング限定
# Active Record→Apache ArrowUser.all.to_arrow# Numo::NArray→Apache Arrownarray.to_arrow# NMatrix→Apache Arrowmatrix.to_arrow
![Page 40: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/40.jpg)
Apache Arrow Powered by Rabbit 2.2.2
相互変換の今後
JSON→Apache Arrow✓
Apache Avro→Apache Arrow✓
![Page 41: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/41.jpg)
Apache Arrow Powered by Rabbit 2.2.2
Apache Arrowのこれから(もっと)
RDBMS連携強化PostgreSQL・MySQLでの実行結果をApache Arrowフォーマットで返す
✓
✓
テンソルサポート強化✓
...✓
![Page 42: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/42.jpg)
Apache Arrow Powered by Rabbit 2.2.2
Rubyバインディングの今後
Plasma対応✓
GandivaバインディングのAPIをいい感じに✓
バインディングフレームワークの高速化✓
一緒に開発しようぜ!
![Page 43: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/43.jpg)
Apache Arrow Powered by Rabbit 2.2.2
Apache ArrowとRubyまわりの今後
libgdfのRubyバインディング開発✓
gumath/xnd/ndtypesとの連携✓
一緒に開発しようぜ!
![Page 44: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/44.jpg)
Apache Arrow Powered by Rabbit 2.2.2
おしらせ1
コード懇親会(今日の懇親会)✓
興味がでてきたプロダクトのコードを一緒に触ってみよう!
✓
開発に参加したくなるかも!✓
https://github.com/speee/code-party/tree/master/rubydata-tokyo-meetup-2018
![Page 45: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/45.jpg)
Apache Arrow Powered by Rabbit 2.2.2
おしらせ2
OSS Gate東京ミートアップfor Red Data Tools in Speee
✓
2018-11-20 19:30-(来週の火曜日)✓
Red Data Toolsメンバーが開発する集まり✓
https://speee.connpass.com/event/105237/
![Page 46: Apache Arrow - Rabbit Slide Show...Python, C, Ruby, Lua, MATLAB, R メリット:高速・実装の共有 Apache Arrow Powered by Rabbit 2.2.2 まとめ Apache Arrowは各種言語で使える](https://reader035.vdocuments.net/reader035/viewer/2022062603/5f23860c50a1a91a656a1349/html5/thumbnails/46.jpg)
Apache Arrow Powered by Rabbit 2.2.2
おしらせ3
Apache Arrow東京ミートアップ2018✓
2018-12-08 13:30-✓
目的:開発者を増やす対象プロダクト:Apache Arrow、Red Data Tools、Ruby/Numo、SciRubyなど
✓
✓
https://speee.connpass.com/event/103514/