Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

© Unipos Inc. All Rights Reserved. Uniposについて speaker 3 ● Uniposと ピアボーナスを実現する Web サービ ス ● 感謝や称賛、激励 メッセージに加えてポイントを添 えます、ポイント 金銭などに交換できます ● 共感した投稿に対してワンクリックで称賛をすること ができます、拍手 ポイントとして投稿を送った人・ もらった人に送られます ● 感情報酬を社会基盤に

Slide 4

Slide 4 text

© Unipos Inc. All Rights Reserved. 話すこと Table of Contents 4 ● データ基盤に用いている技術について 
 ● 今 データ基盤 設計に至った経緯 
 ● 1年間で踏み抜いた地雷 数々 
 ● 今 記憶を持って1年前に戻ったらど ように立ち回るか 


Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

© 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 で 話したも がある でよかったら ご覧ください


Slide 8

Slide 8 text

© Unipos Inc. All Rights Reserved. 釈迦に説法コーナー Unipos データ基盤 現在地 8 ● dbt と 
 ○ L コンパイルと L 実行を行ってくれるツール 
 ○ メリット
 ■ コード 再利用性を上げてくれる 
 ■ テストが書きやすい、実行しやすい 
 ■ docs をコードとともに管理できる 
 ○ デメリット
 ■ ど ように実行するか考える必要がある 
 ■ aa 版を使うとデメリット ほぼ全てが解消されるがお金がかかる 


Slide 9

Slide 9 text

© Unipos Inc. All Rights Reserved. 釈迦に説法コーナー Unipos データ基盤 現在地 9 ● Lookerと 
 ○ 雑に言うと BI ツール 
 ○ ユーザーが見たいも に応じて、DWH にクエリを投げて返ってきた結果を描画できる 
 ○ メリット
 ■ ど ようにクエリをコンパイルするかを定義できる で、定義 ズレが起きにくい 
 ■ データガバナンスを効かせやすい 
 ■ アナリストが本当に必要なメンテナンスに集中できる 
 ○ デメリット
 ■ ど ようにコンパイルするかを定義しないと何もできない 
 ■ それなりにお高い


Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

© Unipos Inc. All Rights Reserved. データ基盤 変遷 Unipos データ基盤、1年 歩み 12 ● データ基盤という概念が導入される 
 ○ それまで プロダクト バックアップを見ていた 
 ○ スケジュールクエリで頑張ってバックアップを取る 
 ○ 層という概念がなくてカオスになる 
 ● Looker 導入
 ○ 層という概念が生まれる 
 ○ Looker をデータマート層として使い始める 
 ● dbt 導入
 ○ snapshot 層、staging 層、mart 層を整備できるようになる 
 ○ テストを実行できるようになる 
 


Slide 13

Slide 13 text

© Unipos Inc. All Rights Reserved. データ利用者から 視点 Unipos データ基盤、1年 歩み 13 ● データポータルでダッシュボードを提供されている 
 ● 足りないデータ Big uery ジョブ権限を一時的に付与されて、Big uery にクエリを投げる 
 ○ 自分が欲しいデータ クエリがかけない場合 分析チームに依頼が来る 
 ● Looker ダッシュボードに移行、データ Looker 経由して見るしかないようにする 
 ○ Big uery 権限 付与停止(絞り込み) 


Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

© Unipos Inc. All Rights Reserved. しくじりポイント、お品書き しくじり先生俺みたいになるなよ 16 ● スケジュールクエリ、最初 いいがあとあと管理しきれない 
 ● データポータル、管理飽和問題 
 ● 何を血迷ったか、分析に使いやすいように非正規化して持ってほしいってオーダーする 
 ● スナップショット対象データを取捨選択していた 


Slide 16

Slide 16 text

© Unipos Inc. All Rights Reserved. スケジュールクエリ、最初 いいがあとあと管理しきれない
 しくじり先生俺みたいになるなよ 17 ● (最初に)良かった点 
 ○ 日次でデータを取り込むに 手を出しやすい 
 ○ 取り込み時間分割テーブルを使え パーティションも簡単にできる 
 ● 依存関係 ある処理を書くときに制御できない 
 ○ あ クエリが終わったらこ クエリを実行するって を制御できない(5分開けて実行するとか 地獄みたいなことしたく ない) 
 ○ 結果 D Y じゃない L が増えていく 
 ● テストしづらい
 ○ リリース たびに人がクエリ書いて「ヨシッ!」って確認していた 
 ● ずーっと _partitiondate と付き合い続ける 本当に大変 


Slide 17

Slide 17 text

© Unipos Inc. All Rights Reserved. データポータル、管理飽和問題
 
 しくじり先生俺みたいになるなよ 18 ● (最初に)良かった点 
 ○ 無料でさくさくっとダッシュボードが作れる 
 ○ フィルターもあるし、ちょっとしたクエリもかけるし最初便利 
 ● クエリで色々表現していた場合、定義変わったら全部 ダッシュボード 修正をかけなきゃいけない 
 ● データ基盤 修正 影響でダッシュボードが見れない!ってなったら全部 ダッシュボード 修正を かけなきゃいけない 
 ● 夜な夜なダッシュボード 修正をする日々でした 


Slide 18

Slide 18 text

© Unipos Inc. All Rights Reserved. 非正規化して持ってほしいってオーダーする
 しくじり先生俺みたいになるなよ 20 ● 良いところない
 ● 層 概念を持っていなかったがゆえ 大失敗 
 ● 依頼も多いし、ダッシュボードも管理しなきゃだし、よく使うデータ 塊で予めデータを作ってもらうよ うにオーダーしてしまっていました 
 ● 何を join して何を join しないかが不明瞭で後々 dbt 移行も大変になりました 
 ● あ 頃 自分を殴り倒したい 


Slide 19

Slide 19 text

© Unipos Inc. All Rights Reserved. スナップショット対象データを取捨選択していた
 しくじり先生俺みたいになるなよ 21 ● 変わりうるデータ(メンバー情報など) スナップショットとしてしっかり取っておいたほうが良いと思う 
 ○ あとから遡れないも 残す姿勢とても大事、今分析に必要なくても将来もそうと 限らない 
 ● テーブル 中でこれ 残す、これ 残さないというやり方をやると、あとあとマイグレーションで困る こともある
 ○ と いえ個人情報 取扱に 細心 注意を 


Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

© Unipos Inc. All Rights Reserved. データ基盤 しくじり先生俺みたいになるなよ 24 ● もともとデータエンジニアが組織にいたわけで なかった 
 ● できたて チームだった で存在証明をしていく が先だった 
 
 ● アナリスト(僕) 経験をもとに「こういうも があったら使いやすい で 」という を手探りで構築し ながら走っていくしかなかった 
 


Slide 23

Slide 23 text

© Unipos Inc. All Rights Reserved. 今1年前に戻れるならこうする しくじり先生俺みたいになるなよ 25 ● データエンジニアがいない であれ 、一時的にでも顧問として入ってくれる人を探す 
 ○ 層 考え方とか、dbt こととか知らなかったから苦労したってことが多い 
 ○ 逆に知っていたらだいぶ有利なことって多いなと感じる 
 ○ マイグレーションが心と時間を持っていきがち 
 ● とりあえず dbt で管理して、とりあえず dbt snapshot で履歴をとりまくる 
 ○ 変わりうるデータもこれで管理する 
 ○ とりあえずで dbt を導入する 個人的にありだと思う 
 ● 取り込み時間パーティションテーブル 使わない 
 ○ けっこうこいつが管理しづらい、これでパーティション 指定を必須にすると地獄を見る 


Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

© Unipos Inc. All Rights Reserved. 地雷をいっ い踏み抜いたけど 最後に 27 ● 今で 、 が新機能 評価分析を自分でするようになったり、C データ抽出依頼をほぼ無くす ことができたり、データが価値を持って使われ始めた 
 ● ちゃんと分析チームに投資されていると感じるし、現状を見れ うまくやってきた方かなと 
 ● 最近 Data Engineering 界隈盛り上がってる でどんどん飛び込んで学ぶ に適している 
 ● 色んなイベント参加したり、色んな人と話したりして「知る」って が大きい 
 ● また1年後も「あー、こうしていれ よかった」って 出てくるだろうけど、それ それで伸びしろで す ぇ(ポジティブ)


Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

© Unipos Inc. All Rights Reserved. 35