Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

中村 優 (chanyou0311) ● 広島出身広島在住のエンジニア ● 呉高専出身 ● 趣味はクルマと工作 ● PyCon JP 2022 のスタッフ 2019年4月 株式会社ガイアックス 2022年1月 株式会社 MaaS Tech Japan

Slide 3

Slide 3 text

広島県の交通系データ基盤に採択されました https://www.maas.co.jp/news/release20210826/

Slide 4

Slide 4 text

PyCon JP 2022 を10月に開催します 日程: 10/14(金) から 10/16(日) まで 会場: TOC有明コンベンションホール 数百人規模のオフラインイベントを想定しています 現在スポンサー募集中です!

Slide 5

Slide 5 text

本題へ!

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

データ分析基盤とは何か

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

データ分析のアプローチ ● 統計学 ● 人間の意思決定を支える ● グラフでアウトプットされることが多い ● 機械学習 ● 人間の判断を自動化する ● モデルをシステムに組み込むことが多い 関連動画は こちら

Slide 15

Slide 15 text

データ分析基盤とは何か データから何らかの意味を引き出すためのシステム

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

● 社内の RDB、POS データ ● Web API、スクレイピング ● センサーデータ ● オープンデータ、購入したデータ データソース: データの収集源 データソース データベース データ活用

Slide 22

Slide 22 text

データ活用: モデル構築や可視化 データソース データベース データ活用 ● BI ツール ● Jupyter Notebook

Slide 23

Slide 23 text

でも、この構成だと…

Slide 24

Slide 24 text

データソース データベース データ活用 ① CSVファイルから 必要なカラムだけデータ ベースに保存しよう ② あとから別のカラムも 必要になった… データソースから データを再取得する必要が生じた… この構成のつらいところ 1/2

Slide 25

Slide 25 text

データソース データベース データ活用 ① 巨大な CSV だけどそ のままデータベースに保 存しておこう ② 複雑な条件でクロス集 計したいのに処理が終わ らない… データベースのスキーマがデータ活用時と かけ離れていて、処理コストが高い… この構成のつらいところ 2/2

Slide 26

Slide 26 text

データソース データベース データ活用 単一のレイヤーだと データ活用の要求を吸収しきれない あれもしたい これもしたい… いま言われても…

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

生データの保存場所 データレイク データウェア ハウス データマート ● 形式は Excel、CSV、JSON、PDF、音声、画像、動画… ● 実体は AWS S3、GCP Cloud Storage など

Slide 31

Slide 31 text

生データを構造化して保存する場所 データレイク データウェア ハウス データマート ● 実体は Google BigQuery, Amazon RedShift など ● Avro, Parquet ファイル形式で持つこともある

Slide 32

Slide 32 text

データ活用のために 加工したデータの保存場所 データレイク データウェア ハウス データマート ● データ活用の用途に応じて、都度データマートを作成する ● 不要な列を削減したり、複雑なクエリを予め実行しておく

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

データの処理方法

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

データの処理方法 ● バッチ ● ストリーム

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

データの処理方法 ● バッチ ● リアルタイムで更新されなくてもよい場合 ● 例: サイトのアクセス数のダッシュボード ● ストリーム ● 次々と発生するデータをすぐに活用する場合 ● 例: 異常値検知、急上昇ワードのレコメンド

Slide 40

Slide 40 text

データ分析基盤の実装例

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

デモ

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

まとめ

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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