Slide 1

Slide 1 text

私のdbt布教⽤資料 〜 TROCCOUG Ver. 〜 2024.9.13 @ TROCCOUG

Slide 2

Slide 2 text

Speaker 開発統括本部 プロダクト開発本部 データサイエンス室 ⼭本 雄太 ● 23新卒として⼊社 ● 分析⽤データ基盤のdbt刷新を担当 ● 社内でのあだ名は「もっさん」

Slide 3

Slide 3 text

ヤプリの製品|ノーコードのアプリ開発プラットフォーム「Yappli」 ● 700社以上が導⼊、800アプリ以上を提供 ● 40種類以上の機能が利⽤可能。多様なシーンに合致したアプリが作成可能

Slide 4

Slide 4 text

ヤプリの製品|Yappli 導⼊顧客向けにアナリティクスサービスを提供 CMS ダッシュボード Yappli 管理画⾯のトップに 表⽰されるダッシュボード Yappli Data Hub アプリ内の⾏動データや属性データを ユーザ単位で分析を可能にする データ連携サービス Yappli Analytics アプリログを網羅した分析や、 機能別に特化した分析が可能な ダッシュボード

Slide 5

Slide 5 text

2023年から分析⽤データ基盤の   移⾏を開始

Slide 6

Slide 6 text

2023年から分析⽤データ基盤の   移⾏を開始 https://tech.yappli.io/entry/update-dbt-infra-dev-flow https://speakerdeck.com/yamamotoyuta/ci-no10nian -wozhan-erufen-xi-yong-detaji-pan-gou-zhu-nodi-bu- dbtniyoruji-pan-shua-xin-tokuerifei-yong-90-percent- xue-jian-henoqu-rizu-mi https://tech.yappli.io/entry/replace-ya-mart-to-dbt https://tech.yappli.io/entry/improve-dbt-docs-descri ption-with-dbt-osmosis 絶賛作成中… https://findy-tools.io/products/dbt/37/113

Slide 7

Slide 7 text

この資料は 開発本部内へ 「データエンジニアリング」と「dbt」 について紹介した時のもの を今回向けに直したものです (なので、ちょっとエンジニア要素多めになってます)

Slide 8

Slide 8 text

この発表が「データエンジニアリング」や「dbt」について ● 知りたい⽅の⼊⾨資料に ● 社内へ布教したい⽅の布教⽤資料に なれば幸いです

Slide 9

Slide 9 text

⽬次 1. データエンジニアリングとヤプリにおけるdbtの⽴ち位置 2. 「dbt」とは? 3. ヤプリでのTROCCO×dbt活⽤事例 4. まとめ

Slide 10

Slide 10 text

データエンジニアリングと ヤプリにおけるdbtの⽴ち位置

Slide 11

Slide 11 text

まずは 「データエンジニアリングって何だ?」 という話から

Slide 12

Slide 12 text

何かを決めるのにデータが必要になる場⾯、 ⾊々ありますよね

Slide 13

Slide 13 text

Yappli で提供している各機能がどの くらい使われているのか知りたい この前打ったプッシュ通知がどのく らい⾒られてるか知りたい アンケートフォームの回答状況を知 りたい 要望 (データを元に意思決定したい)

Slide 14

Slide 14 text

Yappli で提供している各機能がどの くらい使われているのか知りたい この前打ったプッシュ通知がどのく らい⾒られてるか知りたい アンケートフォームの回答状況を知 りたい 要望 (データを元に意思決定したい) アプリログ データ発⽣源 (データソース) 営業データ等 サービスDB

Slide 15

Slide 15 text

Yappli で提供している各機能がどの くらい使われているのか知りたい この前打ったプッシュ通知がどのく らい⾒られてるか知りたい アンケートフォームの回答状況を知 りたい 要望 (データを元に意思決定したい) アプリログ 営業データ等 サービスDB データ発⽣源 (データソース) データを抽出→加⼯して 要望に応える

Slide 16

Slide 16 text

Yappli で提供している各機能がどの くらい使われているのか知りたい この前打ったプッシュ通知がどのく らい⾒られてるか知りたい アンケートフォームの回答状況を知 りたい 要望 (データを元に意思決定したい) アプリログ サービスDB データ発⽣源 (データソース) データを抽出→加⼯して 要望に応える 増える要望 営業データ等

Slide 17

Slide 17 text

Yappli で提供している各機能がどの くらい使われているのか知りたい (定期的に) この前打ったプッシュ通知がどのく らい⾒られてるか知りたい (別のプッシュでもやってほしい) アンケートフォームの回答状況を知 りたい (仕組み化したい) 要望 (データを元に意思決定したい) アプリログ サービスDB データ発⽣源 (データソース) データを抽出→加⼯して 要望に応える 増える要望 過去要望の アップデート 営業データ等

Slide 18

Slide 18 text

Yappli で提供している各機能がどの くらい使われているのか知りたい (定期的に) この前打ったプッシュ通知がどのく らい⾒られてるか知りたい (別のプッシュでもやってほしい) アンケートフォームの回答状況を知 りたい (仕組み化したい) 要望 (データを元に意思決定したい) アプリログ サービスDB データ発⽣源 (データソース) データを抽出→加⼯して 要望に応える どんどん つらくなる 過去要望の アップデート 増える要望 営業データ等

Slide 19

Slide 19 text

要望 (データを元に意思決定したい) アプリログ サービスDB データ発⽣源 (データソース) デ | タ 基 盤 データを 抽出&蓄積 スケジュール クエリ Yappli で提供している各機能がどの くらい使われているのか知りたい (定期的に) この前打ったプッシュ通知がどのく らい⾒られてるか知りたい (別のプッシュでもやってほしい) アンケートフォームの回答状況を知 りたい (仕組み化したい) 増える要望 クエリを汎化 システム化 … データ基盤にデータを貯めて、 「抽出」と「加⼯」を 切り分けよう! 営業データ等

Slide 20

Slide 20 text

要望 (データを元に意思決定したい) アプリログ サービスDB データ発⽣源 (データソース) デ | タ 基 盤 データを 抽出&蓄積 スケジュール クエリ Yappli で提供している各機能がどの くらい使われているのか知りたい (定期的に) この前打ったプッシュ通知がどのく らい⾒られてるか知りたい (別のプッシュでもやってほしい) アンケートフォームの回答状況を知 りたい (仕組み化したい) 増える要望 クエリを汎化 システム化 … この仕組みを整えるのが データエンジニアリング 営業データ等

Slide 21

Slide 21 text

続いて、 「ヤプリにdbtが必要だった理由」 について

Slide 22

Slide 22 text

データエンジニアリングのライフサイクル 1. データエンジニアリングとヤプリにおけるdbtの⽴ち位置 ⽣成 (ソース) 取り込み 変換 提供 保存 機械学習 リバースETL アナリティクス セキュリティ データ管理 DataOps データ アーキテクチャ オーケストレー ション ソフトウェア エンジニアリング 底流 出典:2. The Data Engineering Lifecycle - Fundamentals of Data Engineering

Slide 23

Slide 23 text

データエンジニアリングのライフサイクル 1. データエンジニアリングとヤプリにおけるdbtの⽴ち位置 ⽣成 (ソース) 取り込み 変換 提供 保存 機械学習 リバースETL アナリティクス セキュリティ データ管理 DataOps データ アーキテクチャ オーケストレー ション ソフトウェア エンジニアリング 底流 出典:2. The Data Engineering Lifecycle - Fundamentals of Data Engineering ソースからデータを 取り込むステップ 取り込み‧保存したデータを 変換するステップ 保存‧変換したデータを 各データ活⽤場所へ提供するステップ 取り込み‧変換したデータを 保存するステップ

Slide 24

Slide 24 text

データエンジニアリングのライフサイクル 1. データエンジニアリングとヤプリにおけるdbtの⽴ち位置 ⽣成 (ソース) 取り込み 変換 提供 保存 機械学習 リバースETL アナリティクス セキュリティ データ管理 DataOps データ アーキテクチャ オーケストレー ション ソフトウェア エンジニアリング 底流 出典:2. The Data Engineering Lifecycle - Fundamentals of Data Engineering このライフサイクルに当てはめて、 ヤプリにおけるdbtの⽴ち位置について話していきます

Slide 25

Slide 25 text

ヤプリの場合(dbt導⼊前) 1. データエンジニアリングとヤプリにおけるdbtの⽴ち位置 - データエンジニアリングのライフサイクル ⽣成 取り込み 変換 提供 保存 データ活⽤ 営業データ等 アプリログ サービスDB Dataflow TROCCO BigQuery CMSダッシュボード Yappli Data Hub 社内向け ダッシュボード等 Yappli Analytics サービスに影響が出るものは エンジニア側 がDataflowでカッチリ管理 分析要望に応えられるよう データサイエンス( DS)側がTROCCOで柔軟に管理

Slide 26

Slide 26 text

ヤプリの場合(dbt導⼊前) 1. データエンジニアリングとヤプリにおけるdbtの⽴ち位置 - データエンジニアリングのライフサイクル ⽣成 取り込み 変換 提供 保存 データ活⽤ 営業データ等 アプリログ サービスDB BigQuery CMSダッシュボード Yappli Data Hub 社内向け ダッシュボード等 Yappli Analytics Dataflow TROCCO ここがネック󰷺 サービスに影響が出るものは エンジニア側 がDataflowでカッチリ管理 分析要望に応えられるよう データサイエンス( DS)側がTROCCOで柔軟に管理

Slide 27

Slide 27 text

  ←何がネックだったか この部分の責務はエンジニア側。しかし… ● 集計した値が合ってるか?の確認はDS 側で実施する必要がありました ○ エンジニア側で確認できるのは「この実装でサービスに不具合が出ないか?」 ➡ 集計結果に異常値があっても実装的には通ってしまう可能性が⾼い ○ 集計した値の正誤判断までエンジニア側で⾏うのは(ドメイン知識の⾯などで)困難 ➡ 集計ロジック(SQL)の実装‧改修をDS側が基本的に担当 ● 集計ロジックの実装に、集計とは直接関係ないサービス側の仕様が混⼊ ○ 連番カラム等の追加、カラムの順番、 etc… 1. データエンジニアリングとヤプリにおけるdbtの⽴ち位置 - データエンジニアリングのライフサイクル エンジニア側とDS側の責務が曖昧…󰷺

Slide 28

Slide 28 text

ヤプリの場合(dbt導⼊後) 1. データエンジニアリングとヤプリにおけるdbtの⽴ち位置 - データエンジニアリングのライフサイクル ⽣成 取り込み 変換 提供 保存 データ活⽤ 営業データ等 アプリログ サービスDB Dataflow TROCCO BigQuery CMSダッシュボード Yappli Data Hub 社内向け ダッシュボード等 Yappli Analytics Dataflow dbt dbt を導⼊して、 「変換」を DS 側の管理下へ

Slide 29

Slide 29 text

ヤプリの場合(dbt導⼊後) 1. データエンジニアリングとヤプリにおけるdbtの⽴ち位置 - データエンジニアリングのライフサイクル ⽣成 変換 保存 データ活⽤ 営業データ等 アプリログ サービスDB Dataflow BigQuery CMSダッシュボード Yappli Data Hub 社内向け ダッシュボード等 Yappli Analytics Dataflow dbt データを取り込み・提供できているか?は エンジニア側 の責務 適切に変換できているか?は DS側の責務 取り込み 提供 TROCCO 責務が明確に💡

Slide 30

Slide 30 text

「dbt」とは?

Slide 31

Slide 31 text

     とは? ● “Data Build Tool” の頭⽂字を取って”dbt” ● データの「変換処理」を良い感じに管理できるツール ● dbt Labs 社が開発 ○ dbt Core (無償CLI、OSS) ←ヤプリはこちらを利⽤ ■ pip install でインストールできます ○ dbt Cloud (有償SaaS) 以降の話はdbt Core中⼼に進めていきます 2. 「dbt」とは? 変換

Slide 32

Slide 32 text

近年のdbtの導⼊状況 2. 「dbt」とは? 今、データ界隈で急速に浸透しているモダンなツール DL数が近年急増 dbt Core/dbt Cloud導⼊企業: ● デジタル庁 ● 株式会社CARTA HOLDINGS ● 株式会社LayerX ● 株式会社10X ● Sansan株式会社 ● 株式会社タイミー ● ピクシブ株式会社 ● 株式会社kubell ● etc. 導⼊企業も続々増加

Slide 33

Slide 33 text

dbtを導⼊すると何が嬉しいのか? 2. 「dbt」とは?

Slide 34

Slide 34 text

dbtを導⼊すると何が嬉しいのか? 1. ソフトウェアエンジニアリングの叡智が使える 2. データカタログ機能が標準で付いている 3. データの加⼯過程を可視化できる 4. データのテストがやりやすい 2. 「dbt」とは?

Slide 35

Slide 35 text

dbtを導⼊すると何が嬉しいのか? 1. ソフトウェアエンジニアリングの叡智が使える 2. データカタログ機能が標準で付いている 3. データの加⼯過程を可視化できる 4. データのテストがやりやすい 2. 「dbt」とは?

Slide 36

Slide 36 text

1. ソフトウェアエンジニアリングの叡智が使える 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? 処理の共通化‧再利⽤ dbt macroによく使う集計‧加⼯ロジック (SQL)を書くことで共通化&再利⽤可能化 チーム開発体制の構築 dbtでは集計‧加⼯SQLファイルを Git管理 CI/CDの利⽤ ファイルをGit管理 || CI/CDを取り⼊れやすい 出典: 【図解】git-flow、GitHub Flowを開発現場で使い始めるためにこれだけは覚えておこう 出典: DevOps(開発‧運⽤環境)|Sky株式会社 データの加⼯処理が 実装‧メンテしやすくなる ソフトウェア開発でのブランチ戦略や チーム開発のノウハウ等が流⽤できる テスト、ドキュメント⽣成などの ⾃動化が容易に

Slide 37

Slide 37 text

2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? 1. ソフトウェアエンジニアリングの叡智が使える ヤプリのデータ加⼯の流れ(dbt導⼊前) BigQueryにある 元データのテーブル SQLで書かれた 加⼯処理 データマート テーブル データを抽出 加⼯結果を出⼒ 可視化 Looker Studio等 ここを開発するには… 1. BigQuery でクエリを作成 2. ⼿動で本番反映 ● レビューのステップを踏むのが⼤変…😓 ● 本番反映の⼈為ミス発⽣のリスク😱 ● 作業分担が困難…😭 ➡ 危険‧属⼈性が⾼い

Slide 38

Slide 38 text

2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? 1. ソフトウェアエンジニアリングの叡智が使える ヤプリのデータ加⼯の流れ(dbt導⼊後) BigQueryにある 元データのテーブル データマート テーブル データを抽出 加⼯結果を出⼒ 可視化 Looker Studio等 dbtで実装した 加⼯処理 ワークフロー デプロイ ここを開発するには… 1. ローカルで実装 2. Pull Request 3. mainブランチへmerge 4. TROCCOへ⾃動反映 ● レビューのステップを踏みやすい ● ⾃動反映で本番環境での⼈為ミスが起きない ● 作業分担が可能 ➡ 安全‧チーム開発が容易に

Slide 39

Slide 39 text

dbtを導⼊すると何が嬉しいのか? 1. ソフトウェアエンジニアリングの叡智が使える 2. データカタログ機能が標準で付いている 3. データの加⼯過程を可視化できる 4. データのテストがやりやすい 2. 「dbt」とは?

Slide 40

Slide 40 text

2. データカタログ機能が標準で付いている データカタログとは? ● 組織内のデータ資産についてまとまっている⽬録※1 ○ 「図書館の蔵書検索システムみたいなもの※2」 ● データカタログを⾒れば… ○ どこに? ○ どんなデータが? ○ どんな構造(カラム等)で? ○ データの更新⽅法(洗替/追記)は? ○ etc… 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? すぐ分かる! ※1 出典:What Is a Data Catalog and Why Do You Need One? ※2 「Data Engineering Study #25 データカタログの現在地」のDATUM STUDIO川⼝さんの例えが分かりやすかったので拝借させていただきました🙏

Slide 41

Slide 41 text

2. データカタログ機能が標準で付いている 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? SELECT id AS order_id, user_id AS customer_id, order_date, status FROM {{ source(“dbt_src_test”, “raw_orders”) }} SELECT id AS customer_id, first_name, last_name FROM {{ source(“dbt_src_test”, “raw_customers”) }} stg_orders.sql stg_customers.sql dbt では SELECT~FROM 句が書かれた SQL ファイルでテーブルを定義

Slide 42

Slide 42 text

2. データカタログ機能が標準で付いている 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? SELECT id AS order_id, user_id AS customer_id, order_date, status FROM {{ source(“dbt_src_test”, “raw_orders”) }} SELECT id AS customer_id, first_name, last_name FROM {{ source(“dbt_src_test”, “raw_customers”) }} stg_orders.sql stg_customers.sql テーブル定義ファイルからデータカタログ( dbt docs )を⾃動作成

Slide 43

Slide 43 text

2. データカタログ機能が標準で付いている 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? SELECT id AS order_id, user_id AS customer_id, order_date, status FROM {{ source(“dbt_src_test”, “raw_orders”) }} SELECT id AS customer_id, first_name, last_name FROM {{ source(“dbt_src_test”, “raw_customers”) }} stg_orders.sql stg_customers.sql テーブル定義ファイルからデータカタログ( dbt docs )を⾃動作成 カンタン&すぐに データカタログを始められる!

Slide 44

Slide 44 text

2. データカタログ機能が標準で付いている 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? version: 2 models: - name: stg_orders description: | オーダー情報。Staging層。カラム名の是正などを行なっている。 columns: - name: order_id description: "オーダーID" - name: customer_id description: "顧客ID" - name: order_date description: "注文日" schema.yml YAMLファイルでテーブルやカラムの説明などを補⾜可能

Slide 45

Slide 45 text

dbtを導⼊すると何が嬉しいのか? 1. ソフトウェアエンジニアリングの叡智が使える 2. データカタログ機能が標準で付いている 3. データの加⼯過程を可視化できる 4. データのテストがやりやすい 2. 「dbt」とは?

Slide 46

Slide 46 text

3. データの加⼯過程を可視化できる 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? 営業データ等 アプリログ サービスDB BigQuery CMSダッシュボード Yappli Data Hub 社内向け ダッシュボード等 Yappli Analytics データはデータソースから様々な テーブルを経て各データ活用場所へ

Slide 47

Slide 47 text

3. データの加⼯過程を可視化できる 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? dbt docsでは… データソース (BigQuery) ←上流 データソースから各テーブルがどのような過程で作成されているかが分かる (データリネージが確認できる) 下流→

Slide 48

Slide 48 text

3. データの加⼯過程を可視化できる 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? データソース (BigQuery) ←上流 下流→ データソースから各テーブルがどのような過程で作成されているかが分かる (データリネージが確認できる) ▼ 各集計ロジックの影響範囲が分かる ここの SQL を 変えると… ここ以降に影響が 出る可能性アリ dbt docsでは…

Slide 49

Slide 49 text

3. データの加⼯過程を可視化できる 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? 実際のデータリネージは これくらい複雑 ▼ 加⼯過程が⾒れる恩恵は ⾮常に⼤きい…🙏

Slide 50

Slide 50 text

dbtを導⼊すると何が嬉しいのか? 1. ソフトウェアエンジニアリングの叡智が使える 2. データカタログ機能が標準で付いている 3. データの加⼯過程を可視化できる 4. データのテストがやりやすい 2. 「dbt」とは?

Slide 51

Slide 51 text

4. データのテストがやりやすい 「データのテスト」とは? ● 値のテスト ○ すでに貯まっているデータが仕様通りになっているかをチェックするテスト ○ 例) ■ この “id” ってカラム、 NOT NULL のはずだけど本当にそうなってる? ■ この “type” ってカラム、 “iOS” か “Android” の2種類の値しか⼊らないはずだけど本当にそうなってる? ■ etc… ● ロジックのテスト ○ 実装した集計‧加⼯ロジックが期待通りかをチェックするテスト(=単体テスト) ○ 例) ■ こういうパターンのE-mailアドレスが来た時にこの正規表現でちゃんと拾えてる? 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか?

Slide 52

Slide 52 text

4. データのテストがやりやすい データのテストができると何が嬉しい? ● 異常なデータが⼊ってきた時に検知できる ● ヤプリの場合、Yappli Data Hub経由でアプリユーザの⾏動ログが⼊ってくる → ⾏動ログまわりのインシデントの早期検知に役⽴っている ● 実際に書いてるテスト: ○ iOS/Androidで数倍以上レコード数に差があるアプリが存在していないか? ○ 末尾に指定した⽂字列が含まれているか? ○ NULLが含まれていないか? ○ etc. 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか?

Slide 53

Slide 53 text

4. データのテストがやりやすい なぜdbtだとデータのテストがやりやすい? ● テストを実装しやすい仕組みが⽤意されているから ● 値のテスト ○ Generic Test ○ Singular Test ● ロジックのテスト ○ Unit Test ←v1.8で新たに追加 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか?

Slide 54

Slide 54 text

4. データのテストがやりやすい なぜdbtだとデータのテストがやりやすい? 値のテスト: ● Generic Test … ⽤意されているテスト群を使って⾏うテスト ○ dbt標準でunique, not_null, accepted_values, relationship の4種類が⽤意されている ○ YAMLファイルでどのテーブル‧カラムにどのテストを適⽤するかを指定する ○ 【特徴】⼀般的でよくあるテストがしやすい ■ 例)テーブル ”hoge” のカラム “id” に NULL が含まれていないか? ● Singular Test … 存在し得ないデータを出すクエリを書いて⾏うテスト ○ 【特徴】ドメインや状況などに特化したテストができる ■ 例)iOS/Androidで数倍以上レコード数に差があるアプリが存在していないか? 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか?

Slide 55

Slide 55 text

4. データのテストがやりやすい なぜdbtだとデータのテストがやりやすい? ロジックのテスト(Unit Test): 2. 「dbt」とは? - dbtを導⼊すると何が嬉しいのか? SELECT id, email, REGEXP_CONTAINS( email, r'^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$' ) AS is_valid_email_address, FROM {{ source('tmp_study_dbt_yamamoto', 'raw_users') }} stg_users.sql unit_tests: - name: test_is_valid_email_address model: stg_users given: - input: source('tmp_study_dbt_yamamoto', 'raw_users') rows: - {id: 1, email: '[email protected]'} - {id: 2, email: 'fuga'} - {id: 3, email: NULL} expect: rows: - {id: 1, email: '[email protected]', is_valid_email_address: TRUE} - {id: 2, email: 'fuga', is_valid_email_address: FALSE} - {id: 3, email: NULL, is_valid_email_address: NULL} _schema.yml 参考: dbt v1.8で追加された単体テストを触ってみた - Speaker Deck ⼊⼒値 期待する 出⼒値

Slide 56

Slide 56 text

dbtを導⼊すると何が嬉しいのか? 1. ソフトウェアエンジニアリングの叡智が使える 2. データカタログ機能が標準で付いている 3. データの加⼯過程を可視化できる 4. データのテストがやりやすい 2. 「dbt」とは?

Slide 57

Slide 57 text

ヤプリでの TROCCO×dbt活⽤事例

Slide 58

Slide 58 text

どこでTROCCOを使っているか? ● dbt実⾏のオーケストレーション ● dev環境への本番データの複製 ● 検証環境のセットアップ、実⾏ 3. ヤプリでのTROCCO×dbt活⽤事例

Slide 59

Slide 59 text

どこでTROCCOを使っているか? ● dbt実⾏のオーケストレーション ● dev環境への本番データの複製 ● 検証環境のセットアップ、実⾏ 3. ヤプリでのTROCCO×dbt活⽤事例 https://tech.yappli.io/entry/update-dbt-infra-dev-flow こちらにまとまってます

Slide 60

Slide 60 text

どこでTROCCOを使っているか? ● dbt実⾏のオーケストレーション ● dev環境への本番データの複製 ● 検証環境のセットアップ、実⾏ 3. ヤプリでのTROCCO×dbt活⽤事例

Slide 61

Slide 61 text

dbt実⾏⽤TROCCOワークフロー 3. ヤプリでのTROCCO×dbt活⽤事例 - dbt実⾏のオーケストレーション 共通データマート作成⽤ dbt runジョブ CMSダッシュボード⽤ dbt runジョブ① Yappli Analytics⽤dbt runジョブ CMSダッシュボード⽤dbt run ワークフロー(リトライ⽤) Yappli Analytics⽤データセット への移動⽤ワークフロー ベータ版機能⽤ データマート作成ワークフロー 共通データマートの作成 各サービス⽤データマートの作成

Slide 62

Slide 62 text

共通データマート作成⽤ dbt runジョブ CMSダッシュボード⽤ dbt runジョブ① Yappli Analytics⽤dbt runジョブ CMSダッシュボード⽤dbt run ワークフロー(リトライ⽤) Yappli Analytics⽤データセット への移動⽤ワークフロー ベータ版機能⽤ データマート作成ワークフロー dbt実⾏⽤TROCCOワークフロー 3. ヤプリでのTROCCO×dbt活⽤事例 - dbt実⾏のオーケストレーション 要件が変わりうるものは 固まるまでTROCCOで加⼯して 柔軟に対応 共通データマートの作成 各サービス⽤データマートの作成

Slide 63

Slide 63 text

共通データマート作成⽤ dbt runジョブ CMSダッシュボード⽤ dbt runジョブ① Yappli Analytics⽤dbt runジョブ CMSダッシュボード⽤dbt run ワークフロー(リトライ⽤) Yappli Analytics⽤データセット への移動⽤ジョブ ベータ版機能⽤ データマート作成ワークフロー dbt実⾏⽤TROCCOワークフロー 3. ヤプリでのTROCCO×dbt活⽤事例 - dbt実⾏のオーケストレーション CMSダッシュボード⽤ dbt runジョブ② 実⾏が不安定なdbtモデル※があったので ジョブを切り出してリトライするよう対応 (リトライにはTROCCOワークフローのリトライ機能を利⽤) ※ 稀に実⾏に異常に時間がかかってタイムアウトしてしまうことがある 共通データマートの作成 各サービス⽤データマートの作成

Slide 64

Slide 64 text

まとめ

Slide 65

Slide 65 text

本⽇お伝えした内容 ● さらにデータを活⽤していくために必要に なってくるのが「データエンジニアリング」 ● dbtはデータの「変換処理」を 良い感じに管理できるツール ● dbtを導⼊すると嬉しいこと: ○ ソフトウェアエンジニアリングの叡智が使える ○ データカタログ機能が標準で付いている ○ データの加⼯過程を可視化できる ○ データの品質テストがやりやすい 4. まとめ 変換