Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

dbt test + Elementaryによって Data Observabilityを高め...

dbt test + Elementaryによって Data Observabilityを高める / Data Observability with dbt test elementary

from: @YangYang_pareto

SnowVillage Unconference #2 にて登壇した資料です。
https://techplay.jp/event/949829

CARTA Engineering

July 24, 2024
Tweet

More Decks by CARTA Engineering

Other Decks in Technology

Transcript

  1. • snowflake + dbtを中心としたデータ基盤に対して、Data Observabilityを高めるための施策を 行った話 概要 CARTA HOLDINGS Inc.

    fluctとfluctが扱うデータについて 01 Data Observabilityについて 02 具体的に行った施策について 03 今後の展望 04 dbt testの追加 / Elementary OSS, Cloudの導入
  2. 自己紹介 CARTA HOLDINGS Inc. yanyan CARTA HOLDINGS fluct プロダクト開発本部 エンジニア

    @YangYang_pareto ストリートファイター6 / HoYoverse / キーボード
  3. 1. 日々のレポーティング a. メディアやfluct社内の人がインプレッション数や収益をウォッチしている 2. 支払金額の計算 a. fluctからメディアに対して広告配信で発生した収益を支払っている 3. 配信制御

    a. 広告在庫の配信比率を過去の実績から自動調整 b. 予算消化のペーシング etc… fluctのデータの利用用途 CARTA HOLDINGS Inc. 人々の日々の営みから、ビジネスの重要な部分まで様々なところで使われている
  4. fluctのデータ基盤の課題 CARTA HOLDINGS Inc. データの問題に素早く気付けないこと ECSからのエラー通知とかdbtのエラーとかは通知を飛ばすようになっていたが、 データの問題はそれだけでは気付けないことがある e.g.) • 普段なら10分ごとにロードされてくるログが1時間くらいロードされてな

    い • dbtの加工のロジックミスによってファントラップが起き、インプレッ ション数が倍になっちゃった 上記のような問題に素早く気づく仕組みはなかったので、 メディアや社内のレポートを見てる人からの指摘で問題に気づくことが多かった
  5. Data Observability CARTA HOLDINGS Inc. What is Data Observability? 5

    Key Pillars To Know の定義を引用 > Data observability provides full visibility into the health of your data AND data systems so > you are the first to know when the data is wrong, what broke, and how to fix it. Data Observabilityはデータとデータを扱うシステムの状態を可視化し、データが間違ってい るときに何が壊れているのか、どうやって直せばいいのかをいち早く知ることができる。 Data Observabilityを高めることで、データの問題に素早く気付けないという課題 に立ち向かえる!
  6. • Freshness: データの鮮度 • Volume: データ量 • Quality: データの品質 •

    Schema: データのスキーマ • Lineage: リネージ 5本の柱 CARTA HOLDINGS Inc. Data Observabilityのために具体的にどういう観点を観測すればよいか
  7. • Freshness: データの鮮度 ◦ 想定よりもデータの取り込みや加工が遅くなってしまっていないか • Volume: データ量 ◦ データ量が意図しない増減をしていないか

    • Quality: データの品質 ◦ あるカラムが取りうる値は想定した範囲に収まっているか ◦ プライマリキーがあるようなテーブルではレコードのユニーク性が担保されているか • Schema: データのスキーマ ◦ データ構造が変化したときに気づけるか • Lineage ◦ データソースやテーブルの依存関係を表したもの 5本の柱 CARTA HOLDINGS Inc.
  8. Data Observabilityを高めるために実践したこと CARTA HOLDINGS Inc. fluctのデータ基盤では Freshness / Volume /

    Quality の3つの観点でのObservability が足りないと考え、それぞれObservabilityを高めるためのアプローチを実践する Schema / Lineage は現状の仕組みで十分と判断して頑張らないことにした • Schema ◦ 生データから必要な値を取り出して型をつけたり、カラム名をつける dbtのレイヤーがある ◦ データ構造に破壊的変更が起きたらそのレイヤーの加工が失敗して気付 ける • Lineage ◦ dbt Cloud上でdbt modelのリネージが見れる
  9. source freshness test CARTA HOLDINGS Inc. dbtで加工する前のテーブル (= source) に対する鮮度のテスト

    fluctにおけるsourceの種類 • S3からロードされてきた生ログや無加工の他社のデータが入っているテーブル • ディメンションとして使うために業務システムのDBからロードされたテーブル 前者のデータは広告の配信実績なので、sourceに新鮮なデータが入ってないというこ とはユーザーに提供するレポートが遅延していることを意味する レポートの遅延はfluctにとっていち早く気づきたい問題 今回は前者のテーブルに対してfreshness testを足した
  10. Elementary OSS + Cloud の導入 CARTA HOLDINGS Inc. データやデータ基盤の状態を1つの場所でまとめて見れるData Observability

    ツール OSS: Data Observabilityを高めるためのテストを簡単に追加できるdbt package Cloud: テスト結果やリネージを一覧できるダッシュボードのホスティングや、ア ラート、自動異常検知ができる
  11. Elementaryを導入した理由 CARTA HOLDINGS Inc. • 他のData Observabilityツールと比べて安い • dbt nativeなので組み込みやすい

    • 社内で導入事例があるため知見共有できる • automated anomaly detectionを使いたかった Elementary以外にもSaaSのData Observabilityツールはいくつかあったが...
  12. automated anomaly detection CARTA HOLDINGS Inc. Cloud版まで導入をした大きな理由の一つ anomaly test自体はOSS版でも書くことができる (Docs)

    しかし、人間が手動で異常とはどんな状態かを定義するのは難しい 設定する必要のあるパラメータが多く、職人芸になりがち モデルごとに設定するのも現実的ではない いい感じに勝手に異常検知をしてほしい!!!
  13. まとめ CARTA HOLDINGS Inc. dbt testの追加やElementaryの導入によってData Observabilityの向上を目指した話 • dbt testによってfreshness

    / quality の観点での問題に素早く気付けるように • Elementaryの導入によってデータの状態を一覧できるようになったり、 freshness / volume の異常検知ができるようになった