SlideShare a Scribd company logo

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

Apache Arrow is a cross-language development platform for in-memory data. You can use Apache Arrow to process large data effectively in Python and other languages such as R. Apache Arrow is the future of data processing. Apache Arrow 1.0, the first major version, was released at 2020-07-24. It's a good time to know Apache Arrow and start using it.

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

Recommended

Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataApache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataKouhei Sutou
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームKouhei Sutou
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Kouhei Sutou
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアKouhei Sutou
 
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウSpark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウFuture Of Data Japan
 

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 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
 
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?Kouhei Sutou
 

More from Kouhei Sutou (20)

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を使って高速日本語全文検索!
 
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?
 

Recently uploaded

HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdf
HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdfHarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdf
HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdfMatsushita Laboratory
 
00001_test_automation_portfolio_20240227
00001_test_automation_portfolio_2024022700001_test_automation_portfolio_20240227
00001_test_automation_portfolio_20240227ssuserf8ea02
 
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdfAyachika Kitazaki
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)Kanta Sasaki
 
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。iPride Co., Ltd.
 
scikit-learn以外の分類器でpipelineを作ってみた! いずみん
scikit-learn以外の分類器でpipelineを作ってみた! いずみんscikit-learn以外の分類器でpipelineを作ってみた! いずみん
scikit-learn以外の分類器でpipelineを作ってみた! いずみんtoshinori622
 
解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHub解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHubK Kinzal
 

Recently uploaded (8)

HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdf
HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdfHarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdf
HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdf
 
00001_test_automation_portfolio_20240227
00001_test_automation_portfolio_2024022700001_test_automation_portfolio_20240227
00001_test_automation_portfolio_20240227
 
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)
 
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
 
scikit-learn以外の分類器でpipelineを作ってみた! いずみん
scikit-learn以外の分類器でpipelineを作ってみた! いずみんscikit-learn以外の分類器でpipelineを作ってみた! いずみん
scikit-learn以外の分類器でpipelineを作ってみた! いずみん
 
解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHub解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHub
 

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 クリアコードは商用サポートを提供しているよ ✓ ✓