SlideShare a Scribd company logo
1 of 42
Download to read offline
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
Apache Arrow Flight
ビッグデータ用高速データ転送フレームワーク
須藤功平
株式会社クリアコード
db tech showcase 2021
2021-11-17
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
モチベーション
ビッグデータを
処理したい!
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
ビッグデータ処理に必要なもの
大量データ:データがないと始まらない!
✓
速度:速くないと処理しきれない!
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
大量データの収集に必要なもの
データ収集ツール
例:ログ:Fluentd/Fluent Bit
✓
✓
ストレージ
例:Amazon S3
✓
✓
効率的なデータフォーマット
トレードオフ:空間効率と時間効率
✓
例:CSVよりApache Parquet
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
高速処理に必要なもの
高速な分散システム
1台では処理しきれない
✓
✓
高速なアルゴリズムとその実装
個々の処理が速くなると全体も速くなる
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
今日注目すること
高速な分散システム
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
高速な分散システムに必要なもの
効率のよいタスク管理
より速く処理が終わるようなリソース配分
✓
✓
効率のよいデータ転送
ノード間でのデータ交換コストは無視できない
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
大量データの交換コスト
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ühleisen
Centrum Wiskunde & Informatica
Amsterdam, The Netherlands
hannes@cwi.nl
Netcat (10.25s)
170.9
170.9
170.9
189.6
189.6
189.6
629.9
629.9
629.9
221.2
221.2
221.2
686.5
686.5
686.5
101.3
101.3
101.3
391.3
391.3
391.3
202
202
202
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 Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
大量データの交換コスト
ボトルネックになりやすい
シリアライズ・デシリアライズ
a.
ネットワーク帯域
b.
✓
目指すところ
メイン処理がボトルネック
(メイン処理以外が十分速い)
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
解決策
Apache Arrow Flight
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
Apache Arrow Flightと私
Apache ArrowプロジェクトのPMCメンバー
Apache Arrow Flightも開発しているプロジェクト
✓
PMC:プロジェクト管理委員会
✓
✓
コミット数2位
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
Apache Arrow Flight
gRPCベースのデータ転送フレームワーク
✓
ポイント
並列転送対応
「効率のよいタスク管理」に有用
✓
✓
ストリーム処理対応
「効率のよいタスク管理」に有用
✓
✓
シリアライズ・デシリアライズがほぼ不要
「効率のよいデータ転送」に有用
✓
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
簡単な使い方
https://arrow.apache.org/img/20191014_flight_simple.png
Apache License 2.0 - © 2016-2021 The Apache Software Foundation
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
GetFlightInfo
クライアント→サーバー
✓
データの取得方法を教えてもらう
サーバーはFlightInfoを返す
✓
✓
FlightInfoの中身
メタデータ:スキーマ・総レコード数…
✓
複数エンドポイント:
データは複数ヶ所に分散しているかもしれない!
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
DoGet
クライアント→サーバー
✓
データを取得する
サーバーはレコードバッチをストリームで返す
✓
プロトコルレベルではFlightDataと呼んでいる
✓
✓
レコードバッチ
データ全体のうちの一部のレコードの集まり
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
Apache Arrow Flightが扱うデータ
カラム1 カラム2 カラム3
レコード1
レコード2
レコード3
レコード4
レコード5
レコード
バッチ1
レコード
バッチ2
型付きのテーブルデータ
RDBMSで扱うようなデータ
✓
カラムごとに型がある
✓
すべてのレコードは同じカラム構成
✓
✓
レコードバッチ
テーブルデータ内の連続したレコードの集まり
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
レコードバッチストリーム
レコード1
レコード2
レコード3
レコード
バッチ1
レコード4
レコード5
レコード
バッチ2
クライアント サーバー
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
なぜストリームが重要か
大量データを準備ができた順に処理できる
全部準備ができるまで待たなくてよい
✓
リソースを有効活用できる
✓
✓
レコードバッチのストリームでいいの?
レコードのストリーム方がいいんじゃない?
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
ストリームの単位
カラム
レコード
a b c
1
2
3
値 値 値
値 値 値
値 値 値
カラム
レコード
a b c
1
2
3
値 値 値
値 値 値
値 値 値
レコード
バッチ
単位
レコード
単位
レコード
レコード単位で処理できる
✓
データはレコード単位でまとめる
✓
✓
レコードバッチ
複数レコードをまとめて処理できる
✓
データをカラム単位でまとめられる
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
レコードバッチと処理
カラム
レコード
a b c
1
2
3
値 値 値
値 値 値
値 値 値
カラム
レコード
a b c
1
2
3
値 値 値
値 値 値
値 値 値
レコード
バッチ
単位
レコード
単位
複数レコードをまとめて処理
SIMDを活用すればレコード単位の処理より高速
✓
✓
カラム単位でまとまったデータ
分析処理が高速
✓
ビッグデータ処理の多くは分析処理なはず
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
詳細
Apache Arrowフォーマットはなぜ速いのか Powered by Rabbit 3.0.1
Apache Arrowフォーマットは
なぜ速いのか
須藤功平
株式会社クリアコード
db tech showcase ONLINE 2020
2020-12-08
https://slide.rabbit-shocker.org/authors/kou/db-tech-showcase-online-2020/
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
高速な分散システムの実現方法
レコードバッチのストリーム
ここまでで説明したこと
待ち時間を減らせる
✓
受け取ったデータを高速処理できる
✓
✓
スケールアウト
これから説明すること
データを複数ノードで分散処理
✓
それを効率的に扱う
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
スケールアウト構成例
https://arrow.apache.org/img/20191014_flight_complex.png
Apache License 2.0 - © 2016-2021 The Apache Software Foundation
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
ポイント1:ムダな転送を回避可能
多くの分散システム
「コーディネーター」経由で通信
✓
ノード→コーディネーター→クライアント
✓
✓
Apache Arrow Flight
直接クライアントがデータ取得可能
✓
ノード→クライアント
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
ポイント2:並列転送可能
同時に複数ノードからデータ取得可能
データごとに異なるエンドポイントだから可能
✓
✓
ストリームなので各データを随時処理可能
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
個々のデータ転送も速い
個々のデータ転送のボトルネック
シリアライズ・デシリアライズ
✓
✓
どうすれば速くできる?
なにもしなきゃいいじゃん!
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
なにもしない?
そもそもなぜシリアライズが必要?
メモリー上のデータの配置と
通信時のデータの配置が違うから
✓
✓
シリアライズしなくて済むには?
メモリー上のデータの配置と
通信時のデータの配置を同じにすればいい!
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
Apache Arrowフォーマット
シリアライズ不要フォーマット
メモリー上で効率よくデータを扱える配置
✓
データ交換時も↑と同じ配置を使う
✓
✓
Apache Arrow Flightが扱うデータは
Apache Arrowフォーマット
個々のデータ転送も速い!
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
Apache Arrow Flightのまとめ
高速データ転送フレームワーク
並列転送対応
✓
ストリーム処理対応
✓
シリアライズ・デシリアライズがほぼ不要
✓
✓
gRPCベース
既存のgRPCライブラリーでも接続可能
✓
専用ライブラリーあり:C, C++, C#, Go, Java,
Python, R, Ruby, Rust
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
Apache Arrow Flightの利用事例
Apache Arrow
Ballista
Apache License 2.0 - © 2016-2021 The Apache Software Foundation
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
Apache Arrow Ballista
Rust実装の分散計算プラットフォーム
✓
データはApache Arrowフォーマット
✓
通信はgRPCとApache Arrow Flight
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
アーキテクチャー
Apache Arrow Flight
Apache Arrow Flight
Apache License 2.0 - © 2016-2021 The Apache Software Foundation
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
Apache Arrow Ballistaでの使い方
DoGetだけ使っている
処理済みのパーティションを受け取る
✓
大量データになりうる
✓
✓
その他の通信は素のgRPC
各Executorへの処理の依頼など
✓
大量データにはならない
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
さらにApache Arrow Flight
利用可能なリクエスト
✓
ミドルウェア
✓
将来の展望
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
利用可能なリクエスト1
Handshake
認証
✓
✓
ListFlights
利用可能なデータの取得方法一覧を取得
✓
GetSchema/DoGetなどで使える
✓
✓
GetFlightInfo
指定したデータの取得方法を取得
✓
GetSchema/DoGetなどで使える
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
利用可能なリクエスト2
GetSchema
指定したデータのスキーマを取得
✓
✓
DoGet:指定したデータを取得
✓
DoPut:データを送信
✓
DoExchange:データを送受信
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
利用可能なリクエスト3
DoAction
任意の処理を実行
✓
普通のRPCなので素のgRPCでも十分
✓
✓
ListActions
利用可能なアクション一覧を取得
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
ミドルウェア
プラグインみたいなもの
サーバー側・クライアント側両方あり
✓
✓
利用例
認証機能
✓
分散トレーシング機能
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
将来の展望1
gRPC以外もサポートするかも
https://issues.apache.org/jira/browse/ARROW-13889
✓
メーリングリストで議論中
✓
✓
候補:UCX
https://openucx.org/documentation/
RDMA/GPUなどハードウェアも活用した高速通信
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
将来の展望2
Apache Arrow Flight SQLの追加
https://issues.apache.org/jira/browse/ARROW-9825
✓
Apache Arrow Flight経由で各種RDBMSとやりとり
✓
✓
GetFlightInfoでSQL送信
✓
DoGetで結果を受信
RDBMSとFlightアダプターの間のシリアライズがボトルネックになりそうな気
がするんだけど、RDBMSのプロセス内にFlightアダプターを実装するのか
な。。。
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
まとめ
大量データのやりとりは
シリアライズ・デシリアライズが遅い
Apache Arrow Flightでそのコストをなくせる
✓
✓
さらに高速に扱う仕組みもある
並列転送やストリーム処理
✓
将来:UCXやFlight SQL
✓
✓
Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2
次のステップ
もっと詳しく知りたくなったから
イベント・社内・…で紹介して!
https://www.clear-code.com/contact/
✓
✓
アンケートに答えてね!
⇗のQRコードあるいは⇓
https://www.clear-code.com/surveys/db-tech-showcase-2021.html
✓
✓

More Related Content

What's hot

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
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)hamaken
 
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送Google Cloud Platform - Japan
 
Amazon Redshiftによるリアルタイム分析サービスの構築
Amazon Redshiftによるリアルタイム分析サービスの構築Amazon Redshiftによるリアルタイム分析サービスの構築
Amazon Redshiftによるリアルタイム分析サービスの構築Minero Aoki
 
社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウShinsuke Sugaya
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]DeNA
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersSeiya Mizuno
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタSatoyuki Tsukano
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?Takuya Ueda
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析Yuki Mizuno
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)Takeshi Mikami
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 

What's hot (20)

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)
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
 
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
 
Amazon Redshiftによるリアルタイム分析サービスの構築
Amazon Redshiftによるリアルタイム分析サービスの構築Amazon Redshiftによるリアルタイム分析サービスの構築
Amazon Redshiftによるリアルタイム分析サービスの構築
 
社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
噛み砕いてKafka Streams #kafkajp
噛み砕いてKafka Streams #kafkajp噛み砕いてKafka Streams #kafkajp
噛み砕いてKafka Streams #kafkajp
 
Apache NiFi の紹介 #streamctjp
Apache NiFi の紹介  #streamctjpApache NiFi の紹介  #streamctjp
Apache NiFi の紹介 #streamctjp
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 

Similar to Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021

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 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataApache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataKouhei Sutou
 
AWSが誕生するまでの秘話
AWSが誕生するまでの秘話AWSが誕生するまでの秘話
AWSが誕生するまでの秘話Yasuhiro Horiuchi
 
CloudTrail ログの検索を爆速化してみた
CloudTrail ログの検索を爆速化してみたCloudTrail ログの検索を爆速化してみた
CloudTrail ログの検索を爆速化してみたYohei Azekatsu
 
Effective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターンEffective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターンNoritaka Sekiyama
 
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonightAmazon Web Services Japan
 
Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理Amazon Web Services Japan
 
AWS Black Belt Techシリーズ AWS Data Pipeline
AWS Black Belt Techシリーズ  AWS Data PipelineAWS Black Belt Techシリーズ  AWS Data Pipeline
AWS Black Belt Techシリーズ AWS Data PipelineAmazon Web Services Japan
 
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
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用についてYuuki Namikawa
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンKazuyuki Miyake
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンseiichi arai
 
VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料Shinichiro Isago
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説Akira Inoue
 
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法Amazon Web Services Japan
 
Spark Analytics - スケーラブルな分散処理
Spark Analytics - スケーラブルな分散処理Spark Analytics - スケーラブルな分散処理
Spark Analytics - スケーラブルな分散処理Tusyoshi Matsuzaki
 

Similar to Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021 (20)

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 data
 
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataApache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory data
 
AWSが誕生するまでの秘話
AWSが誕生するまでの秘話AWSが誕生するまでの秘話
AWSが誕生するまでの秘話
 
Serverless analytics on aws
Serverless analytics on awsServerless analytics on aws
Serverless analytics on aws
 
CloudTrail ログの検索を爆速化してみた
CloudTrail ログの検索を爆速化してみたCloudTrail ログの検索を爆速化してみた
CloudTrail ログの検索を爆速化してみた
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
Effective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターンEffective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターン
 
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
 
Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理
 
AWS Black Belt Techシリーズ AWS Data Pipeline
AWS Black Belt Techシリーズ  AWS Data PipelineAWS Black Belt Techシリーズ  AWS Data Pipeline
AWS Black Belt Techシリーズ AWS Data Pipeline
 
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
 
Apache Spark on Azure
Apache Spark on AzureApache Spark on Azure
Apache Spark on Azure
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用について
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターン
 
VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
Spark Analytics - スケーラブルな分散処理
Spark Analytics - スケーラブルな分散処理Spark Analytics - スケーラブルな分散処理
Spark Analytics - スケーラブルな分散処理
 

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
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアKouhei 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
 

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
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェア
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのか
 
Apache Arrow 2019
Apache Arrow 2019Apache Arrow 2019
Apache Arrow 2019
 
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
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
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だけで作る高速でリッチな全文検索システム
 

Recently uploaded

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (9)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021

  • 1. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 Apache Arrow Flight ビッグデータ用高速データ転送フレームワーク 須藤功平 株式会社クリアコード db tech showcase 2021 2021-11-17
  • 2. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 モチベーション ビッグデータを 処理したい!
  • 3. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 ビッグデータ処理に必要なもの 大量データ:データがないと始まらない! ✓ 速度:速くないと処理しきれない! ✓
  • 4. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 大量データの収集に必要なもの データ収集ツール 例:ログ:Fluentd/Fluent Bit ✓ ✓ ストレージ 例:Amazon S3 ✓ ✓ 効率的なデータフォーマット トレードオフ:空間効率と時間効率 ✓ 例:CSVよりApache Parquet ✓ ✓
  • 5. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 高速処理に必要なもの 高速な分散システム 1台では処理しきれない ✓ ✓ 高速なアルゴリズムとその実装 個々の処理が速くなると全体も速くなる ✓ ✓
  • 6. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 今日注目すること 高速な分散システム
  • 7. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 高速な分散システムに必要なもの 効率のよいタスク管理 より速く処理が終わるようなリソース配分 ✓ ✓ 効率のよいデータ転送 ノード間でのデータ交換コストは無視できない ✓ ✓
  • 8. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 大量データの交換コスト 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ühleisen Centrum Wiskunde & Informatica Amsterdam, The Netherlands hannes@cwi.nl Netcat (10.25s) 170.9 170.9 170.9 189.6 189.6 189.6 629.9 629.9 629.9 221.2 221.2 221.2 686.5 686.5 686.5 101.3 101.3 101.3 391.3 391.3 391.3 202 202 202 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
  • 9. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 大量データの交換コスト ボトルネックになりやすい シリアライズ・デシリアライズ a. ネットワーク帯域 b. ✓ 目指すところ メイン処理がボトルネック (メイン処理以外が十分速い) ✓ ✓
  • 10. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 解決策 Apache Arrow Flight
  • 11. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 Apache Arrow Flightと私 Apache ArrowプロジェクトのPMCメンバー Apache Arrow Flightも開発しているプロジェクト ✓ PMC:プロジェクト管理委員会 ✓ ✓ コミット数2位 ✓
  • 12. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 Apache Arrow Flight gRPCベースのデータ転送フレームワーク ✓ ポイント 並列転送対応 「効率のよいタスク管理」に有用 ✓ ✓ ストリーム処理対応 「効率のよいタスク管理」に有用 ✓ ✓ シリアライズ・デシリアライズがほぼ不要 「効率のよいデータ転送」に有用 ✓ ✓ ✓
  • 13. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 簡単な使い方 https://arrow.apache.org/img/20191014_flight_simple.png Apache License 2.0 - © 2016-2021 The Apache Software Foundation
  • 14. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 GetFlightInfo クライアント→サーバー ✓ データの取得方法を教えてもらう サーバーはFlightInfoを返す ✓ ✓ FlightInfoの中身 メタデータ:スキーマ・総レコード数… ✓ 複数エンドポイント: データは複数ヶ所に分散しているかもしれない! ✓ ✓
  • 15. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 DoGet クライアント→サーバー ✓ データを取得する サーバーはレコードバッチをストリームで返す ✓ プロトコルレベルではFlightDataと呼んでいる ✓ ✓ レコードバッチ データ全体のうちの一部のレコードの集まり ✓ ✓
  • 16. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 Apache Arrow Flightが扱うデータ カラム1 カラム2 カラム3 レコード1 レコード2 レコード3 レコード4 レコード5 レコード バッチ1 レコード バッチ2 型付きのテーブルデータ RDBMSで扱うようなデータ ✓ カラムごとに型がある ✓ すべてのレコードは同じカラム構成 ✓ ✓ レコードバッチ テーブルデータ内の連続したレコードの集まり ✓ ✓
  • 17. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 レコードバッチストリーム レコード1 レコード2 レコード3 レコード バッチ1 レコード4 レコード5 レコード バッチ2 クライアント サーバー
  • 18. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 なぜストリームが重要か 大量データを準備ができた順に処理できる 全部準備ができるまで待たなくてよい ✓ リソースを有効活用できる ✓ ✓ レコードバッチのストリームでいいの? レコードのストリーム方がいいんじゃない? ✓ ✓
  • 19. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 ストリームの単位 カラム レコード a b c 1 2 3 値 値 値 値 値 値 値 値 値 カラム レコード a b c 1 2 3 値 値 値 値 値 値 値 値 値 レコード バッチ 単位 レコード 単位 レコード レコード単位で処理できる ✓ データはレコード単位でまとめる ✓ ✓ レコードバッチ 複数レコードをまとめて処理できる ✓ データをカラム単位でまとめられる ✓ ✓
  • 20. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 レコードバッチと処理 カラム レコード a b c 1 2 3 値 値 値 値 値 値 値 値 値 カラム レコード a b c 1 2 3 値 値 値 値 値 値 値 値 値 レコード バッチ 単位 レコード 単位 複数レコードをまとめて処理 SIMDを活用すればレコード単位の処理より高速 ✓ ✓ カラム単位でまとまったデータ 分析処理が高速 ✓ ビッグデータ処理の多くは分析処理なはず ✓ ✓
  • 21. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 詳細 Apache Arrowフォーマットはなぜ速いのか Powered by Rabbit 3.0.1 Apache Arrowフォーマットは なぜ速いのか 須藤功平 株式会社クリアコード db tech showcase ONLINE 2020 2020-12-08 https://slide.rabbit-shocker.org/authors/kou/db-tech-showcase-online-2020/
  • 22. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 高速な分散システムの実現方法 レコードバッチのストリーム ここまでで説明したこと 待ち時間を減らせる ✓ 受け取ったデータを高速処理できる ✓ ✓ スケールアウト これから説明すること データを複数ノードで分散処理 ✓ それを効率的に扱う ✓ ✓
  • 23. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 スケールアウト構成例 https://arrow.apache.org/img/20191014_flight_complex.png Apache License 2.0 - © 2016-2021 The Apache Software Foundation
  • 24. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 ポイント1:ムダな転送を回避可能 多くの分散システム 「コーディネーター」経由で通信 ✓ ノード→コーディネーター→クライアント ✓ ✓ Apache Arrow Flight 直接クライアントがデータ取得可能 ✓ ノード→クライアント ✓ ✓
  • 25. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 ポイント2:並列転送可能 同時に複数ノードからデータ取得可能 データごとに異なるエンドポイントだから可能 ✓ ✓ ストリームなので各データを随時処理可能 ✓
  • 26. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 個々のデータ転送も速い 個々のデータ転送のボトルネック シリアライズ・デシリアライズ ✓ ✓ どうすれば速くできる? なにもしなきゃいいじゃん! ✓ ✓
  • 27. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 なにもしない? そもそもなぜシリアライズが必要? メモリー上のデータの配置と 通信時のデータの配置が違うから ✓ ✓ シリアライズしなくて済むには? メモリー上のデータの配置と 通信時のデータの配置を同じにすればいい! ✓ ✓
  • 28. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 Apache Arrowフォーマット シリアライズ不要フォーマット メモリー上で効率よくデータを扱える配置 ✓ データ交換時も↑と同じ配置を使う ✓ ✓ Apache Arrow Flightが扱うデータは Apache Arrowフォーマット 個々のデータ転送も速い! ✓ ✓
  • 29. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 Apache Arrow Flightのまとめ 高速データ転送フレームワーク 並列転送対応 ✓ ストリーム処理対応 ✓ シリアライズ・デシリアライズがほぼ不要 ✓ ✓ gRPCベース 既存のgRPCライブラリーでも接続可能 ✓ 専用ライブラリーあり:C, C++, C#, Go, Java, Python, R, Ruby, Rust ✓ ✓
  • 30. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 Apache Arrow Flightの利用事例 Apache Arrow Ballista Apache License 2.0 - © 2016-2021 The Apache Software Foundation
  • 31. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 Apache Arrow Ballista Rust実装の分散計算プラットフォーム ✓ データはApache Arrowフォーマット ✓ 通信はgRPCとApache Arrow Flight ✓
  • 32. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 アーキテクチャー Apache Arrow Flight Apache Arrow Flight Apache License 2.0 - © 2016-2021 The Apache Software Foundation
  • 33. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 Apache Arrow Ballistaでの使い方 DoGetだけ使っている 処理済みのパーティションを受け取る ✓ 大量データになりうる ✓ ✓ その他の通信は素のgRPC 各Executorへの処理の依頼など ✓ 大量データにはならない ✓ ✓
  • 34. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 さらにApache Arrow Flight 利用可能なリクエスト ✓ ミドルウェア ✓ 将来の展望 ✓
  • 35. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 利用可能なリクエスト1 Handshake 認証 ✓ ✓ ListFlights 利用可能なデータの取得方法一覧を取得 ✓ GetSchema/DoGetなどで使える ✓ ✓ GetFlightInfo 指定したデータの取得方法を取得 ✓ GetSchema/DoGetなどで使える ✓ ✓
  • 36. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 利用可能なリクエスト2 GetSchema 指定したデータのスキーマを取得 ✓ ✓ DoGet:指定したデータを取得 ✓ DoPut:データを送信 ✓ DoExchange:データを送受信 ✓
  • 37. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 利用可能なリクエスト3 DoAction 任意の処理を実行 ✓ 普通のRPCなので素のgRPCでも十分 ✓ ✓ ListActions 利用可能なアクション一覧を取得 ✓ ✓
  • 38. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 ミドルウェア プラグインみたいなもの サーバー側・クライアント側両方あり ✓ ✓ 利用例 認証機能 ✓ 分散トレーシング機能 ✓ ✓
  • 39. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 将来の展望1 gRPC以外もサポートするかも https://issues.apache.org/jira/browse/ARROW-13889 ✓ メーリングリストで議論中 ✓ ✓ 候補:UCX https://openucx.org/documentation/ RDMA/GPUなどハードウェアも活用した高速通信 ✓ ✓
  • 40. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 将来の展望2 Apache Arrow Flight SQLの追加 https://issues.apache.org/jira/browse/ARROW-9825 ✓ Apache Arrow Flight経由で各種RDBMSとやりとり ✓ ✓ GetFlightInfoでSQL送信 ✓ DoGetで結果を受信 RDBMSとFlightアダプターの間のシリアライズがボトルネックになりそうな気 がするんだけど、RDBMSのプロセス内にFlightアダプターを実装するのか な。。。 ✓ ✓
  • 41. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 まとめ 大量データのやりとりは シリアライズ・デシリアライズが遅い Apache Arrow Flightでそのコストをなくせる ✓ ✓ さらに高速に扱う仕組みもある 並列転送やストリーム処理 ✓ 将来:UCXやFlight SQL ✓ ✓
  • 42. Apache Arrow Flight - ビッグデータ用高速データ転送フレームワーク Powered by Rabbit 3.0.2 次のステップ もっと詳しく知りたくなったから イベント・社内・…で紹介して! https://www.clear-code.com/contact/ ✓ ✓ アンケートに答えてね! ⇗のQRコードあるいは⇓ https://www.clear-code.com/surveys/db-tech-showcase-2021.html ✓ ✓