Skip to content

Instantly share code, notes, and snippets.

@s4na
Last active December 12, 2019 01:32
Show Gist options
  • Save s4na/b874d9ab9a76801a64afc64f9d5bb111 to your computer and use it in GitHub Desktop.
Save s4na/b874d9ab9a76801a64afc64f9d5bb111 to your computer and use it in GitHub Desktop.

Apache Arrow東京ミートアップ

  • 今日のイベントについて

  • 発表:Apache Arrowの最新情報 須藤功平

  • 発表:Apache Arrowの最新情報 村田賢太さん

    • https://speakerdeck.com/yutannihilation/r-and-apache-arrow
    • Apache Arrow
      • データ処理の効率化
        • 効率的の定義
          • 速度
            • 遅いところを早くすると早くなる
            • 高速化できるところを最適化
          • 実装コスト
        • データ交換処理
          • シリアライズ
            • CPU
          • 転送
            • IO
          • デシリアライズ
            • CPU
        • 交換速度を早くする方法
          • 何もしない
            • 何もしないためのデータフォーマットを定義している
        • メモリーマップ機能
        • 大量データの計算の高速化
          • 想定ユースケース
            • OLAP
            • 列単位の処理が多い
          • SIMD
            • データをまとめてアライン
          • 競合リソースを作らない
            • アプローチ
              • リソースを参照にする
          • データをストリームで処理
          • フォーマットの変換
            • 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で表現できないデータ型、パース方法の差異
        • メモリに乗り切らない巨大なデータ
    • Rユースケース
      • Spark
        • RとSparkとの変換が遅いので、それにApache Arrowを使いたい
        • Sparkと直接やりとりできるから早い
      • Parquet, Feather
        • メモリに乗らなかったデータの読み書きができる
        • data.table::fread()より早い
          • めちゃめちゃ早いで有名なデータテーブル形式(?)
      • dplyrのバックエンド
  • Apache ArrowでRの開発が進んでいる理由

    • Rの開発を推進する非営利団体が開設された
      • Apache Arrowの開発に携わっている
  • 発表:PostgreSQLとApache Arrowの利用事 海外浩平さん

    • https://www.slideshare.net/kaigai/20191211apachearrowmeetuptokyo
    • 所属: HeteroDB
    • PG-Strom
      • 大量のデータを処理
    • 工場20TB * 5年
      • 2Uサーバーなら192TB入る
        • 6万ドル
          • いけそう
    • GPUでIOを高速化
      • 集計処理でフィルタリングするデータもメモリに読み込んでいる
        • ゴミを運ぶためにIOを使っていると言える
      • IOの方法を変える
        • PCIeからSSDのデータをGPUに読み出した結果をメモリで処理すれば早くなる
          • 👆聞き取れてるか怪しい文章
    • Arrow_Fdw 効率的な列データストア
      • Postgresのデータは効率的ではない
        • 背景
          • データの生成
            • データを作成してデータベースに入れる処理が辛い
          • データ構造に無駄が多い
            • 空のブロックがあったりする
              • 👉Apache Arrowは内部でデータを列形式にする
                • それに加えて、データ形式のマッピングが簡単になっている
        • Apache Arrow
          • FDW
            • CSVのデータソースをテーブルであるかのように取り扱う機能がある
          • SSD-to-GPU Direct SQL
            • 被参照列だけを転送する
    • マルチ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
      • 密ベクトル
        • 研究成果のアルゴリズムの制約
          • toCの顧客の購買履歴をベクトル化して学習する
            • CSVにすると文字列として入ってしまってパースが面倒
    • Apache Arrow
      • 転送速度高速化
      • 互換性があるのでライブラリでも利用可
      • ベクトルの保存と復元が簡単になった
      • 早くて・安くて・すごい
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment