-
今日のイベントについて
- https://speee.connpass.com/event/152887/
- 大まかな流れ
- 最新情報
- どうやって使い始めるか検討・・・ユースケース
-
発表:Apache Arrowの最新情報 須藤功平
- https://slide.rabbit-shocker.org/authors/kou/apache-arrow-tokyo-meetup-2019/
- Apache Arrow 1.0.0が出る!
- 1,2月あたり
- 使い始めるなら今!
- 今使ってない人でも、1.0.0出たら使い始めるので、今から触っているといい
- https://github.com/apache/arrow
- みんなで力を合わせたら使える
-
発表:Apache Arrowの最新情報 村田賢太さん
- https://speakerdeck.com/yutannihilation/r-and-apache-arrow
- Apache Arrow
- データ処理の効率化
- 効率的の定義
- 速度
- 遅いところを早くすると早くなる
- 高速化できるところを最適化
- 実装コスト
- 速度
- データ交換処理
- シリアライズ
- CPU
- 転送
- IO
- デシリアライズ
- CPU
- シリアライズ
- 交換速度を早くする方法
- 何もしない
- 何もしないためのデータフォーマットを定義している
- メモリ上のフォーマット
- メモリ上のフォーマットをそのまま渡すから、シリアライズが発生しない
- たしかGoogleのアルゴリズム??
- メモリ上のフォーマットをそのまま渡すから、シリアライズが発生しない
- メモリ上のフォーマット
- 何もしないためのデータフォーマットを定義している
- 何もしない
- メモリーマップ機能
- ファイルをメモリ上のデータのようにアクセスできるようにする
- RPCフレームワーク
- Apache Arrow Flight
- RPCフレームワーク
- ファイルをメモリ上のデータのようにアクセスできるようにする
- 大量データの計算の高速化
- 想定ユースケース
- OLAP
- 列単位の処理が多い
- SIMD
- データをまとめてアライン
- 競合リソースを作らない
- アプローチ
- リソースを参照にする
- アプローチ
- データをストリームで処理
- フォーマットの変換
- CSVとかをArrow形式にする必要がある
- 読み込んで吐き出す処理を追加している最中
- CSVとかをArrow形式にする必要がある
- データ交換用とにならだいたいの言語で使える
- データの高速な計算は一部の言語のみ
- 実装される順番はC++ベースが一番早い
- 想定ユースケース
- 効率的の定義
- データ処理の効率化
-
発表:Apache Arrow Datasets C++ 須藤功平さん
- https://speakerdeck.com/mrkn/apache-arrow-c-plus-plus-datasets
- Apache Arrow C++ Datasets
- 24番目のコミッター
- Rubyのためにコミットしている
- RubyにもPandasみたいなの来て欲しい
- Apache Arrow C++構成
- Base
- Datasets
- Query Engine
- 作成中
- Data Frame
- 作成中
- Datasets
- 複数のデータソースから1つのテーブルを作る
- 機能
- Discover
- Scan
- Query Engine
- Data Frame
-
RとApache Arrow 湯谷啓明さん
- ggplot2のメンテナ
- Rユーザーの悩み
- 他のシステムからデータを取ってくるのが大変(Spark, DB)
- Java関連のセットアップが難しい
- コピー・変換が遅い
- 他のデータ分析者とデータを共有するのが大変
- CSVで表現できないデータ型、パース方法の差異
- メモリに乗り切らない巨大なデータ
- 他のシステムからデータを取ってくるのが大変(Spark, DB)
- Rユースケース
- Spark
- RとSparkとの変換が遅いので、それにApache Arrowを使いたい
- Sparkと直接やりとりできるから早い
- Parquet, Feather
- メモリに乗らなかったデータの読み書きができる
- data.table::fread()より早い
- めちゃめちゃ早いで有名なデータテーブル形式(?)
- dplyrのバックエンド
- Spark
-
Apache ArrowでRの開発が進んでいる理由
- Rの開発を推進する非営利団体が開設された
- Apache Arrowの開発に携わっている
- Rの開発を推進する非営利団体が開設された
-
発表:PostgreSQLとApache Arrowの利用事 海外浩平さん
- https://www.slideshare.net/kaigai/20191211apachearrowmeetuptokyo
- 所属: HeteroDB
- PG-Strom
- 大量のデータを処理
- 工場20TB * 5年
- 2Uサーバーなら192TB入る
- 6万ドル
- いけそう
- 6万ドル
- 2Uサーバーなら192TB入る
- GPUでIOを高速化
- 集計処理でフィルタリングするデータもメモリに読み込んでいる
- ゴミを運ぶためにIOを使っていると言える
- IOの方法を変える
- PCIeからSSDのデータをGPUに読み出した結果をメモリで処理すれば早くなる
- 👆聞き取れてるか怪しい文章
- PCIeからSSDのデータをGPUに読み出した結果をメモリで処理すれば早くなる
- 集計処理でフィルタリングするデータもメモリに読み込んでいる
- Arrow_Fdw 効率的な列データストア
- Postgresのデータは効率的ではない
- 背景
- データの生成
- データを作成してデータベースに入れる処理が辛い
- データ構造に無駄が多い
- 空のブロックがあったりする
- 👉Apache Arrowは内部でデータを列形式にする
- それに加えて、データ形式のマッピングが簡単になっている
- 👉Apache Arrowは内部でデータを列形式にする
- 空のブロックがあったりする
- データの生成
- Apache Arrow
- FDW
- CSVのデータソースをテーブルであるかのように取り扱う機能がある
- SSD-to-GPU Direct SQL
- 被参照列だけを転送する
- FDW
- 背景
- Postgresのデータは効率的ではない
- マルチGPU + SSD-to-GPU Direct SQL, Arrow_Flow, マルチGPU処理の全てを投入
- レコードベースで見ると
- 毎秒10億レコード
- レコードベースで見ると
-
発表:Apache SparkとApache Arrowの連携 Takeshi Yamamuroさん
- 所属: NTTのR&D部門
- Spark
- 分散・並列処理フレームワーク
- 使うならPySparkが一番簡単
- 今日のユースケース
- Pandasの処理を分散処理したい場合
- 4~100倍早くなる
- Spark + Arrow Internal
-
発表:TensorFlowとApache Arrowの連携 石崎一明
- Apach Arrowを使ってTensorFlowと他の連携の高速化の話
- TensorFlow
- Googleの作ったディープラーニングのフレームワーク
- Apache Arrowを使うとデータ連携が楽になる
- データのオーバーヘッドが減る
-
発表:TensorFlowとBigQuery Storage APIとApache Arrowの連携評価事例 漆山和樹さん
- https://colab.research.google.com/drive/15jlahiynXHnPze6kXZeJswXDe2jN461c
- SENSY株式会社
- PoCの課題
- 数百GB〜数TBのデータ量
- データ転送に時間がかかる
- Pandas
- SENSYフレームワーク
- 擬似的なdefine by rub
- SENSYフレームワーク
- 密ベクトル
- 研究成果のアルゴリズムの制約
- toCの顧客の購買履歴をベクトル化して学習する
- CSVにすると文字列として入ってしまってパースが面倒
- toCの顧客の購買履歴をベクトル化して学習する
- 研究成果のアルゴリズムの制約
- 数百GB〜数TBのデータ量
- Apache Arrow
- 転送速度高速化
- 互換性があるのでライブラリでも利用可
- ベクトルの保存と復元が簡単になった
- 早くて・安くて・すごい
Last active
December 12, 2019 01:32
-
-
Save s4na/b874d9ab9a76801a64afc64f9d5bb111 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment