Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TROCCOとdbtでサクッとやるデータ品質テスト
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kazuya Mori
February 03, 2025
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TROCCOとdbtでサクッとやるデータ品質テスト
Kazuya Mori
February 03, 2025
More Decks by Kazuya Mori
See All by Kazuya Mori
COMETAを用いたデータ品質管理と業務標準化への取り組み
sazimai
1
1.2k
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
360
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Amusing Abliteration
ianozsvald
1
200
Into the Great Unknown - MozCon
thekraken
41
2.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
330
Skip the Path - Find Your Career Trail
mkilby
1
150
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Transcript
0 TROCCOとdbtで サクッとやるデータ品質テスト 2025.01.31 #p_UG vol.10 株式会社サミーネットワークス ゲーム事業本部 マーケティング部 デジタルリサーチ分析課
森 和也
1 1 発表者 名前:森 和也 所属:株式会社サミーネットワークス 所属:ゲーム事業本部 マーケティング部 デジタルリサーチ分析課 業務:データ分析・レポーティング・BIダッシュボード作成
業務:データ基盤の整備と改善 業務:機械学習モデリングを用いた事業への利益貢献 2019年にサミーネットワークスに入社 2020年データ基盤の再構築PJTに立ち上げより参加
2 自社におけるdbtの使いどころって? 2 非エンジニアにとっては壁が高い COMEATAにある データ品質管理に課題あり Jinja と macros Git
管理 データカタログ機能 リネージ テスト機能 GUI大好き 1人1サービス担当体制 TROCCOのデータマートで作成済み メタデータを整備しなおすのは辛い
3 3 たびたび起こるデータ品質問題 「Tableauの数字おかしくないですか?」
4 4 dbtはテストが簡単にできるらしい Generic Test Singular Test Unit Test 存在してはいけないデータを出すクエリを書く
結果が返ってきてしまったらテスト失敗 あらかじめ用意されている規定のテスト ymlを使ってテーブルやカラムに適用できる テストデータを用意して行う単体テスト SQLの1つ1つのロジックに対してテストができる
5 5 Generic Test dbt 標準 dbt-expectations dbt-utils 以下の4種類のテストが可能 ・unique…すべてユニーク値である
・not_null…null を含まない ・accepted_values…指定した値以外含まない ・relationships…指定したモデルのカラムに含まれる 以下の7つのカテゴリに分けられた61種類のテストが可能 ・テーブルの形状に関するテスト ・欠損値、一意性、データ型を確認するテスト ・値の範囲に関するテスト ・文字列のマッチングを行うテスト ・集計関数によるテスト ・複数カラムに跨るテスト ・データのばらつきに関するテスト 15種類 6種類 5種類 10種類 17種類 6種類 3種類 値の範囲やテーブル間の関係性など17種類のテストが可能 ・not_empty_string…空文字 ’’を含まない ・sequential_values…指定した間隔で連続した値を含む などなど
6 6 dbtでテストを書く packages: - package: calogica/dbt_expectations version: [">=0.10.0", "<0.11.0"]
- package: calogica/dbt_date version: 0.10.1 - package: dbt-labs/dbt_utils version: 1.3.0 pakages.ymlに以下を記載 dbt-expectationsと dbt-utilsをインストールする dbt deps packageを インストール テストの用の モデルを作る テストを作る packages.yml dbt run SELECT id , user_id , ad_id , gacha_id , created_at FROM {{ source(‘XXX', 'gacha_logs') }} WHERE DATE(created_at) = {{yesterday()}} テストしたいデータを抽出する モデルを作成する 例はアプリのガチャログ latest_received_gacha_log.sql dbt test モデルのプロパティにテストを書く テーブルやカラムに対して行う Generic testを指定する models - name: gahca_logs tests: -dbt_expectations.expect_column_(略): column_name: gacha_id compare_model: ref(“m_gacha") compare_column_name: id - name: created_at tests: - not_null schema.yaml
7 7 TROCCOでdbt連携のワークフローを作る Gitリポジトリ 連携 dbtジョブ設定 ワークフロー作成 GitリポジトリのURLとブランチ を登録してGitリポジトリを連携 *dbtのバージョンは1.8か1.7
ジョブを定期実行するために ワークフローを作成 テストが失敗したら通知を飛ば すように設定 実行したいコマンドをdbtジョブ として設定(オプション設定可) コマンドはまとめて実行可能 各ステップほぼひとつの設定画面のみで完結
8 8 おわりに ・簡単にできてよかった やりたかったテストはpackageにあったのでymlを書くだけだった 非エンジニアがつまづきやすい定期実行もTROCCOで簡単に設定できた ・テストのためだけにdbt使うのもあり TROCCOとCOMEATAを利用している環境でdbtを利用する明確な意義 テストだけのためであればチーム全員がdbtを使えるようになる必要はない ・Unit
testやelementaryも使っていきたい データの信頼性を高めたり、データ監視を行ったりデータ品質をさらに高めたい 利便性を伝えていけばチームへのdbt布教も進むかもしれない
9