$30 off During Our Annual Pro Sale. View Details »

10Xにおけるdbtの事例紹介

10xinc
March 16, 2023

 10Xにおけるdbtの事例紹介

2023/03/14に開催された「What is dbt?データ基盤にdbtが必要な3つの理由」の登壇資料です。

https://classmethod.connpass.com/event/276579/

10xinc

March 16, 2023
Tweet

More Decks by 10xinc

Other Decks in Programming

Transcript

  1. ©10X, Inc. All Rights Reserved. 発表者
 2 はじめに • 谷口

    和輝 (@Kazk1018)
 • 所属
 ◦ 株式会社10X グロース本部所属
 ◦ データサイエンティスト
 • 経歴
 ◦ IT企業: Data Scientist / Research Scientist
 ◦ スタートアップ: iOS Engineer / Marketing
 ◦ 個人事業主: Data Scientist / ML Engineer / Consulting
 • dbt歴
 ◦ 約1年

  2. ©10X, Inc. All Rights Reserved. Agenda
 3 • 会社概要
 •

    10Xにおけるデータ活用
 • 10Xにおけるdbtの活用
 • データモデリングとdbt
 • データ品質とdbt
 • おわりに
 はじめに
  3. ©10X, Inc. All Rights Reserved. Stailerが提供するプロダクトの機能価値および提供サービス
 9 商品画像撮影 ツール 商品マスタ

    自動生成 モバイル アプリ 作業ツール (Pick Pack) 配達管理 (TMS) 在庫管理 (WMS) PL分析 戦略策定 オペレーション デザイン 顧客分析 顧客獲得施策 CRM施策 サポート対応 配達効率分析 KPI策定 オンボード支援 在庫生成 ロジック作成 効率分析 欠品削減分析 事業策定 在庫準備 EC開店 店舗運用 配達 CS グロース チャット ツール CRM基盤 機能 価値 提供 サービス プロダクトStailerおよび、事業エキスパートチームが、広範な領域をパートナーとして伴走します 
 会社概要
  4. ©10X, Inc. All Rights Reserved. 小売事業者向け
 オペレーティング・システム 
 在庫の即時管理やピックパック管理が可能 


    10 配送業者向け
 オペレーティング・システム 
 積荷・ルーティング・配達管理が可能 
 お客様向け
 統合UX
 売り場設計や高精度の検索等の機能提供 
 お客様・小売事業者・配送の三者に必要な全てのプロダクトを提供
 会社概要
  5. ©10X, Inc. All Rights Reserved. 各領域の専門家がデータを武器に、パートナー・プロダクトへ向けて価値を提供 
 
 データを活用した価値提供
 データプロダクト

    データを活用した価値提供 13 機械学習 インサイト分析 ダッシュボード 【10,000字詰め込みました】 10Xのデータに関わる職種を紹介します( 2022年12月版) データ基盤
  6. ©10X, Inc. All Rights Reserved. データプロダクト
 14 データを活用した価値提供 2. 特徴的な使用データの一例

    
 3. アウトプット例
 1. 内容
 • 商品名・在庫数・売価
 • 商品のカテゴリ
 • 特売情報 など
 
 • プロダクトのマスタデータ
 
 パートナーからデータを受領し、Stailerにおける その後のデータ利活用の基となる「正しい情報 が集約されたマスタデータ」や「売り場」を生成す る

  7. ©10X, Inc. All Rights Reserved. データ基盤
 15 データを活用した価値提供 15 2.

    特徴的な使用データの一例 
 3. アウトプット例
 • 注文・ユーザーデータ
 • エンドユーザーやスタッフの行動ログ 
 • 販促や広告データ など
 1. 内容
 • ダッシュボードで利用するデータマート 
 プロダクトから生まれるログを扱いやすいDWH・ データマートの形へ加工し、社内外へ利活用を 促すと共に、その信頼性・品質を担保する 

  8. ©10X, Inc. All Rights Reserved. インサイト分析・ダッシュボード
 16 データを活用した価値提供 16 2.

    特徴的な使用データの一例 
 3. アウトプット例
 1. 内容
 • ユーザーの行動データ
 • オペレーションに関するデータ 
 • 地理情報などの外部データ など 
 
 
 • 定常的なダッシュボード
 • アドホックな分析レポート
 
 事業価値を最大化するために、インパクトと優先 順位を判断の上で意思決定を支えるインサイト の提供とKPIを追跡するためのダッシュボードを 作成する

  9. ©10X, Inc. All Rights Reserved. 機械学習
 17 データを活用した価値提供 2. 特徴的な使用データの一例

    
 3. アウトプット例
 1. 内容
 • 商品の探索・回帰・発見ログ 
 • 商品情報 + アノテーション 
 • オペレーションに関するデータ など 
 
 
 • 機械学習による予測モデル 
 • 意思決定支援のためのモデリング 
 
 ユーザーが一度に多くの情報を処理する必要 がある場合に、それらを売場や個人に最適な 形で提供し、ユーザーやスタッフの意思決定や 作業を支援する

  10. ©10X, Inc. All Rights Reserved. 社内のdbtの利用状況
 19 10Xにおけるdbtの活用 データ活用の広い範囲でdbtを利用 


    ① マスターデータ開発におけるdbt活用 
 ② データ基盤開発
 
 (後半のスライドではスライド右上タグでどちらの内容か わかるようになっています)
 ① ② マスタデータ開発 データ基盤開発
  11. ©10X, Inc. All Rights Reserved. なぜdbtを利用しているのか
 • SQLとjinjaでの開発でデータマートの開発の敷居を 下げる
 


    • ソフトウェア開発のDevOps(Test, CI/CD)の考えを 取り入れて品質を向上させる
 
 20 10Xにおけるdbtの活用
  12. ©10X, Inc. All Rights Reserved. 各レイヤーの詳細
 23 レイヤー 詳細 SOURCE

    パートナーから受領したデータが格納されている層 GATEWAY SOURCEにあるデータをクレンジングする層 DOMAIN MODEL ビジネスドメインを一定の粒度で集約する DOMAIN SERVICE ドメインモデル同士を利用して複雑な処理をするための処理層 APPLICATION 最終的なユースケースに沿った結合処理等を行う マスタデータ開発のアーキテクチャ マスタデータ開発
  13. ©10X, Inc. All Rights Reserved. Data Vault
 24 Data Vault

    Enterprise Data Warehouse (EDW)を構築するための設計やアプローチ全体 
 データ基盤開発
  14. ©10X, Inc. All Rights Reserved. Data Vault Modeling
 25 Data

    Vault Hub Satellite Link ビジネスオブジェクトが注文の例 ビジネスオブジェクトを管理する ビジネスオブジェクトの関係を管理する ビジネスオブジェクトを説明する値を 履歴とともに管理する データ基盤開発
  15. ©10X, Inc. All Rights Reserved. • dbtの利点の一つであるjinjaによるテンプレート化はData Vaultのようなモデリングと相性が良い 
 


    • dbtでData Vaultを実装するライブラリとしてdbtvaultがある 
 
 • (2023/03/14現在) 対応しているモデル 
 ◦ Stage
 ◦ Hub
 ◦ Link (Link, Transactional)
 ◦ Satellite (Satellite, Effectivity, Multi-Active, Extended Tracking)
 ◦ PIT
 ◦ Bridge
 dbtvalut
 26 Data Vault データ基盤開発
  16. ©10X, Inc. All Rights Reserved. Data Reliability Level (DRL)
 データの品質を4段階に分けて、品質を担保するための開発プロセスを明確化

    
 29 データ品質 レベル 詳細 Explorational 外部から取り入れたばかりのデータ、新しく生成されたデータ Ad-hoc 分析者などのクエリの結果、Sandbox用途のデータマート Business Insight DWHを利用して作成されたデータ、必要最低限の自動テストを実施 Trusted DWHを利用して作成されたデータ、自動テスト、QAを実施 データ基盤開発
  17. ©10X, Inc. All Rights Reserved. 参考: データ品質の定義 (by DAMA)
 31

    データ品質の項目 詳細 Accuracy 実際の値とデータの値の近さ Availability データ消費者やプロセスによって参照や取得できる Clarity データ消費者がメタデータを理解できる容易さ Completeness 必要なすべてのレコード、および値が存在しているか Consistency あるデータが他のデータに対して一貫性があるかどうか Currency データの値が最新のものであるか Punctuality データが利用可能になる時間と実際の提供時間の期間が適切か Timeliness 実際にデータが生成された時間と利用可能になる時間の期間が適切か Traceability データリネージが利用可能か Uniqueness 同じデータがテーブルやデータソースの中で一度しか出現しない Validity データがビジネスルールなどに従っているか データ品質 Dimensions of Data Quality (DDQ) Research Paper データ基盤開発
  18. ©10X, Inc. All Rights Reserved. dbtの機能を用いた品質の担保
 32 データ品質 • テストで自動化して品質を担保する手法の設計が必要になる

    
 ◦ 例) dbtによるデータ品質の各項目の担保 (11項目中5項目)
 
 • custom generic testを用いたテストも検討中 
 データ品質の項目 dbtによるアプローチ Clarity dbt docs Completeness (values) Not-null test Currency Freshness test Traceability Data Lineage Uniqueness Unique test データ基盤開発
  19. ©10X, Inc. All Rights Reserved. マスタデータに求められる品質
 33 データ品質 マスタデータ開発 •

    プロダクトで毎日直接利用されることから非常に高い水準の品質が必要 
 
 • レイヤーの役割に応じたテストによって品質を保証 
 
 • 特に重要になるドメインサービス層では単体テストを実施 

  20. ©10X, Inc. All Rights Reserved. dbt-datamocktool (dmt)
 34 データ品質 •

    dbtのmodelの単体テストを行うためのpackage 
 
 • custom generic testで以下のようなassetionを実現 
 マスタデータ開発 mockの切り替え expectedの設定
  21. ©10X, Inc. All Rights Reserved. まとめ
 • 10Xの会社概要
 • 10Xでのデータの活用について4つの価値提供

    
 • 10Xでのdbtの活用状況は広範囲 
 • データモデリングではData Vaultをdbtvaultによって実現 
 • データ品質ではDRLによる品質定義とdmtを用いた単体テストについて紹介 
 おわりに 37