Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Red Data Tools で切り開く Ruby の未来
Search
Kenta Murata
February 25, 2023
Technology
3
1k
Red Data Tools で切り開く Ruby の未来
Ruby 30周年記念イベント LT
Kenta Murata
February 25, 2023
Tweet
Share
More Decks by Kenta Murata
See All by Kenta Murata
waitany と waitall を作った話
mrkn
0
110
HolidayJp.jl を作りました
mrkn
0
110
Calling Julia functions from Streamlit applications
mrkn
1
330
Method-based JIT compilation by transpiling to Julia
mrkn
0
6.5k
Apache Arrow C++ Datasets
mrkn
4
1.5k
Reducing ActiveRecord memory consumption using Apache Arrow
mrkn
0
1.6k
RubyData and Rails
mrkn
0
2.9k
Tensor and Arrow
mrkn
0
860
RubyData Current and Future
mrkn
1
3.4k
Other Decks in Technology
See All in Technology
エンジニア向け会社紹介資料
caddi_eng
15
250k
【Λ(らむだ)最近のアプデ情報 / RPALT20240904
lambda
0
160
「名前解決」から振り返るAmazon VPC
yuki_ink
0
320
Dive Deep in Cloud Run: Automatic Base Image update
aoto
PRO
0
900
Dify - LINE Bot連携 考え方と実用テクニック
uezo
5
1.1k
Evolving DevOps Teams and Flexible Organizational Culture
kakehashi
1
140
標準ライブラリの奥深アップデートを掘り下げよう!
logica0419
2
390
強いチームを夢見て-PMからSREに転身して1年の振り返り / 20240906_bengo4_sre
bengo4com
1
760
トレタO/X アーキテクチャ移行記 Next.js App Router化への道のり / TORETA TECH UPDATE 1
okunokentaro
2
560
APIのドキュメント化何使ってますか?
miu_crescent
2
160
20分で分かるIAM全機能 (拡大版) / 20240903-jawsug-yokohama-iam
opelab
3
120
LLM を現場で評価する
asei
4
680
Featured
See All Featured
Building an army of robots
kneath
302
42k
Rails Girls Zürich Keynote
gr2m
93
13k
A Tale of Four Properties
chriscoyier
155
22k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
RailsConf 2023
tenderlove
26
790
Dealing with People You Can't Stand - Big Design 2015
cassininazir
363
22k
Building Your Own Lightsaber
phodgson
101
5.9k
Docker and Python
trallard
39
3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
29
2.5k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
Facilitating Awesome Meetings
lara
49
5.9k
Thoughts on Productivity
jonyablonski
65
4.2k
Transcript
Red Data Tools で切り開く Ruby の未来 Kenta Murata 2023.02.25 Ruby
30周年記念イベント LT
Ruby 30 周年おめでとうございます
self.introduction Kenta Murata 株式会社サイカ CRO Apache Arrow と CRuby のコミッター
Red Data Tools メンバー
self.introduction Kenta Murata 株式会社サイカ CRO Apache Arrow と CRuby のコミッター
Red Data Tools メンバー ← 今日はこの立場
Contents 1. Red Data Tools 2. Ruby 用データフレームライブラリ 3. まとめ
Red Data Tools https://red-data-tools.github.io/ja/
Red Data Tools とは Ruby用のデータ処理ツールを開発するプロジェクト いま Ruby 界隈で一番ホットな、データ処理ツールの開発者集団 とてもよいポリシーを掲げている
Red Data Tools プロジェクトのポリシー 1. Rubyコミュニティーを超えて協力する 2. 非難することよりも手を動かすことが大事 3. 一回だけの活発な活動よりも小さくてもいいので継続的に活動することが大事
4. 現時点での知識不足は問題ではない 5. 部外者からの非難は気にしない 6. 楽しくやろう!
詳しくは
Red Data Tools の主なプロダクト Red Arrow ファミリー Apache Arrow の
Ruby バインディング (apache/arrow 内にある) Red Datasets オープンデータにアクセスするための統一インターフェイス Charty 複数のバックエンドをサポートする統計的可視化ライブラリ unicode_plot ターミナルでデータ可視化を行うライブラリ YouPlot ターミナルでデータ可視化を行う CLI ツール (unicode_plot を使用)
詳しくは
Ruby 用のデータフレームライブラリについて
データフレーム? データフレームは表の形のデータ構造 トランザクション処理ではなく分析処理を主な用途とする 表を行指向ではなく列指向で管理
行指向?列指向?
行指向?列指向?
データフレーム? データフレームは表の形のデータ構造 トランザクション処理ではなく分析処理を主な用途とする 表を行単位ではなく列単位で管理 選択、結合、集約などの操作、要素単位の演算 複数のデータフレームを扱う操作と演算
Ruby 用データフレームライブラリ Red Amber Polas Ruby pandas Daru
Red Amber https://github.com/heronshoes/red_amber Red Arrow をバックエンドとしてデータフレームを実装 メモリ上のデータ構造は Arrow 形式 Apache
Arrow C++ の機能を利用できる Ruby にとって自然なインターフェイスを目指している heronshoes さんがモリモリと開発している これも Red Data Tools プロダクトのひとつ
Polars Ruby https://github.com/ankane/polars-ruby Polars という Rust 用データフレームライブラリのバインディング Polars は Rust
版 Apache Arrow を使っててめっちゃ速い (blazingly fast)
Polars の速さ 凄く速いので pandas から polars に乗り換える Kaggler が続出している
Polars Ruby https://github.com/ankane/polars-ruby Polars という Rust 用データフレームライブラリのバインディング Polars は Rust
版 Apache Arrow 使っててめっちゃ速い (blazingly fast) Red Amber と同様にメモリ上のデータ構造は Arrow 形式 Polars の Python 版 API に従って実装されている ankane さんがモリモリと開発している
pandas https://github.com/mrkn/pandas.rb Python 用データフレームである pandas を Ruby から使える pycall を用いて
CPython を直接呼び出す形で実装している pycall のおかげで df.applymap(->(x){ x * 5 }) のような事も可能 pandas の全機能について網羅テストをしてないため、未対応の機能があるかも pycall の制限を引き継ぐので、メインスレッド以外では使えないなどの制限がある
daru https://github.com/SciRuby/daru おそらく最古の Ruby 用データフレームライブラリ Pure Ruby で実装されている!! 遅いけど、Ruby さえあれば動く利点もある
残念ながら最近はまったくメンテされていない
25周年のとき (5年前) にあったもの pandas Daru 30周年目で増えたもの Red Amber Polars Ruby
5年で2つも増えた!! Red Amber は Rubyist が使いやすいデータフレームのインターフェイスを目指している Polars Ruby は最速データフレームの Ruby
バインディング どちらも Apache Arrow という共通基盤の上に乗っている どちらも活発に開発が進んでいる
この波に乗るしかない!! Rubyist にとって使いやすいデータフレームを作れるのは Red Amber の良いところ Red Data Tools に参加して一緒に
Red Amber を盛り上げませんか? 最速を求めて Polars Ruby を弄るのも良いと思う (Charty 対応とか!) Daru をメンテする人も増えてほしい
まとめ: Red Data Tools に参加しよう