SlideShare a Scribd company logo
1 of 48
Download to read offline
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Apache Arrow 1.0
A cross-language development platform
for in-memory data
Sutou Kouhei
ClearCode Inc.
SciPy Japan 2020
2020-10-30
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Me
Apache Arrow PMC member✓
#2 Apache Arrow contributor✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Apache Arrow and You
Your data size is ...
データサイズが…
small:
小さい
You don't need Apache Arrow
Apache Arrowを使う必要はない
✓
✓
large:
大きい
Apache Arrow will help you!
Apache Arrowを使うといいよ!
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
How does Apache Arrow help you?
どうしてApache Arrowを使うといいの?
Improves data interchange performance
データ交換のパフォーマンス改善
Data source Data processor
Apache Arrow logo is licensed under Apache License 2.0 © 2016-2020 The Apache Software Foundation
CSV
etc
Data source Data processor
performanceImprove
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Why does Apache Arrow focus on
data interchange?
どうしてApache Arrowはデータ交換に注力しているの?
Because it's a
bottleneckボトルネックだから
...Really?
…本当?
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Large data transfer case
大規模データを転送するケース
Figure 2: Communication between a client and a
server
Don’t Hold My Data Hostage –
A Case For Client Protocol Redesign
Mark Raasveldt
Centrum Wiskunde & Informatica
Amsterdam, The Netherlands
m.raasveldt@cwi.nl
Hannes M¨uhleisen
Centrum Wiskunde & Informatica
Amsterdam, The Netherlands
hannes@cwi.nl
Netcat (10.25s)
170.9170.9170.9
189.6189.6189.6
629.9629.9629.9
221.2221.2221.2
686.5686.5686.5
101.3101.3101.3
391.3391.3391.3
202202202
MongoDB
Hive
MySQL+C
MonetDB
PostgreSQL
DBMS X
DB2
MySQL
0 200 400 600
Wall clock time (s)
Operation
Connection
Query Execution
RSS + Transfer
Figure 1: Wall clock time for retrieving the lineitem
table (SF10) over a loopback connection. The
dashed line is the wall clock time for netcat to trans-
fer a CSV of the data.
https://hannes.muehleisen.org/p852-muehleisen.pdf
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Use case: Apache Spark
Spark PySpark
Apache Arrow logo is licensed under Apache License 2.0 © 2016-2020 The Apache Software Foundation
pickle
Improve
Spark PySpark
performance
Elapsed time
Data at https://arrow.apache.org/blog/2017/07/26/spark-arrow/
0s 20s
(Shorter is faster)
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Use case: Amazon Athena
S3 Athena
Apache Arrow logo is licensed under Apache License 2.0 © 2016-2020 The Apache Software Foundation
CSV
Federated
Query
Faster than
S3 Athena
native query
Throughput in billion rows/s
Data at https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-federation-sdk#performance
(Longer is faster)
0.0 1.5
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Why is Apache Arrow fast?
どうしてApache Arrowは速いの?
Apache Arrow - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.0
Apache Arrow
A cross-language development platform
for in-memory data
Kouhei Sutou
ClearCode Inc.
SciPy Japan Conference 2019
2019-04-23
https://slide.rabbit-shocker.org/authors/kou/scipy-japan-2019/
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Wow! Awesome!
すごいじゃん!
Should I always use
Apache Arrow?いつもApache Arrowを使うべき?
...No
…いやいや
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Apache Arrow is designed for
Apache Arrowの設計方針
In-memory analytics
メモリー内での分析
✓
Cross-language
Can be used from all languages
プログラミング言語に依存せずに使えること
✓
✓
Large data
大規模データ
✓
Fast data transfer
高速なデータ転送
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
In-memory analytics
メモリー内での分析
For in-memory: not for storage
メモリー内用:保管用ではない
For storage: Apache Parquet, ...
保管用にはApache Parquetなどいろいろある
✓
✓
For analytics: not for transaction
分析用:トランザクション用ではない
Not for OLTP use
OLTP用ではない
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
In-memory(メモリー内)
Apache Arrow format means:
Apache Arrowフォーマットは↓ということ
File format: *.arrow files(ファイルフォーマット)✓
Memory layout(メモリー上のデータの配置方法)✓
✓
With Apache Parquet (for storage):
(保管用の)Apache Parquetと一緒に使う場合:
Reading Apache Parquet data (file format)
Apache Parquetデータ(ファイルフォーマット)を読む
✓
as Apache Arrow data (memory layout)
読んだデータはApache Arrowデータ(メモリー上の配置)にする
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Apache Parquet and Apache Arrow
Apache Arrow logo Apache Parquet logo are licensed under Apache License 2.0
© 2016-2020 The Apache Software Foundation
Read
Created by Philip Sheffield
fromthe Noun ProjectCreated by Muhammad Yafinuha
fromthe Noun Project
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Analytics
分析
Column based operations are important
カラム単位の操作が重要
Aggregate, sort, filter, ...
集約、ソート、絞り込み…
✓
✓
For fast column based operations
高速なカラム単位の操作に必要なもの
Columnar layout(カラムごとにまとまった配置)✓
Contiguous data for vectorization
ベクトル化用に連続して配置したデータ
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Columnar layout
カラムごとにまとまった配置
Type per column
カラムごとに型がある
✓
Data frame is suitable
データフレームは適切
✓
Mixed type column data aren't suitable
カラム内で型が混在しているデータは不向き
Like data in MongoDB(MongoDBに入っているようなデータ)✓
Union can be used for it but ...
unionを使って表現できなくはないだろうけど…
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Cross-language
All your modules use only NumPy
すべてのモジュールでNumPyしか使っていない場合
NumPy format is enough(NumPyフォーマットで十分)✓
✓
Your system uses multiple languages
複数のプログラミング言語を使っている場合
Apache Arrow will be useful(Apache Arrowの出番)✓
Apache Spark, Python and R, ...✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Use case: RAPIDS
cuDF cuIO
Analytics
Data Preparation VisualizationModel Training
cuML
Machine Learning
cuGraph
Graph Analytics
PyTorch,
TensorFlow, MxNet
Deep Learning
cuxfilter, pyViz,
plotly
Visualization
Dask
GPU Memory
RAPIDS
End-to-End GPU Accelerated Data Science
https://docs.rapids.ai/overview/RAPIDS%200.15%20Release%20Deck.pdf#page=3
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Use case: RAPIDS
25-100x Improvement
Less Code
Language Flexible
Primarily In-Memory
HDFS
Read
HDFS
Write
HDFS
Read
HDFS
Write
HDFS
Read
Query ETL ML Train
HDFS
Read
Query ETL ML Train
HDFS
Read
GPU
Read
Query
CPU
Write
GPU
Read
ETL
CPU
Write
GPU
Read
ML
Train
5-10x Improvement
More Code
Language Rigid
Substantially on GPU
Traditional GPU Processing
Hadoop Processing, Reading from Disk
Spark In-Memory Processing
Data Processing Evolution
Faster Data Access, Less Data Movement
RAPIDS
Arrow
Read
ETL
ML
Train
Query
50-100x Improvement
Same Code
Language Flexible
Primarily on GPU
https://docs.rapids.ai/overview/RAPIDS%200.15%20Release%20Deck.pdf#page=8
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Data size
データサイズ
If you have only small data
小さなデータの場合
Any format will work well
なにを使ってもいい
✓
✓
We need something to process large data
大規模データを処理するには工夫が必要
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Large data with Apache Arrow
Apache Arrowで大規模データ
Memory mapping(メモリーマップ)
can process large data without loading all
data on memory at once
大規模データを一度にすべてメモリー上に載せなくても処理できる
✓
✓
Record batch(レコードバッチ)
can process large data with batches
大規模データをバッチに分割して処理できる
✓
can process large data as stream
大規模データをストリームとして処理できる
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Memory mapping
メモリーマップ
Created by Muhammad Yafinuha
fromthe Noun Project
Created by Philip Sheffield
fromthe Noun Project
Apache Arrow logo is licensed under Apache License 2.0 © 2016-2020 The Apache Software Foundation
Load
Not loaded
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Record batch
レコードバッチ
Created by Philip Sheffield
fromthe Noun Project
Apache Arrow logo is licensed under Apache License 2.0 © 2016-2020 The Apache Software Foundation
Record batches
1
Created by Philip Sheffield
fromthe Noun Project
Created by Philip Sheffield
fromthe Noun Project
2N ...
...
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Fast data transfer
高速データ転送
Enough network bandwidth case:
十分なネットワーク帯域がある場合
Fast {,de}serialize improves performance
高速なシリアライズ機能で高速転送が可能
✓
✓
Network bottleneck case:
ネットワーク帯域がボトルネックになるケース
Other small size format may be better
よりサイズが小さくなる別のフォーマットの方がいいかも
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Network bottleneck
ネットワーク帯域がボトルネック
The Amazon Athena use case:
前述のAmazon Athenaの事例
Apache Parquet is faster than Apache Arrow
Apache ArrowよりApache Parquetの方が高速
✓
Because run-length encoding works well
ランレングス圧縮がすごく効いていたから
✓
✓
Apache Arrow supports compression
Apache Arrowは圧縮をサポートしている
Maybe, the Amazon Athena use case doesn't use it
たぶん前述のAmazon Athena事例では使っていない
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Apache Arrow and compression
https://ursalabs.org/blog/2020-feather-v2/
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
When should I use Apache Arrow
いつApache Arrowを使えばよいか
In-memory analytics
メモリー内での分析
Not for storage(保管用ではない)✓
Not for transaction(トランザクション用ではない)✓
✓
Columnar layout data
カラムごとにまとまったデータ
Not for data in document DB
ドキュメント指向DBに入っているようなデータは向いていない
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
When should I use Apache Arrow
いつApache Arrowを使えばよいか
Cross-language system
複数のプログラミング言語を使うシステム
Many data analytics system use multiple
languages
多くのデータ分析システムは複数のプログラミング言語を使っている
✓
✓
Large data(大規模データ)✓
Fast data transfer(高速データ転送)
Compression may resolve network bottleneck
ネットワーク帯域がボトルネックになるときは圧縮するといいかも
✓
✓
Current
&
Future
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Apache Arrow 1.0.0
2020-07-24
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
What does 1.0.0 mean?
1.0.0になったということはどういうこと?
Start following
Semantic Versioningセマンティックバージョン開始
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Semantic Versioning
セマンティックバージョン
Backward compatible(後方互換)
In the same major version(メジャーバージョンが同じ間)✓
Newer can be used with older
新しいバージョンは古いバージョンと一緒に使える
✓
✓
Forward compatible(前方互換)
In the same major.minor version
メジャー・マイナーバージョンが同じ間
✓
Older can be used with newer w/o new features
古いバージョンは新機能を使わないなら新しいバージョンと一緒に使える
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Versions in Apache Arrow
Apache Arrowのバージョン
Apache Arrow format(Apache Arrowフォーマット)
File format(ファイルフォーマット)✓
Memory layout(メモリー上でのデータの配置方法)✓
✓
Apache Arrow libraries such pyarrow
pyarrowのようなApache Arrowライブラリー
Read/write Apache Arrow file format
Apache Arrowファイルフォーマットを読み書き
✓
Process Apache Arrow memory layout data
メモリー内のApache Arrowデータの処理
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Release cycle
リリースサイクル
Per 3-4 months3-4ヶ月ごと
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Release and version
リリースとバージョン
Apache Arrow format's version
It's bumped only when needed
必要なときだけバージョンアップ
✓
✓
Apache Arrow libraries' version
Major version is always bumped
常にメジャーバージョンアップ
✓
2020-07: 1.0.0✓
2020-10: 2.0.0✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Major version up
メジャーバージョンアップ
It may break
compatibility互換性がなくなるかもしれない
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
You should pin pyarrow version
pyarrowのバージョンは固定するべき
requirements.txt:
pyarrow~=1.0.*
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
You may not use pyarrow directly
直接pyarrowを使わないかもしれない
Your dependencies may use pyarrow
internally instead
依存しているモジュールが内部で使っているかも
pandas uses pyarrow to read Apache Parquet
pandasはApache Parquetを読み込むためにpyarrowを使っている
✓
PySpark uses pyarrow to communicate Spark
PySparkはSparkと通信するためにpyarrowを使っている
✓
✓
Modules use pyarrow will be increased
pyarrowを使うモジュールは増えていくはず
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Ecosystem
エコシステム
The more many modules support Arrow,
the more we can improve performance
Apache Arrow対応モジュールが増えるほど性能アップ
Because we don't need to convert to Arrow
Apache Arrowフォーマットに変換する必要がなくなるから
✓
✓
Many modules start supporting Arrow!
多くのモジュールがApache Arrowの対応を始めている!
Because 1.0.0 was released
1.0.0がリリースされたから
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
BigQuery Storage API
from google.cloud import bigquery_storage_v1
client = bigquery_storage_v1.BigQueryReadClient()
...
stream = client.read_rows(...)
arrow_table = stream.to_arrow(...)
See also: https://medium.com/google-cloud/announcing-google-cloud-bigquery-
version-1-17-0-1fc428512171
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
pandas, Dask and Vaex
Use pyarrow to RW Apache Parquet
Apache Parquetフォーマットを読み書きするためにpyarrowを使用
✓
Not use Apache Arrow for internal
memory layout
内部のデータの持ち方はApache Arrowではない
cuDF does but not use pyarrow to process data
cuDFはApache Arrowデータとして持っているがpyarrowでは処理していない
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Current pyarrow use cases
現時点でのpyarrowの利用例
Apache Parquet reader/writer✓
Apache Arrow data representation
Apache Arrowデータの表現
✓
Not used for internal memory layout
内部のデータ表現としては使われていない
NumPy's memory layout is used for numeric✓
Apache Arrow's memory layout is compatible with NumPy's one✓
Why?(どうして?)✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Apache Arrow native
data processing
Apache Arrowデータの処理
Work In Progress実装中
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Data processing
データ処理
Current:(現在)
Gandiva and compute functions
https://arrow.apache.org/docs/cpp/api/compute.html
Gandivaと計算関数がある
✓
Missing some features such as sort related
ソート関連などまだ機能が足りない
✓
✓
Future:(将来)
Apache Arrow native data frame
Apache Arrowデータ用データフレーム
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Apache Arrow native data frame
Apache Arrowデータ用データフレーム
File system module(ファイルシステムモジュール)
Read/write files with the same API
同じAPIでファイル操作
✓
Current: Local, HDFS and S3✓
✓
Dataset module(データセットモジュール)
Read/write semantic datasets stored in
different locations and formats
様々な場所・フォーマットのデータを論理的なデータセットとして読み書き
✓
Current: Apache Arrow, Apache Parquet and CSV✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Apache Arrow native data frame
Apache Arrowデータ用データフレーム
Query engine module(クエリーエンジンモジュール)
Process query against dataset
データセットに対してクエリー実行
✓
Current: Not started(現在:未着手)✓
✓
Data frame module(データフレームモジュール)
Provide higher level API for these modules
これらのモジュールを使う高レベルのAPI
✓
Current: Not started(現在:未着手)✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Wrap up
まとめ
Apache Arrow 1.0.0 was released!
Apache Arrow 1.0.0がリリースされた!
Semantic versioning(セマンティックバージョン)✓
✓
You will use Apache Arrow implicitly
知らないうちにApache Arrowを使うことが増えるはず
✓
You can't use pyarrow for data
processing yet
pyarrowでデータ処理をするにはまだ機能不足
But I want to use ASAP!
でも、すぐに使いたい!
✓
✓
Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1
Join us!
おいでよ!
The Apache Arrow project welcomes all!
https://arrow.apache.org/community/
Apache Arrowプロジェクトは歓迎するよ!
✓
You can get features what you want
quickly if you join developing them
開発に参加すると欲しい機能がより早く手に入るよ!
Community in Japanese: Red Data Tools
https://gitter.im/red-data-tools/ja
日本語で相談したい人はRed Data Toolsへ
✓
ClearCode Inc. supports it:
https://www.clear-code.com/services/apache-arrow.html
クリアコードは商用サポートを提供しているよ
✓
✓

More Related Content

What's hot

AWS Black Belt Techシリーズ Amazon CloudSearch
AWS Black Belt Techシリーズ Amazon CloudSearchAWS Black Belt Techシリーズ Amazon CloudSearch
AWS Black Belt Techシリーズ Amazon CloudSearchAmazon Web Services Japan
 
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Satoshi Noto
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Noritaka Sekiyama
 
Sparkパフォーマンス検証
Sparkパフォーマンス検証Sparkパフォーマンス検証
Sparkパフォーマンス検証BrainPad Inc.
 
研究用途でのAWSの利用事例と機械学習について
研究用途でのAWSの利用事例と機械学習について研究用途でのAWSの利用事例と機械学習について
研究用途でのAWSの利用事例と機械学習についてYasuhiro Matsuo
 
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTipsAmazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTipsyuichi_komatsu
 
Deep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance TuningDeep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance TuningTakuya UESHIN
 
20111215_第1回EMR勉強会発表資料
20111215_第1回EMR勉強会発表資料20111215_第1回EMR勉強会発表資料
20111215_第1回EMR勉強会発表資料Kotaro Tsukui
 
ソーシャルゲームのEMR活用事例
ソーシャルゲームのEMR活用事例ソーシャルゲームのEMR活用事例
ソーシャルゲームのEMR活用事例知教 本間
 
Amazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がりAmazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がりAmazon Web Services Japan
 
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...Amazon Web Services Japan
 
Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?chibochibo
 
Tez on EMRを試してみた
Tez on EMRを試してみたTez on EMRを試してみた
Tez on EMRを試してみたSatoshi Noto
 
Apache ArrowのRubyバインディングをGObject Introspectionで
Apache ArrowのRubyバインディングをGObject IntrospectionでApache ArrowのRubyバインディングをGObject Introspectionで
Apache ArrowのRubyバインディングをGObject IntrospectionでKouhei Sutou
 
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」Hiromitsu Ito
 
S3 整合性モデルと Hadoop/Spark の話
S3 整合性モデルと Hadoop/Spark の話S3 整合性モデルと Hadoop/Spark の話
S3 整合性モデルと Hadoop/Spark の話Noritaka Sekiyama
 
Effective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターンEffective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターンNoritaka Sekiyama
 

What's hot (20)

AWS Black Belt Techシリーズ Amazon CloudSearch
AWS Black Belt Techシリーズ Amazon CloudSearchAWS Black Belt Techシリーズ Amazon CloudSearch
AWS Black Belt Techシリーズ Amazon CloudSearch
 
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
 
Sparkパフォーマンス検証
Sparkパフォーマンス検証Sparkパフォーマンス検証
Sparkパフォーマンス検証
 
研究用途でのAWSの利用事例と機械学習について
研究用途でのAWSの利用事例と機械学習について研究用途でのAWSの利用事例と機械学習について
研究用途でのAWSの利用事例と機械学習について
 
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTipsAmazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
 
Deep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance TuningDeep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance Tuning
 
Running Apache Spark on AWS
Running Apache Spark on AWSRunning Apache Spark on AWS
Running Apache Spark on AWS
 
20111215_第1回EMR勉強会発表資料
20111215_第1回EMR勉強会発表資料20111215_第1回EMR勉強会発表資料
20111215_第1回EMR勉強会発表資料
 
ソーシャルゲームのEMR活用事例
ソーシャルゲームのEMR活用事例ソーシャルゲームのEMR活用事例
ソーシャルゲームのEMR活用事例
 
Amazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がりAmazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がり
 
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
 
Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?
 
Tez on EMRを試してみた
Tez on EMRを試してみたTez on EMRを試してみた
Tez on EMRを試してみた
 
Apache ArrowのRubyバインディングをGObject Introspectionで
Apache ArrowのRubyバインディングをGObject IntrospectionでApache ArrowのRubyバインディングをGObject Introspectionで
Apache ArrowのRubyバインディングをGObject Introspectionで
 
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
 
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
2014-10-17 「“A9共催! AWSプロダクトシリーズ よくわかる AWS CloudSearch” スクーでのCloudSearch利用実例」
 
S3 整合性モデルと Hadoop/Spark の話
S3 整合性モデルと Hadoop/Spark の話S3 整合性モデルと Hadoop/Spark の話
S3 整合性モデルと Hadoop/Spark の話
 
Machine Learning on AWS
Machine Learning on AWS Machine Learning on AWS
Machine Learning on AWS
 
Effective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターンEffective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターン
 

Similar to Apache Arrow 1.0 - A cross-language development platform for in-memory data

SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門Daiyu Hatakeyama
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践Shumpei Shiraishi
 
Yifeng hadoop-present-public
Yifeng hadoop-present-publicYifeng hadoop-present-public
Yifeng hadoop-present-publicYifeng Jiang
 
20190122 AWS Black Belt Online Seminar Amazon Redshift Update
20190122 AWS Black Belt Online Seminar Amazon Redshift Update20190122 AWS Black Belt Online Seminar Amazon Redshift Update
20190122 AWS Black Belt Online Seminar Amazon Redshift UpdateAmazon Web Services Japan
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...Amazon Web Services Japan
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ真吾 吉田
 
Smart data integration to hybrid data analysis infrastructure
Smart data integration to hybrid data analysis infrastructureSmart data integration to hybrid data analysis infrastructure
Smart data integration to hybrid data analysis infrastructureDataWorks Summit
 
AWSが誕生するまでの秘話
AWSが誕生するまでの秘話AWSが誕生するまでの秘話
AWSが誕生するまでの秘話Yasuhiro Horiuchi
 
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Sho Ito
 
AWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAmazon Web Services Japan
 
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...NTT DATA Technology & Innovation
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) hamaken
 
RubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入りRubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入りKouhei Sutou
 
非SAPの人に贈るSAP on AWS
非SAPの人に贈るSAP on AWS非SAPの人に贈るSAP on AWS
非SAPの人に贈るSAP on AWSRyusaburo Tanaka
 
継続?移行?Oracle SE2 RACのサポート終了に向けた備え
継続?移行?Oracle SE2 RACのサポート終了に向けた備え継続?移行?Oracle SE2 RACのサポート終了に向けた備え
継続?移行?Oracle SE2 RACのサポート終了に向けた備え株式会社クライム
 
Azure Media Services 大全
Azure Media Services 大全Azure Media Services 大全
Azure Media Services 大全Daiyu Hatakeyama
 
あらゆるワークロードに最適なフラッシュ技術を選択できるNetAppポートフォリオ
あらゆるワークロードに最適なフラッシュ技術を選択できるNetAppポートフォリオあらゆるワークロードに最適なフラッシュ技術を選択できるNetAppポートフォリオ
あらゆるワークロードに最適なフラッシュ技術を選択できるNetAppポートフォリオNetApp Japan
 
VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料Shinichiro Isago
 

Similar to Apache Arrow 1.0 - A cross-language development platform for in-memory data (20)

SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践
 
Yifeng hadoop-present-public
Yifeng hadoop-present-publicYifeng hadoop-present-public
Yifeng hadoop-present-public
 
20190122 AWS Black Belt Online Seminar Amazon Redshift Update
20190122 AWS Black Belt Online Seminar Amazon Redshift Update20190122 AWS Black Belt Online Seminar Amazon Redshift Update
20190122 AWS Black Belt Online Seminar Amazon Redshift Update
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
 
Apache Spark on Azure
Apache Spark on AzureApache Spark on Azure
Apache Spark on Azure
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 
Smart data integration to hybrid data analysis infrastructure
Smart data integration to hybrid data analysis infrastructureSmart data integration to hybrid data analysis infrastructure
Smart data integration to hybrid data analysis infrastructure
 
AWSが誕生するまでの秘話
AWSが誕生するまでの秘話AWSが誕生するまでの秘話
AWSが誕生するまでの秘話
 
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5
 
AWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon Athena
 
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
RubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入りRubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入り
 
非SAPの人に贈るSAP on AWS
非SAPの人に贈るSAP on AWS非SAPの人に贈るSAP on AWS
非SAPの人に贈るSAP on AWS
 
継続?移行?Oracle SE2 RACのサポート終了に向けた備え
継続?移行?Oracle SE2 RACのサポート終了に向けた備え継続?移行?Oracle SE2 RACのサポート終了に向けた備え
継続?移行?Oracle SE2 RACのサポート終了に向けた備え
 
Azure Media Services 大全
Azure Media Services 大全Azure Media Services 大全
Azure Media Services 大全
 
あらゆるワークロードに最適なフラッシュ技術を選択できるNetAppポートフォリオ
あらゆるワークロードに最適なフラッシュ技術を選択できるNetAppポートフォリオあらゆるワークロードに最適なフラッシュ技術を選択できるNetAppポートフォリオ
あらゆるワークロードに最適なフラッシュ技術を選択できるNetAppポートフォリオ
 
VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料
 
ビッグデータとデータマート
ビッグデータとデータマートビッグデータとデータマート
ビッグデータとデータマート
 

More from Kouhei Sutou

RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowRubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowKouhei Sutou
 
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowRubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowKouhei Sutou
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかKouhei Sutou
 
Redmine検索の未来像
Redmine検索の未来像Redmine検索の未来像
Redmine検索の未来像Kouhei Sutou
 
Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Kouhei Sutou
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムKouhei Sutou
 
MySQL 8.0でMroonga
MySQL 8.0でMroongaMySQL 8.0でMroonga
MySQL 8.0でMroongaKouhei Sutou
 
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Kouhei Sutou
 
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムMariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムKouhei Sutou
 
PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!Kouhei Sutou
 
PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版Kouhei Sutou
 
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムPostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムKouhei Sutou
 
Improve extension API: C++ as better language for extension
Improve extension API: C++ as better language for extensionImprove extension API: C++ as better language for extension
Improve extension API: C++ as better language for extensionKouhei Sutou
 
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システムMySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システムKouhei Sutou
 
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!Kouhei Sutou
 
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーMySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーKouhei Sutou
 
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
 PHPでPostgreSQLとPGroongaを使って高速日本語全文検索! PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!Kouhei Sutou
 

More from Kouhei Sutou (20)

RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowRubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
 
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowRubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのか
 
Redmine検索の未来像
Redmine検索の未来像Redmine検索の未来像
Redmine検索の未来像
 
Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
 
MySQL 8.0でMroonga
MySQL 8.0でMroongaMySQL 8.0でMroonga
MySQL 8.0でMroonga
 
My way with Ruby
My way with RubyMy way with Ruby
My way with Ruby
 
Red Data Tools
Red Data ToolsRed Data Tools
Red Data Tools
 
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
 
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムMariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
 
PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!
 
PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版
 
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムPostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
 
Improve extension API: C++ as better language for extension
Improve extension API: C++ as better language for extensionImprove extension API: C++ as better language for extension
Improve extension API: C++ as better language for extension
 
PGroonga & Zulip
PGroonga & ZulipPGroonga & Zulip
PGroonga & Zulip
 
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システムMySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
 
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!
 
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーMySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
 
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
 PHPでPostgreSQLとPGroongaを使って高速日本語全文検索! PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
 

Recently uploaded

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (9)

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 

Apache Arrow 1.0 - A cross-language development platform for in-memory data

  • 1. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Apache Arrow 1.0 A cross-language development platform for in-memory data Sutou Kouhei ClearCode Inc. SciPy Japan 2020 2020-10-30
  • 2. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Me Apache Arrow PMC member✓ #2 Apache Arrow contributor✓
  • 3. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Apache Arrow and You Your data size is ... データサイズが… small: 小さい You don't need Apache Arrow Apache Arrowを使う必要はない ✓ ✓ large: 大きい Apache Arrow will help you! Apache Arrowを使うといいよ! ✓ ✓
  • 4. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 How does Apache Arrow help you? どうしてApache Arrowを使うといいの? Improves data interchange performance データ交換のパフォーマンス改善 Data source Data processor Apache Arrow logo is licensed under Apache License 2.0 © 2016-2020 The Apache Software Foundation CSV etc Data source Data processor performanceImprove
  • 5. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Why does Apache Arrow focus on data interchange? どうしてApache Arrowはデータ交換に注力しているの? Because it's a bottleneckボトルネックだから ...Really? …本当?
  • 6. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Large data transfer case 大規模データを転送するケース Figure 2: Communication between a client and a server Don’t Hold My Data Hostage – A Case For Client Protocol Redesign Mark Raasveldt Centrum Wiskunde & Informatica Amsterdam, The Netherlands m.raasveldt@cwi.nl Hannes M¨uhleisen Centrum Wiskunde & Informatica Amsterdam, The Netherlands hannes@cwi.nl Netcat (10.25s) 170.9170.9170.9 189.6189.6189.6 629.9629.9629.9 221.2221.2221.2 686.5686.5686.5 101.3101.3101.3 391.3391.3391.3 202202202 MongoDB Hive MySQL+C MonetDB PostgreSQL DBMS X DB2 MySQL 0 200 400 600 Wall clock time (s) Operation Connection Query Execution RSS + Transfer Figure 1: Wall clock time for retrieving the lineitem table (SF10) over a loopback connection. The dashed line is the wall clock time for netcat to trans- fer a CSV of the data. https://hannes.muehleisen.org/p852-muehleisen.pdf
  • 7. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Use case: Apache Spark Spark PySpark Apache Arrow logo is licensed under Apache License 2.0 © 2016-2020 The Apache Software Foundation pickle Improve Spark PySpark performance Elapsed time Data at https://arrow.apache.org/blog/2017/07/26/spark-arrow/ 0s 20s (Shorter is faster)
  • 8. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Use case: Amazon Athena S3 Athena Apache Arrow logo is licensed under Apache License 2.0 © 2016-2020 The Apache Software Foundation CSV Federated Query Faster than S3 Athena native query Throughput in billion rows/s Data at https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-federation-sdk#performance (Longer is faster) 0.0 1.5
  • 9. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Why is Apache Arrow fast? どうしてApache Arrowは速いの? Apache Arrow - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.0 Apache Arrow A cross-language development platform for in-memory data Kouhei Sutou ClearCode Inc. SciPy Japan Conference 2019 2019-04-23 https://slide.rabbit-shocker.org/authors/kou/scipy-japan-2019/
  • 10. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Wow! Awesome! すごいじゃん! Should I always use Apache Arrow?いつもApache Arrowを使うべき? ...No …いやいや
  • 11. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Apache Arrow is designed for Apache Arrowの設計方針 In-memory analytics メモリー内での分析 ✓ Cross-language Can be used from all languages プログラミング言語に依存せずに使えること ✓ ✓ Large data 大規模データ ✓ Fast data transfer 高速なデータ転送 ✓
  • 12. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 In-memory analytics メモリー内での分析 For in-memory: not for storage メモリー内用:保管用ではない For storage: Apache Parquet, ... 保管用にはApache Parquetなどいろいろある ✓ ✓ For analytics: not for transaction 分析用:トランザクション用ではない Not for OLTP use OLTP用ではない ✓ ✓
  • 13. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 In-memory(メモリー内) Apache Arrow format means: Apache Arrowフォーマットは↓ということ File format: *.arrow files(ファイルフォーマット)✓ Memory layout(メモリー上のデータの配置方法)✓ ✓ With Apache Parquet (for storage): (保管用の)Apache Parquetと一緒に使う場合: Reading Apache Parquet data (file format) Apache Parquetデータ(ファイルフォーマット)を読む ✓ as Apache Arrow data (memory layout) 読んだデータはApache Arrowデータ(メモリー上の配置)にする ✓ ✓
  • 14. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Apache Parquet and Apache Arrow Apache Arrow logo Apache Parquet logo are licensed under Apache License 2.0 © 2016-2020 The Apache Software Foundation Read Created by Philip Sheffield fromthe Noun ProjectCreated by Muhammad Yafinuha fromthe Noun Project
  • 15. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Analytics 分析 Column based operations are important カラム単位の操作が重要 Aggregate, sort, filter, ... 集約、ソート、絞り込み… ✓ ✓ For fast column based operations 高速なカラム単位の操作に必要なもの Columnar layout(カラムごとにまとまった配置)✓ Contiguous data for vectorization ベクトル化用に連続して配置したデータ ✓ ✓
  • 16. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Columnar layout カラムごとにまとまった配置 Type per column カラムごとに型がある ✓ Data frame is suitable データフレームは適切 ✓ Mixed type column data aren't suitable カラム内で型が混在しているデータは不向き Like data in MongoDB(MongoDBに入っているようなデータ)✓ Union can be used for it but ... unionを使って表現できなくはないだろうけど… ✓ ✓
  • 17. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Cross-language All your modules use only NumPy すべてのモジュールでNumPyしか使っていない場合 NumPy format is enough(NumPyフォーマットで十分)✓ ✓ Your system uses multiple languages 複数のプログラミング言語を使っている場合 Apache Arrow will be useful(Apache Arrowの出番)✓ Apache Spark, Python and R, ...✓ ✓
  • 18. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Use case: RAPIDS cuDF cuIO Analytics Data Preparation VisualizationModel Training cuML Machine Learning cuGraph Graph Analytics PyTorch, TensorFlow, MxNet Deep Learning cuxfilter, pyViz, plotly Visualization Dask GPU Memory RAPIDS End-to-End GPU Accelerated Data Science https://docs.rapids.ai/overview/RAPIDS%200.15%20Release%20Deck.pdf#page=3
  • 19. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Use case: RAPIDS 25-100x Improvement Less Code Language Flexible Primarily In-Memory HDFS Read HDFS Write HDFS Read HDFS Write HDFS Read Query ETL ML Train HDFS Read Query ETL ML Train HDFS Read GPU Read Query CPU Write GPU Read ETL CPU Write GPU Read ML Train 5-10x Improvement More Code Language Rigid Substantially on GPU Traditional GPU Processing Hadoop Processing, Reading from Disk Spark In-Memory Processing Data Processing Evolution Faster Data Access, Less Data Movement RAPIDS Arrow Read ETL ML Train Query 50-100x Improvement Same Code Language Flexible Primarily on GPU https://docs.rapids.ai/overview/RAPIDS%200.15%20Release%20Deck.pdf#page=8
  • 20. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Data size データサイズ If you have only small data 小さなデータの場合 Any format will work well なにを使ってもいい ✓ ✓ We need something to process large data 大規模データを処理するには工夫が必要 ✓
  • 21. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Large data with Apache Arrow Apache Arrowで大規模データ Memory mapping(メモリーマップ) can process large data without loading all data on memory at once 大規模データを一度にすべてメモリー上に載せなくても処理できる ✓ ✓ Record batch(レコードバッチ) can process large data with batches 大規模データをバッチに分割して処理できる ✓ can process large data as stream 大規模データをストリームとして処理できる ✓ ✓
  • 22. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Memory mapping メモリーマップ Created by Muhammad Yafinuha fromthe Noun Project Created by Philip Sheffield fromthe Noun Project Apache Arrow logo is licensed under Apache License 2.0 © 2016-2020 The Apache Software Foundation Load Not loaded
  • 23. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Record batch レコードバッチ Created by Philip Sheffield fromthe Noun Project Apache Arrow logo is licensed under Apache License 2.0 © 2016-2020 The Apache Software Foundation Record batches 1 Created by Philip Sheffield fromthe Noun Project Created by Philip Sheffield fromthe Noun Project 2N ... ...
  • 24. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Fast data transfer 高速データ転送 Enough network bandwidth case: 十分なネットワーク帯域がある場合 Fast {,de}serialize improves performance 高速なシリアライズ機能で高速転送が可能 ✓ ✓ Network bottleneck case: ネットワーク帯域がボトルネックになるケース Other small size format may be better よりサイズが小さくなる別のフォーマットの方がいいかも ✓ ✓
  • 25. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Network bottleneck ネットワーク帯域がボトルネック The Amazon Athena use case: 前述のAmazon Athenaの事例 Apache Parquet is faster than Apache Arrow Apache ArrowよりApache Parquetの方が高速 ✓ Because run-length encoding works well ランレングス圧縮がすごく効いていたから ✓ ✓ Apache Arrow supports compression Apache Arrowは圧縮をサポートしている Maybe, the Amazon Athena use case doesn't use it たぶん前述のAmazon Athena事例では使っていない ✓ ✓
  • 26. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Apache Arrow and compression https://ursalabs.org/blog/2020-feather-v2/
  • 27. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 When should I use Apache Arrow いつApache Arrowを使えばよいか In-memory analytics メモリー内での分析 Not for storage(保管用ではない)✓ Not for transaction(トランザクション用ではない)✓ ✓ Columnar layout data カラムごとにまとまったデータ Not for data in document DB ドキュメント指向DBに入っているようなデータは向いていない ✓ ✓
  • 28. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 When should I use Apache Arrow いつApache Arrowを使えばよいか Cross-language system 複数のプログラミング言語を使うシステム Many data analytics system use multiple languages 多くのデータ分析システムは複数のプログラミング言語を使っている ✓ ✓ Large data(大規模データ)✓ Fast data transfer(高速データ転送) Compression may resolve network bottleneck ネットワーク帯域がボトルネックになるときは圧縮するといいかも ✓ ✓
  • 30. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Apache Arrow 1.0.0 2020-07-24
  • 31. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 What does 1.0.0 mean? 1.0.0になったということはどういうこと? Start following Semantic Versioningセマンティックバージョン開始
  • 32. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Semantic Versioning セマンティックバージョン Backward compatible(後方互換) In the same major version(メジャーバージョンが同じ間)✓ Newer can be used with older 新しいバージョンは古いバージョンと一緒に使える ✓ ✓ Forward compatible(前方互換) In the same major.minor version メジャー・マイナーバージョンが同じ間 ✓ Older can be used with newer w/o new features 古いバージョンは新機能を使わないなら新しいバージョンと一緒に使える ✓ ✓
  • 33. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Versions in Apache Arrow Apache Arrowのバージョン Apache Arrow format(Apache Arrowフォーマット) File format(ファイルフォーマット)✓ Memory layout(メモリー上でのデータの配置方法)✓ ✓ Apache Arrow libraries such pyarrow pyarrowのようなApache Arrowライブラリー Read/write Apache Arrow file format Apache Arrowファイルフォーマットを読み書き ✓ Process Apache Arrow memory layout data メモリー内のApache Arrowデータの処理 ✓ ✓
  • 34. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Release cycle リリースサイクル Per 3-4 months3-4ヶ月ごと
  • 35. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Release and version リリースとバージョン Apache Arrow format's version It's bumped only when needed 必要なときだけバージョンアップ ✓ ✓ Apache Arrow libraries' version Major version is always bumped 常にメジャーバージョンアップ ✓ 2020-07: 1.0.0✓ 2020-10: 2.0.0✓ ✓
  • 36. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Major version up メジャーバージョンアップ It may break compatibility互換性がなくなるかもしれない
  • 37. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 You should pin pyarrow version pyarrowのバージョンは固定するべき requirements.txt: pyarrow~=1.0.*
  • 38. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 You may not use pyarrow directly 直接pyarrowを使わないかもしれない Your dependencies may use pyarrow internally instead 依存しているモジュールが内部で使っているかも pandas uses pyarrow to read Apache Parquet pandasはApache Parquetを読み込むためにpyarrowを使っている ✓ PySpark uses pyarrow to communicate Spark PySparkはSparkと通信するためにpyarrowを使っている ✓ ✓ Modules use pyarrow will be increased pyarrowを使うモジュールは増えていくはず ✓
  • 39. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Ecosystem エコシステム The more many modules support Arrow, the more we can improve performance Apache Arrow対応モジュールが増えるほど性能アップ Because we don't need to convert to Arrow Apache Arrowフォーマットに変換する必要がなくなるから ✓ ✓ Many modules start supporting Arrow! 多くのモジュールがApache Arrowの対応を始めている! Because 1.0.0 was released 1.0.0がリリースされたから ✓ ✓
  • 40. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 BigQuery Storage API from google.cloud import bigquery_storage_v1 client = bigquery_storage_v1.BigQueryReadClient() ... stream = client.read_rows(...) arrow_table = stream.to_arrow(...) See also: https://medium.com/google-cloud/announcing-google-cloud-bigquery- version-1-17-0-1fc428512171
  • 41. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 pandas, Dask and Vaex Use pyarrow to RW Apache Parquet Apache Parquetフォーマットを読み書きするためにpyarrowを使用 ✓ Not use Apache Arrow for internal memory layout 内部のデータの持ち方はApache Arrowではない cuDF does but not use pyarrow to process data cuDFはApache Arrowデータとして持っているがpyarrowでは処理していない ✓ ✓
  • 42. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Current pyarrow use cases 現時点でのpyarrowの利用例 Apache Parquet reader/writer✓ Apache Arrow data representation Apache Arrowデータの表現 ✓ Not used for internal memory layout 内部のデータ表現としては使われていない NumPy's memory layout is used for numeric✓ Apache Arrow's memory layout is compatible with NumPy's one✓ Why?(どうして?)✓ ✓
  • 43. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Apache Arrow native data processing Apache Arrowデータの処理 Work In Progress実装中
  • 44. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Data processing データ処理 Current:(現在) Gandiva and compute functions https://arrow.apache.org/docs/cpp/api/compute.html Gandivaと計算関数がある ✓ Missing some features such as sort related ソート関連などまだ機能が足りない ✓ ✓ Future:(将来) Apache Arrow native data frame Apache Arrowデータ用データフレーム ✓ ✓
  • 45. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Apache Arrow native data frame Apache Arrowデータ用データフレーム File system module(ファイルシステムモジュール) Read/write files with the same API 同じAPIでファイル操作 ✓ Current: Local, HDFS and S3✓ ✓ Dataset module(データセットモジュール) Read/write semantic datasets stored in different locations and formats 様々な場所・フォーマットのデータを論理的なデータセットとして読み書き ✓ Current: Apache Arrow, Apache Parquet and CSV✓ ✓
  • 46. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Apache Arrow native data frame Apache Arrowデータ用データフレーム Query engine module(クエリーエンジンモジュール) Process query against dataset データセットに対してクエリー実行 ✓ Current: Not started(現在:未着手)✓ ✓ Data frame module(データフレームモジュール) Provide higher level API for these modules これらのモジュールを使う高レベルのAPI ✓ Current: Not started(現在:未着手)✓ ✓
  • 47. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Wrap up まとめ Apache Arrow 1.0.0 was released! Apache Arrow 1.0.0がリリースされた! Semantic versioning(セマンティックバージョン)✓ ✓ You will use Apache Arrow implicitly 知らないうちにApache Arrowを使うことが増えるはず ✓ You can't use pyarrow for data processing yet pyarrowでデータ処理をするにはまだ機能不足 But I want to use ASAP! でも、すぐに使いたい! ✓ ✓
  • 48. Apache Arrow 1.0 - A cross-language development platformfor in-memory data Powered by Rabbit 3.0.1 Join us! おいでよ! The Apache Arrow project welcomes all! https://arrow.apache.org/community/ Apache Arrowプロジェクトは歓迎するよ! ✓ You can get features what you want quickly if you join developing them 開発に参加すると欲しい機能がより早く手に入るよ! Community in Japanese: Red Data Tools https://gitter.im/red-data-tools/ja 日本語で相談したい人はRed Data Toolsへ ✓ ClearCode Inc. supports it: https://www.clear-code.com/services/apache-arrow.html クリアコードは商用サポートを提供しているよ ✓ ✓