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

Eurekaの DataPlatform開発状況と再現性の実現

t-kurimura
February 06, 2020

Eurekaの DataPlatform開発状況と再現性の実現

t-kurimura

February 06, 2020
Tweet

More Decks by t-kurimura

Other Decks in Technology

Transcript

  1. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 1

    View Slide

  2. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 2
    Slide Uploaded Ask on Twitter
    #前向きデータ整備人
    で探してみてください
    懇親会にもいるのでそちらでも

    View Slide

  3. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 3
    自己紹介
    Takahisa Kurimura
    - Eureka Inc.
    - BI (Business intelligence) チーム所属
    - Mobile apps/ Matching / SharingEconomy
    - Football (主にJリーグ) / Motorbike
    t-kurimura t_kurimura

    View Slide

  4. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 4

    View Slide

  5. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 5

    View Slide

  6. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 6

    View Slide

  7. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 7

    View Slide

  8. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 8

    View Slide

  9. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 9
    Eurekaの
    DataPlatform開発状況と"再現性"の実現
    第二回 データアーキテクト(データ整備人) を“前向き”に考える会 /2020.02.06

    View Slide

  10. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 10
    DataPlatform基盤の全体概要
    データ基盤の全体構成図

    View Slide

  11. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 11
    Third Party tools
    DataPlatform基盤の全体概要
    その他Adhocな分析
    BigQuery

    View Slide

  12. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 12
    Third Party tools
    DataPlatform基盤の全体概要
    Data Platform
    その他Adhocな分析
    BigQuery CloudComposer Airflow

    View Slide

  13. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 13
    DataPlatform基盤の全体概要
    Apache Airflow を基に構築された、
    フルマネージドのワークフロー オーケストレー
    ション サービス
    スケジュール管理・ワークフロー管理に特化し
    たオープンソースソフトウェア

    View Slide

  14. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 14
    Third Party tools
    DataPlatform基盤の全体概要
    Data Platform
    DataLake
    Data
    WareHouse
    DataMart
    生ログをほぼ
    そのまま保存
    しているDB
    分析用の下処
    理を施したDB
    ビジネス
    観点で整備し
    たDB
    その他Adhocな分析

    View Slide

  15. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 15
    DataPlatformの変遷
    DataPlatformの発足期
    Redash/Spreadsheet乱立期 DataPlatform開発繁栄期
    - DP開発メンバーの増加
    - Tableau上ので公式DSの拡充
    - DP定例会の実施
    - RedashAPIをGasで利用
    - Spreadsheetに
    データを連携し可視化
    - Tableau導入
    - CloudComposer導入
    - 基本データの拡充
    - View Queryの乱立
    DataPlatform管理レポジトリのコード量の推移

    View Slide

  16. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 16
    DataPlatformの変遷
    DataPlatformの発足期
    Redash/Spreadsheet乱立期 DataPlatform開発繁栄期
    - DP開発メンバーの増加
    - Tableau上ので公式DSの拡充
    - DP定例会の実施
    - RedashAPIをGasで利用
    - Spreadsheetに
    データを連携し可視化
    - Tableau導入
    - CloudComposer導入
    - 基本データの拡充
    - View Queryの乱立
    DataPlatform管理レポジトリのコード量の推移

    View Slide

  17. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 17
    DataPlatformにのせる “公式化”のメリット
    View Table / Scheduled Query Airflowでの管理
    - コードレビューによるデータの妥当性の担保
    - 依存関係の定義によるデータの信頼性の担保
    - データ・分析の再現性を支える

    View Slide

  18. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 18
    DataPlatformにおける“再現性”とは
    - データに対するドメインナレッジの蓄積
    データの定義における解釈が統一される
    - 必要なデータが必要なときにすぐに取り出せること
    どこに何があるかが明確で、すぐにアクセス可能

    View Slide

  19. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 19
    DataPlatformの開発状況
    Pairs
    Project A 担当
    Pairs
    Project B 担当
    Engage 担当
    Tableauによるデータの可視化・意思決定のサポート
    BigQueryでのデータソースの作成
    Airflowでのワークフローの作成
    CloudComposerの基盤管理
    SRE
    Team Project Owner & member
    経営レポート・中長期分析・
    マーケティング関連
    Adhoc分析
    Boards, Bland, MarketingTeam

    View Slide

  20. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 20
    DataPlatformの開発フロー
    依頼者
    ProductManager
    ProductOwner
    Team meber
    etc.
    BI Team
    View TableやScheduled Queryを利用して簡易的に提供
    目的・背景・見たい指標等の落とし込み

    View Slide

  21. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 21
    DataPlatformの開発フロー
    依頼者 BI Team
    当該Dashboardの運用の知見を踏まえて AirflowでDWH・DMを実装

    View Slide

  22. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 22
    DataPlatformの開発フロー
    一度、ViewTableなどで簡易的にDataMartを作成し可視化する。
    その後、成果物の改善点などを踏まえてDWH/DMを実装する。
    - 運用が安定したDashboardを元にDWH/DMを実装すれば過不足なく設計できる。
    - 突発的な依頼に対応しやすい
    - 担当者の強い意志依存なので、 ViewQueryの放置、DWH・DMが充実していかない可能性
    メリット
    デメリット

    View Slide

  23. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 23
    DWH構築のためのログ・メタデータの活用
    すべてのクエリ発行や操作のログが集積 データセット内のテーブルの最終更新などの情報

    View Slide

  24. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 24
    DataPlatformでの監査データの活用
    あらゆるツールを介して実行されているクエリをまとめて確認できる

    View Slide

  25. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 25
    DataPlatformでの監査データの活用
    2つのテーブルがJOINして実行されているクエリを DWH化

    View Slide

  26. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 26
    DataPlatformでの監査データの活用
    DWH・DMにどういったものが必要・不必要かの判断材料に
    ● 利用頻度の多いテーブル
    ● 同時に使われていることが多いテーブル
    ● 全く利用されてないテーブル
    監査ログ・Information_schemaを利用することで、

    View Slide

  27. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 27
    DataPlatformでの永続UDFの活用
    特定のDatasetに関数のみを、定義できる

    View Slide

  28. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 28
    異なるクエリからでも同じ関数を参照できる
    DataPlatformでの永続UDFの活用

    View Slide

  29. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 29
    永続UDFに関してもコード管理
    DataPlatformでの永続UDFの活用

    View Slide

  30. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 30
    コード管理によって、定義の統一と知見の集約を高める
    - 知見の属人化を排除
    - クエリの可読性向上
    - 類似クエリ作成のスピード向上
    永続UDFの活用で、
    DataPlatformでの永続UDFの活用

    View Slide

  31. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 31
    DataPlatformの知見共有
    ● 各種ツールのエラーログの確認
    ● リファクタリングの方針相談・進捗共有
    ● 開発上困ったことの解決
    ● 現状の課題の整理
    ● 今後のルール・戦略の共通認識
    週に1回関連するメンバーで30分定例MTGを実施

    View Slide

  32. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 32
    まとめ
    - 過去の分析や整形されたデータの再現性を重要視する
    Airflowでのクエリのコード管理・関数の共通化 (永続UDF)
    - MVPなDMから可視化し改善点を明確にしたえで、
    DM・DWHを設計
    最初は、Scheduled QueryやView Tableを利用し柔軟にDMを設計
    - 巻き込みやすい、巻き込まれやすいような環境
    CI等の整備、Github操作のみにするなど開発への障壁下げる。定例会での情報共有

    View Slide

  33. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 33

    View Slide

  34. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy 34
    Appendix
    Apache Airflow
    Cloud Composer
    Cloud Audit Logging | Stackdriver Logging ドキュメント
    Introduction to BigQuery INFORMATION_SCHEMA | BigQuery
    Standard SQL User-Defined Functions | BigQuery
    BigQueryとAirflowを活用したDataPlatform運用の10のケース・スタディ
    1年間のDataPlatformプロジェクトから見えてきた「 DataWarehouseの作りかた」

    View Slide