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

dbtとLookerにたどり着いたデータ基盤 ~しくじり先生俺みたいになるなを添えて~

dbtとLookerにたどり着いたデータ基盤 ~しくじり先生俺みたいになるなを添えて~

2022/07/06の「Vertical SaaS Study #2 急成長企業を支えるデータ分析基盤の作り方」にて話した内容になっています。
1年前データ基盤を0から作り、1年間運用してたどり着いた設計、そこにいたるまでの経緯、今だったらこうやって始めたかったという話をしました。
これからデータ基盤を作ろうとしている人の一助になれば幸いです。

tenajima

July 07, 2022
Tweet

More Decks by tenajima

Other Decks in Technology

Transcript

  1. © Unipos Inc. All Rights Reserved.
    dbtとLookerにたどり着いたデータ基盤
    ~しくじり先生俺みたいになるなを添えて~
    Vertical SaaS Study #2 急成長企業を支えるデータ分析基盤 作り方
    2022/07/06
    1
    水谷 優斗

    View full-size slide

  2. © Unipos Inc. All Rights Reserved.
    自己紹介
    speaker
    2
    ● 水谷優斗
    ● インターネット 世界で @tenajima
    ● Unipos 株式会社
    ○ 2018年新卒入社
    ● アナリティクスエンジニア
    ○ (2018-2019)データサイエンティスト
    ○ (2019-2020)データアナリスト
    ● アイコン 妻が描いてくれました

    View full-size slide

  3. © Unipos Inc. All Rights Reserved.
    Uniposについて
    speaker
    3
    ● Uniposと ピアボーナスを実現する Web サービ

    ● 感謝や称賛、激励 メッセージに加えてポイントを添
    えます、ポイント 金銭などに交換できます
    ● 共感した投稿に対してワンクリックで称賛をすること
    ができます、拍手 ポイントとして投稿を送った人・
    もらった人に送られます
    ● 感情報酬を社会基盤に

    View full-size slide

  4. © Unipos Inc. All Rights Reserved.
    話すこと
    Table of Contents
    4
    ● データ基盤に用いている技術について 

    ● 今 データ基盤 設計に至った経緯 

    ● 1年間で踏み抜いた地雷 数々 

    ● 今 記憶を持って1年前に戻ったらど ように立ち回るか 


    View full-size slide

  5. © Unipos Inc. All Rights Reserved.
    話さないこと
    Table of Contents
    5
    ● データモデリングについて
    ● 各技術について 詳しい説明、及び使い方

    View full-size slide

  6. © Unipos Inc. All Rights Reserved.
    Unipos データ基盤 現在地
    6

    View full-size slide

  7. © Unipos Inc. All Rights Reserved.
    現在 設計
    Unipos データ基盤 現在地
    7
    ● Github Actions と Cloud Build 使って dbt をキックする 

    ○ E L 管理 dbtで行う 

    ● DWH に Big uery を用いる 

    ○ nipos が GC ネイティブな で昔から Big uery を使う文化だった 

    ● データ アクセスに Looker を用いる 

    ○ 分析チームに分析依頼やデータ抽出依頼が殺到する を解消するため 

    ○ データガバナンスを効かせるため 

    ○ こ 部分 Google Cloud Japan Born Digital ummit で 話したも がある でよかったら
    ご覧ください


    View full-size slide

  8. © Unipos Inc. All Rights Reserved.
    釈迦に説法コーナー
    Unipos データ基盤 現在地
    8
    ● dbt と 

    ○ L コンパイルと L 実行を行ってくれるツール 

    ○ メリット

    ■ コード 再利用性を上げてくれる 

    ■ テストが書きやすい、実行しやすい 

    ■ docs をコードとともに管理できる 

    ○ デメリット

    ■ ど ように実行するか考える必要がある 

    ■ aa 版を使うとデメリット ほぼ全てが解消されるがお金がかかる 


    View full-size slide

  9. © Unipos Inc. All Rights Reserved.
    釈迦に説法コーナー
    Unipos データ基盤 現在地
    9
    ● Lookerと 

    ○ 雑に言うと BI ツール 

    ○ ユーザーが見たいも に応じて、DWH にクエリを投げて返ってきた結果を描画できる 

    ○ メリット

    ■ ど ようにクエリをコンパイルするかを定義できる で、定義 ズレが起きにくい 

    ■ データガバナンスを効かせやすい 

    ■ アナリストが本当に必要なメンテナンスに集中できる 

    ○ デメリット

    ■ ど ようにコンパイルするかを定義しないと何もできない 

    ■ それなりにお高い


    View full-size slide

  10. © Unipos Inc. All Rights Reserved.
    dbt 実行フロー
    Unipos データ基盤 現在地
    10

    View full-size slide

  11. © Unipos Inc. All Rights Reserved.
    Unipos データ基盤、1年 歩み
    11

    View full-size slide

  12. © Unipos Inc. All Rights Reserved.
    データ基盤 変遷
    Unipos データ基盤、1年 歩み
    12
    ● データ基盤という概念が導入される 

    ○ それまで プロダクト バックアップを見ていた 

    ○ スケジュールクエリで頑張ってバックアップを取る 

    ○ 層という概念がなくてカオスになる 

    ● Looker 導入

    ○ 層という概念が生まれる 

    ○ Looker をデータマート層として使い始める 

    ● dbt 導入

    ○ snapshot 層、staging 層、mart 層を整備できるようになる 

    ○ テストを実行できるようになる 


    View full-size slide

  13. © Unipos Inc. All Rights Reserved.
    データ利用者から 視点
    Unipos データ基盤、1年 歩み
    13
    ● データポータルでダッシュボードを提供されている 

    ● 足りないデータ Big uery ジョブ権限を一時的に付与されて、Big uery にクエリを投げる 

    ○ 自分が欲しいデータ クエリがかけない場合 分析チームに依頼が来る 

    ● Looker ダッシュボードに移行、データ Looker 経由して見るしかないようにする 

    ○ Big uery 権限 付与停止(絞り込み) 


    View full-size slide

  14. © Unipos Inc. All Rights Reserved.
    しくじり先生俺みたいになるな
    14

    View full-size slide

  15. © Unipos Inc. All Rights Reserved.
    しくじりポイント、お品書き
    しくじり先生俺みたいになるなよ
    16
    ● スケジュールクエリ、最初 いいがあとあと管理しきれない 

    ● データポータル、管理飽和問題 

    ● 何を血迷ったか、分析に使いやすいように非正規化して持ってほしいってオーダーする 

    ● スナップショット対象データを取捨選択していた 


    View full-size slide

  16. © Unipos Inc. All Rights Reserved.
    スケジュールクエリ、最初 いいがあとあと管理しきれない

    しくじり先生俺みたいになるなよ
    17
    ● (最初に)良かった点 

    ○ 日次でデータを取り込むに 手を出しやすい 

    ○ 取り込み時間分割テーブルを使え パーティションも簡単にできる 

    ● 依存関係 ある処理を書くときに制御できない 

    ○ あ クエリが終わったらこ クエリを実行するって を制御できない(5分開けて実行するとか
    地獄みたいなことしたく ない) 

    ○ 結果 D Y じゃない L が増えていく 

    ● テストしづらい

    ○ リリース たびに人がクエリ書いて「ヨシッ!」って確認していた 

    ● ずーっと _partitiondate と付き合い続ける 本当に大変 


    View full-size slide

  17. © Unipos Inc. All Rights Reserved.
    データポータル、管理飽和問題


    しくじり先生俺みたいになるなよ
    18
    ● (最初に)良かった点 

    ○ 無料でさくさくっとダッシュボードが作れる 

    ○ フィルターもあるし、ちょっとしたクエリもかけるし最初便利 

    ● クエリで色々表現していた場合、定義変わったら全部 ダッシュボード 修正をかけなきゃいけない 

    ● データ基盤 修正 影響でダッシュボードが見れない!ってなったら全部 ダッシュボード 修正を
    かけなきゃいけない 

    ● 夜な夜なダッシュボード 修正をする日々でした 


    View full-size slide

  18. © Unipos Inc. All Rights Reserved.
    非正規化して持ってほしいってオーダーする

    しくじり先生俺みたいになるなよ
    20
    ● 良いところない

    ● 層 概念を持っていなかったがゆえ 大失敗 

    ● 依頼も多いし、ダッシュボードも管理しなきゃだし、よく使うデータ 塊で予めデータを作ってもらうよ
    うにオーダーしてしまっていました 

    ● 何を join して何を join しないかが不明瞭で後々 dbt 移行も大変になりました 

    ● あ 頃 自分を殴り倒したい 


    View full-size slide

  19. © Unipos Inc. All Rights Reserved.
    スナップショット対象データを取捨選択していた

    しくじり先生俺みたいになるなよ
    21
    ● 変わりうるデータ(メンバー情報など) スナップショットとしてしっかり取っておいたほうが良いと思う 

    ○ あとから遡れないも 残す姿勢とても大事、今分析に必要なくても将来もそうと 限らない 

    ● テーブル 中でこれ 残す、これ 残さないというやり方をやると、あとあとマイグレーションで困る
    こともある

    ○ と いえ個人情報 取扱に 細心 注意を 


    View full-size slide

  20. © Unipos Inc. All Rights Reserved.
    1年を振り返るとたくさん 地雷を踏みました
    22

    View full-size slide

  21. © Unipos Inc. All Rights Reserved.
    仕方ないことだったんだけど !
    23

    View full-size slide

  22. © Unipos Inc. All Rights Reserved.
    データ基盤
    しくじり先生俺みたいになるなよ
    24
    ● もともとデータエンジニアが組織にいたわけで なかった 

    ● できたて チームだった で存在証明をしていく が先だった 


    ● アナリスト(僕) 経験をもとに「こういうも があったら使いやすい で 」という を手探りで構築し
    ながら走っていくしかなかった 


    View full-size slide

  23. © Unipos Inc. All Rights Reserved.
    今1年前に戻れるならこうする
    しくじり先生俺みたいになるなよ
    25
    ● データエンジニアがいない であれ 、一時的にでも顧問として入ってくれる人を探す 

    ○ 層 考え方とか、dbt こととか知らなかったから苦労したってことが多い 

    ○ 逆に知っていたらだいぶ有利なことって多いなと感じる 

    ○ マイグレーションが心と時間を持っていきがち 

    ● とりあえず dbt で管理して、とりあえず dbt snapshot で履歴をとりまくる 

    ○ 変わりうるデータもこれで管理する 

    ○ とりあえずで dbt を導入する 個人的にありだと思う 

    ● 取り込み時間パーティションテーブル 使わない 

    ○ けっこうこいつが管理しづらい、これでパーティション 指定を必須にすると地獄を見る 


    View full-size slide

  24. © Unipos Inc. All Rights Reserved.
    最後に
    26

    View full-size slide

  25. © Unipos Inc. All Rights Reserved.
    地雷をいっ い踏み抜いたけど
    最後に
    27
    ● 今で 、 が新機能 評価分析を自分でするようになったり、C データ抽出依頼をほぼ無くす
    ことができたり、データが価値を持って使われ始めた 

    ● ちゃんと分析チームに投資されていると感じるし、現状を見れ うまくやってきた方かなと 

    ● 最近 Data Engineering 界隈盛り上がってる でどんどん飛び込んで学ぶ に適している 

    ● 色んなイベント参加したり、色んな人と話したりして「知る」って が大きい 

    ● また1年後も「あー、こうしていれ よかった」って 出てくるだろうけど、それ それで伸びしろで
    す ぇ(ポジティブ)


    View full-size slide

  26. © Unipos Inc. All Rights Reserved.
    オフライン懇親会も楽しみにしています
    オンライン 皆さん @tenajimaフォローして
    28

    View full-size slide

  27. © Unipos Inc. All Rights Reserved. 35

    View full-size slide