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

TROCCOとdbtでサクッとやるデータ品質テスト

Kazuya Mori
February 03, 2025
64

 TROCCOとdbtでサクッとやるデータ品質テスト

Kazuya Mori

February 03, 2025
Tweet

Transcript

  1. 1 1 発表者 名前:森 和也 所属:株式会社サミーネットワークス 所属:ゲーム事業本部 マーケティング部 デジタルリサーチ分析課 業務:データ分析・レポーティング・BIダッシュボード作成

    業務:データ基盤の整備と改善 業務:機械学習モデリングを用いた事業への利益貢献 2019年にサミーネットワークスに入社 2020年データ基盤の再構築PJTに立ち上げより参加
  2. 2 自社におけるdbtの使いどころって? 2 非エンジニアにとっては壁が高い COMEATAにある データ品質管理に課題あり Jinja と macros Git

    管理 データカタログ機能 リネージ テスト機能 GUI大好き 1人1サービス担当体制 TROCCOのデータマートで作成済み メタデータを整備しなおすのは辛い
  3. 4 4 dbtはテストが簡単にできるらしい Generic Test Singular Test Unit Test 存在してはいけないデータを出すクエリを書く

    結果が返ってきてしまったらテスト失敗 あらかじめ用意されている規定のテスト ymlを使ってテーブルやカラムに適用できる テストデータを用意して行う単体テスト SQLの1つ1つのロジックに対してテストができる
  4. 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…指定した間隔で連続した値を含む などなど
  5. 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
  6. 7 7 TROCCOでdbt連携のワークフローを作る Gitリポジトリ 連携 dbtジョブ設定 ワークフロー作成 GitリポジトリのURLとブランチ を登録してGitリポジトリを連携 *dbtのバージョンは1.8か1.7

    ジョブを定期実行するために ワークフローを作成 テストが失敗したら通知を飛ば すように設定 実行したいコマンドをdbtジョブ として設定(オプション設定可) コマンドはまとめて実行可能 各ステップほぼひとつの設定画面のみで完結
  7. 9