なむなむ

@namb_nam による恥晒し

データ処理言語の使い分け

『前処理大全』を読んでいる。

amzn.to

SQL・R・Pythonの特徴を活かした使い分け

前処理のフェーズの向き・不向き

  • データ構造を対象とした前処理 → SQL
  • レポーティングやアドホックな分析をするときの「データ内容を対象とした前処理」 → R
  • システム化するときの「データ内容を対象とした前処理」 → Python

処理による言語の向き・不向き

  • データサイズが大きいデータから抽出処理をするときはSQL
    • R/Pythonではメモリ上に展開できるデータサイズしか通常扱うことができない
  • データを縦持ちから横持ちに変換するときはR/Python
    • SQLでは長文を書く必要があるが、R/Pythonは1コマンドで実現可能
  • 前処理をシステム化するならSQLPython
    • システム化環境が充実しており、他システムとの連携も容易
  • 実行結果を記録しつつ分析作業を進めるアドホック分析の実現はR/Python
    • 容易なのはRだが、PythonもJupyterNotebookを用いれば実現可能
弊社の環境ではSQL in BigQuery + Pythonで、Rはほぼ使わない。
アドホック分析はBQのログを溜めていくか、Pythonでやるしかない。

そうか、縦横変換はPythonなら楽なのか...