Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データ分析基盤のはじめかた

 データ分析基盤のはじめかた

オープンセミナー 2022@広島 での登壇資料です。
https://osh.connpass.com/event/242991/

一部の日本語が薄くなっています。
見にくい場合は Google Slides でご覧ください。
https://docs.google.com/presentation/d/1TB45lnY4jA7KXy2XkReX-CXEYG7D2OLcHDUULAWlm08/edit?usp=sharing

69a81d6d4d66a348e72f7a28b265fdbe?s=128

chanyou0311

June 28, 2022
Tweet

More Decks by chanyou0311

Other Decks in Technology

Transcript

  1. データ分析基盤のはじめかた 中村 優

  2. 中村 優 (chanyou0311) • 広島出身広島在住のエンジニア • 呉高専出身 • 趣味はクルマと工作 •

    PyCon JP 2022 のスタッフ 2019年4月 株式会社ガイアックス 2022年1月 株式会社 MaaS Tech Japan
  3. 広島県の交通系データ基盤に採択されました https://www.maas.co.jp/news/release20210826/

  4. PyCon JP 2022 を10月に開催します 日程: 10/14(金) から 10/16(日) まで 会場:

    TOC有明コンベンションホール 数百人規模のオフラインイベントを想定しています 現在スポンサー募集中です!
  5. 本題へ!

  6. このセッションのゴール • データ分析基盤を構築するシチュエーションがわかる • データ分析基盤の基本的な構成要素がわかる なんかデータ分析基盤作れそう!作ってみたい 💪

  7. 今日お話すること • データ分析基盤とは何か • データ分析基盤の構成要素 インフラエンジニアの視点でデータ分析基盤を解剖する

  8. 今日お話しないこと • データ分析基盤で使われる技術の具体的な選定方法 • データ分析基盤の運用、活用 • データ分析の文化の醸成

  9. データ分析基盤とは何か

  10. そもそもデータ分析とは?

  11. データから何らかの意味を 引き出す行為のこと

  12. データ分析のアプローチ • 統計学 • 機械学習

  13. データ分析のアプローチ • 統計学 • 人間の意思決定を支える • グラフでアウトプットされることが多い • 機械学習

  14. データ分析のアプローチ • 統計学 • 人間の意思決定を支える • グラフでアウトプットされることが多い • 機械学習 •

    人間の判断を自動化する • モデルをシステムに組み込むことが多い 関連動画は こちら
  15. データ分析基盤とは何か データから何らかの意味を引き出すためのシステム

  16. データ分析基盤とは何か データから何らかの意味を引き出すためのシステム ↓ データを読み込んで、取り出しやすい形に整形して蓄積する 使う時にサッと読み込める

  17. データ分析基盤 データベース + 変換処理

  18. データ分析基盤の構成要素

  19. データ分析基盤の構成要素(簡易版) データソース データベース データ活用  データの処理

  20. データ分析基盤の構成要素(簡易版) データソース データベース データ活用  データの処理 データ分析基盤

  21. • 社内の RDB、POS データ • Web API、スクレイピング • センサーデータ •

    オープンデータ、購入したデータ データソース: データの収集源 データソース データベース データ活用
  22. データ活用: モデル構築や可視化 データソース データベース データ活用 • BI ツール • Jupyter

    Notebook
  23. でも、この構成だと…

  24. データソース データベース データ活用 ① CSVファイルから 必要なカラムだけデータ ベースに保存しよう ② あとから別のカラムも 必要になった…

    データソースから データを再取得する必要が生じた… この構成のつらいところ 1/2
  25. データソース データベース データ活用 ① 巨大な CSV だけどそ のままデータベースに保 存しておこう ②

    複雑な条件でクロス集 計したいのに処理が終わ らない… データベースのスキーマがデータ活用時と かけ離れていて、処理コストが高い… この構成のつらいところ 2/2
  26. データソース データベース データ活用 単一のレイヤーだと データ活用の要求を吸収しきれない あれもしたい これもしたい… いま言われても…

  27. データベースを役割ごとに 分割すると解決しそう!

  28. データ分析基盤の構成要素 データソース データ活用 データベース

  29. データ分析基盤の構成要素 データソース データレイク データウェア ハウス データマート データ活用 データベース

  30. 生データの保存場所 データレイク データウェア ハウス データマート • 形式は Excel、CSV、JSON、PDF、音声、画像、動画… • 実体は

    AWS S3、GCP Cloud Storage など
  31. 生データを構造化して保存する場所 データレイク データウェア ハウス データマート • 実体は Google BigQuery, Amazon

    RedShift など • Avro, Parquet ファイル形式で持つこともある
  32. データ活用のために 加工したデータの保存場所 データレイク データウェア ハウス データマート • データ活用の用途に応じて、都度データマートを作成する • 不要な列を削減したり、複雑なクエリを予め実行しておく

  33. データ分析基盤の構成要素 データソース データレイク データウェア ハウス データマート データ活用  データの処理

  34. データの処理方法

  35. データ分析基盤の構成要素 データソース データレイク データウェア ハウス データマート データ活用  データの処理

  36. データの処理方法 • バッチ • ストリーム

  37. データの処理方法 • バッチ • 一度限り、あるいは定期的に実行する処理 • ストリーム • 継続してリアルタイムに実行する処理

  38. データソースやデータ活用の 要件で使い分ける

  39. データの処理方法 • バッチ • リアルタイムで更新されなくてもよい場合 • 例: サイトのアクセス数のダッシュボード • ストリーム

    • 次々と発生するデータをすぐに活用する場合 • 例: 異常値検知、急上昇ワードのレコメンド
  40. データ分析基盤の実装例

  41. connpass の急上昇イベントを把握するデータ分析基盤 • イベント参加者の増減を時系列で可視化する

  42. データ分析基盤の構成要素 データソース データレイク データウェア ハウス データマート データ活用

  43. データ分析基盤の構成要素 データソース データレイク データウェア ハウス データマート データ活用 宅鯖の crontab で

    1分ごとに API を叩いて JSON Lines で保存する
  44. データ分析基盤の構成要素 データソース データレイク データウェア ハウス データマート データ活用 宅鯖の crontab で

    1分ごとに API を叩いて JSON Lines で保存する crontab で 10分ごとに BigQuery にロードする
  45. データ分析基盤の構成要素 データソース データレイク データウェア ハウス データマート データ活用 宅鯖の crontab で

    1分ごとに API を叩いて JSON Lines で保存する crontab で 10分ごとに BigQuery にロードする BigQuery の定期クエリ で15分ごとにデータマート を更新する
  46. データ分析基盤の構成要素 データソース データレイク データウェア ハウス データマート データ活用 宅鯖の crontab で

    1分ごとに API を叩いて JSON Lines で保存する crontab で 10分ごとに BigQuery にロードする BigQuery の定期クエリ で15分ごとにデータマート を更新する BigQuery の接続設定を してグラフを定義する
  47. デモ

  48. connpass の急上昇イベントを把握するデータ分析基盤 • 自宅サーバーの稼働費用を除けば無料枠で作れる • 趣味で作ってみましょう • より信頼性を高めるには、ワークフロー管理ツールの導入を検 討すべき •

    Apache Airflow
  49. まとめ

  50. データ分析基盤 データベース + 変換処理

  51. データ分析基盤の構成要素 データソース データレイク データウェア ハウス データマート データ活用  データの処理

  52. ぜひ身の回りのデータで データ分析基盤を作ってみよう!