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

2022/12/14 ちゅらコラボ登壇資料

ugmuka
December 14, 2022
290

2022/12/14 ちゅらコラボ登壇資料

ugmuka

December 14, 2022
Tweet

Transcript

  1. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 1

    Whoami select * from employnee where name = ‘向井雄二’; name company role twitter job 向井雄二 DATUM STUDIO データエンジニア @ugmuka データ分析基盤の 受託開発
  2. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 2

    本日のターゲット Tokyo dbt meetup #4のアンケート結果 https://getdbt.slack.com/archives/C02NYJCRE80/p1661307153431409?thread_ts=1659666385.305389&cid=C02NYJCRE80 この人たち向け
  3. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 3

    話したいこと 年末なので1年を振り返ります ◦◦な課題が発生したよ ↓ dbtでこうやって解決したよ 技術選定 開発 運用 現在
  4. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 4

    目次 0. はじめに 1. 技術選定 1. dbtを選んだ理由 2. 開発 1. SQLが複雑すぎる 2. 数字が合わない! 3. 運用 1. この集計間違ってない? 2. 異常なデータがないか監視したい 4. 現在
  5. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 5

    目次 0. はじめに 1. 技術選定 1. dbtを選んだ理由 2. 開発 1. SQLが複雑すぎる 2. 数字が合わない! 3. 運用 1. この集計間違ってない? 2. 異常なデータがないか監視したい 4. 現在
  6. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 6

    DATUM STUDIOって? 基盤構築からMLOpsまで色々やってます unleash: 解き放つ
  7. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 7

    よくあるPJ お客様の声(例) ✓ Excelで毎回分析するのはしんどい ✓ アナリストがテーブル追加しすぎてカオ スになっている ✓ レポーティングに用いるSQLが秘伝の タレになっている ✓ そもそも施策にFBがない マーケティング指標を増やしたり、切り口を追加したり、整理したり 会員数 売上高 etc… 会員カテゴリ 商品カテゴリ etc… ◦ ◦ ◦ × fact: 見たい指標 dimension: 見たい切り口
  8. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 8

    よくあるアーキテクチャ dbt × (Snowflake | Bigquery) × (Tableau | Looker) 基幹システムの DB S3 データレイク層 データウェア ハウス層 データマート層 BI ユーザー dbt Amazon Managed Workflows for Apache Airflow
  9. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 9

    目次 0. はじめに 1. 技術選定 1. dbtを選んだ理由 2. 開発 1. SQLが複雑すぎる 2. 数字が合わない! 3. 運用 1. この集計間違ってない? 2. 異常なデータがないか監視したい 4. 現在
  10. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 10

    dbtを選んだ理由 ✓ 依存関係は自動で解決するので、SQLだけ書いていればOK ✓ packageが豊富なので、煩雑なSQLはtemplate化できる ELTのTransformを管理するツールではデファクト 開発体験 ドキュメント化 エコシステム 活発に開発されている ✓ data catalog ✓ data quality ✓ data governance ✓ data observability コマンド一発でHTML生成 ✓ テーブル定義 ✓ DFD ✓ description
  11. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 11

    目次 0. はじめに 1. 技術選定 1. dbtを選んだ理由 2. 開発 1. SQLが複雑すぎる 2. 数字が合わない! 3. 運用 1. この集計間違ってない? 2. 異常なデータがないか監視したい 4. 現在
  12. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 12

    SQLが複雑すぎる DWHのSQLは長くなりがち with hoge as ( … ), fuga as ( … ), piyo as ( … ), … final as ( ) select * from final ここの処理はアナリストがいっつも入れている処理 上流がバグっているので、このクエリで吸収したい ついでにアレも計算しておきたい
  13. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 13

    SQLが複雑すぎる ✓ SQLを複数ファイルに分割 • デプロイは気にせずOK ✓ 複数の層に分割 • staging • 簡単な変換 • intermediate • joinなど • dwh • モデリング(dimensional modeling, data vaultなど) • mart • BIから参照する 長くなったSQLは分割→ファイル追加するだけでOK with hoge as ( … ), fuga as ( … ), piyo as ( … ), … final as ( ) select * from final with hoge as ( … ), fuga as ( … ), final as ( ) select * from final with piyo as ( … ), … final as ( ) select * from final
  14. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 14

    目次 0. はじめに 1. 技術選定 1. dbtを選んだ理由 2. 開発 1. SQLが複雑すぎる 2. 数字が合わない! 3. 運用 1. この集計間違ってない? 2. 異常なデータがないか監視したい 4. 現在
  15. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 15

    数字が合わない! 数値はズレます テーブルをきれいにする女性 joinしたら0件になった PKがPKになっていない 集計しても0
  16. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 16

    数字が合わない! 以下はymlに数行追加したら1コマンドでテスト可能 ✓ PKに指定したキーはuniqueかつnot nullか? ✓ 外部キーはきちんと外部キーになっているか? ✓ 各ディメンジョンに対して集計結果が1以上か? ✓ 特定の期間だけおかしな値になっていないか? dbt_utilsやdbt_expectationで集計結果確認 空いた時間でデータを掘ろう
  17. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 17

    目次 0. はじめに 1. 技術選定 1. dbtを選んだ理由 2. 開発 1. SQLが複雑すぎる 2. 数字が合わない! 3. 運用 1. この集計間違ってない? 2. 異常なデータがないか監視したい 4. 現在
  18. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 18

    この集計間違ってない? 急に値増えたんだけど、集計合ってます?
  19. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 19

    継続的に監視してデータを掘ろう この集計間違ってない? 開発時は通ったテストも運用始まったら通らなくなるかも? ✓ 月初に特殊な会計処理をしている ✓ マスタが更新される ✓ 上流システムのバグ 開発時のテストは運用でも継続的にモニタリングできる
  20. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 20

    目次 0. はじめに 1. 技術選定 1. dbtを選んだ理由 2. 開発 1. SQLが複雑すぎる 2. 数字が合わない! 3. 運用 1. この集計間違ってない? 2. 異常なデータがないか監視したい 4. 現在
  21. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 21

    異常なデータがないか監視したい 上流でバグ発生! → 分析基盤側でも検知したい
  22. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 22

    異常なデータがないか監視したい ✓ row_count ✓ null_count ✓ zero_count ✓ min ✓ max ✓ freshness elementaryを使うと、時系列でデータの監視ができる
  23. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 23

    目次 0. はじめに 1. 技術選定 1. dbtを選んだ理由 2. 開発 1. SQLが複雑すぎる 2. 数字が合わない! 3. 運用 1. この集計間違ってない? 2. 異常なデータがないか監視したい 4. 現在
  24. © 2022 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 24

    現在 ✓ 指標の細分化 • 個別の施策に対してきめ細やかにFBを得られる ✓ 指標の切り口の追加 • 施策の実施対象がより細かく同定できる ✓ 新指標の追加 • 新しいインサイトがあるかも? ✓ BIで自由分析 • アナリストは工数が減って嬉しい • データエンジニアはガバナンスが効いて嬉しい 指標を細分化したり、新しい切り口から分析できるようになる