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

BQ+dbt+Lookerを用いた、月間800億件以上の広告リクエストに対するデータモデリング

 BQ+dbt+Lookerを用いた、月間800億件以上の広告リクエストに対するデータモデリング

「みんなの考えた最強のデータ基盤アーキテクチャ2024前半おまとめ拡大版SP!」の発表資料
https://datatech-jp.connpass.com/event/319827/

Uchide Hiroki(ucchi-)

August 21, 2024
Tweet

More Decks by Uchide Hiroki(ucchi-)

Other Decks in Programming

Transcript

  1. 2 自己紹介 • 本名: 打出 紘基 • X: @hanon52_ •

    2021年 ピクシブ株式会社に新卒入社 • アナリティクスエンジニア • 広告のデータ基盤構築、BIの整備、Salesforce の導 入など、データの入口から出口まで何でもやります • 美味しいご飯を食べたり作ったりするのが好き ucchi-
  2. dbtとLooker の使い分け dbt Looker - ディメンションの作成ロジック - ファクトの作成ロジック - ディメンションやファクト同士の結合ロジッ

    ク - 指標の計算ロジック 例) クリック率 = クリック数 ÷ 閲覧数 18 ポイントは、Lookerを薄くすること。 ディメンションやファクトの作成ロジックは複雑になりがち。 ロジックをdbtに寄せることで、改修の見通しが良くなる。
  3. 説明文の入力を楽にする dbt→dbt:dbt-osmosis を使うことで伝搬を自動化 dbt→Looker:句点(。)を用いた簡単な規約を設ける 23 # Looker view: dim_campaigns {

    dimension: campaign_type { label: “キャンペーンタイプ ” description: “外部/自社” } } # dbt models: - name: dim_campaigns columns: - name: campaign_type - description: キャンペーンタイプ。外部/自社
  4. 26 自己紹介 • 本名: 三好 正剛 • X: @mytk0u0 •

    データエンジニア • 2018年 ピクシブ株式会社に新卒入社 • 普段は広告配信関連のシステム・ロジック・データ基 盤・BIを開発していることが多い • 趣味はゲーム (VALORANT, Splatoon等) mytk まいたけ
  5. 29 ① サービス定義上のクリックや CV は Imp と紐づけないと計測できないから。 例えばクリックイベントが有効であるためには「 0〜24時間前に同一イベントIDでのImpが発生し ている」必要がある。

    ② 分析のほとんどがファクトを跨ぐから。 例えばクリックイベントの分析の際も「 n日に発生したクリック件数を知りたい」ではなく「 n日の Imp に対して発生したクリック件数を知りたい」ケースのほうが多い。 ③ ファクトが一箇所にまとまっているほうが Lookerで取り回しやすいから。 なぜ配信ログをつくるのか?
  6. 33 Looker上では「WHERE clicked OR converted OR ハッシュ値 = 0」する (料金1/10程度)。

    BIツールで直接利用できる # LookML view: fact_log_delivery { derived_table: { sql: SELECT * FROM fact_log_delivery WHERE (clicked OR converted OR event_id_hash = 0) ;; } ... } ※ 実際のサンプリング割合は可変
  7. 34 Looker上では「WHERE clicked OR converted OR ハッシュ値 = 0」する (料金1/10程度)。

    Impのようなほとんどの指標は、1/100サンプリングで集計した値を100倍して計算。 Click, CVは件数が少ないため、全件取得して誤差をなくす。 BIツールで直接利用できる select 100 * countif(suid_cluster_key = 0) as count_imp, countif(clicked) as count_click, countif(converted) as count_cv from `配信ログ` where (clicked or converted or suid_cluster_key = 0)
  8. 36 基本的にはふつうの構成・ふつうのモデリングをていねいに。 - dbtを用いたBigQueryでのデータ管理 - ディメンショナルモデリング - BIツール (Looker) への接続

    そこから、実際に分析する際の使いやすさを考えて工夫を加えている。 - 豊富な分析軸やその説明文 - 鮮度と精度の両立 - Lookerからの直接参照 → 最強の利便性を提供する pixiv Ads における”最強”のデータ基盤とは