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

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.
    10Xにおけるdbtの事例紹介

    What is dbt?データ基盤にdbtが必要な3つの理由
    1

    View Slide

  2. ©10X, Inc. All Rights Reserved.
    発表者

    2
    はじめに
    ● 谷口 和輝 (@Kazk1018)

    ● 所属

    ○ 株式会社10X グロース本部所属

    ○ データサイエンティスト

    ● 経歴

    ○ IT企業: Data Scientist / Research Scientist

    ○ スタートアップ: iOS Engineer / Marketing

    ○ 個人事業主: Data Scientist / ML Engineer / Consulting

    ● dbt歴

    ○ 約1年


    View Slide

  3. ©10X, Inc. All Rights Reserved.
    Agenda

    3
    ● 会社概要

    ● 10Xにおけるデータ活用

    ● 10Xにおけるdbtの活用

    ● データモデリングとdbt

    ● データ品質とdbt

    ● おわりに

    はじめに

    View Slide

  4. Copyright 10X, Inc. All right reserved
    会社概要

    4

    View Slide

  5. ©10X, Inc. All Rights Reserved. 5
    会社概要

    View Slide

  6. ©10X, Inc. All Rights Reserved.
    チーム構成

    6
    会社概要
    ※2023/01時点

    View Slide

  7. ©10X, Inc. All Rights Reserved.
    沿革

    7
    会社概要

    View Slide

  8. ©10X, Inc. All Rights Reserved. 8
    小売エンタープライズに特化した

    EC/DXプラットフォームを提供

    Stailerとは?

    会社概要

    View Slide

  9. ©10X, Inc. All Rights Reserved.
    Stailerが提供するプロダクトの機能価値および提供サービス

    9
    商品画像撮影
    ツール
    商品マスタ
    自動生成
    モバイル
    アプリ
    作業ツール
    (Pick Pack)
    配達管理
    (TMS)
    在庫管理
    (WMS)
    PL分析
    戦略策定
    オペレーション
    デザイン
    顧客分析
    顧客獲得施策
    CRM施策
    サポート対応
    配達効率分析
    KPI策定
    オンボード支援
    在庫生成
    ロジック作成
    効率分析
    欠品削減分析
    事業策定 在庫準備 EC開店 店舗運用 配達 CS グロース
    チャット
    ツール
    CRM基盤
    機能
    価値
    提供
    サービス
    プロダクトStailerおよび、事業エキスパートチームが、広範な領域をパートナーとして伴走します 

    会社概要

    View Slide

  10. ©10X, Inc. All Rights Reserved.
    小売事業者向け

    オペレーティング・システム 

    在庫の即時管理やピックパック管理が可能 

    10
    配送業者向け

    オペレーティング・システム 

    積荷・ルーティング・配達管理が可能 

    お客様向け

    統合UX

    売り場設計や高精度の検索等の機能提供 

    お客様・小売事業者・配送の三者に必要な全てのプロダクトを提供

    会社概要

    View Slide

  11. ©10X, Inc. All Rights Reserved.
    事業に即したマトリクス組織を軸に

    11
    パートナーの事業成長に伴走する「事業本部」・プラットフォームとして資産構築する「機能本部」 

    会社概要

    View Slide

  12. ©10X, Inc. All Rights Reserved. 12
    10Xにおけるデータ活用


    View Slide

  13. ©10X, Inc. All Rights Reserved.
    各領域の専門家がデータを武器に、パートナー・プロダクトへ向けて価値を提供 


    データを活用した価値提供

    データプロダクト
    データを活用した価値提供
    13
    機械学習
    インサイト分析
    ダッシュボード
    【10,000字詰め込みました】 10Xのデータに関わる職種を紹介します( 2022年12月版)
    データ基盤

    View Slide

  14. ©10X, Inc. All Rights Reserved.
    データプロダクト

    14
    データを活用した価値提供
    2. 特徴的な使用データの一例

    3. アウトプット例

    1. 内容

    ● 商品名・在庫数・売価

    ● 商品のカテゴリ

    ● 特売情報 など


    ● プロダクトのマスタデータ


    パートナーからデータを受領し、Stailerにおける
    その後のデータ利活用の基となる「正しい情報
    が集約されたマスタデータ」や「売り場」を生成す
    る


    View Slide

  15. ©10X, Inc. All Rights Reserved.
    データ基盤

    15
    データを活用した価値提供
    15
    2. 特徴的な使用データの一例

    3. アウトプット例

    ● 注文・ユーザーデータ

    ● エンドユーザーやスタッフの行動ログ

    ● 販促や広告データ など

    1. 内容

    ● ダッシュボードで利用するデータマート

    プロダクトから生まれるログを扱いやすいDWH・
    データマートの形へ加工し、社内外へ利活用を
    促すと共に、その信頼性・品質を担保する

    View Slide

  16. ©10X, Inc. All Rights Reserved.
    インサイト分析・ダッシュボード

    16
    データを活用した価値提供
    16
    2. 特徴的な使用データの一例

    3. アウトプット例

    1. 内容

    ● ユーザーの行動データ

    ● オペレーションに関するデータ

    ● 地理情報などの外部データ など



    ● 定常的なダッシュボード

    ● アドホックな分析レポート


    事業価値を最大化するために、インパクトと優先
    順位を判断の上で意思決定を支えるインサイト
    の提供とKPIを追跡するためのダッシュボードを
    作成する


    View Slide

  17. ©10X, Inc. All Rights Reserved.
    機械学習

    17
    データを活用した価値提供
    2. 特徴的な使用データの一例

    3. アウトプット例

    1. 内容

    ● 商品の探索・回帰・発見ログ

    ● 商品情報 + アノテーション

    ● オペレーションに関するデータ など



    ● 機械学習による予測モデル

    ● 意思決定支援のためのモデリング


    ユーザーが一度に多くの情報を処理する必要
    がある場合に、それらを売場や個人に最適な
    形で提供し、ユーザーやスタッフの意思決定や
    作業を支援する


    View Slide

  18. ©10X, Inc. All Rights Reserved. 18
    10Xにおけるdbtの活用


    View Slide

  19. ©10X, Inc. All Rights Reserved.
    社内のdbtの利用状況

    19
    10Xにおけるdbtの活用
    データ活用の広い範囲でdbtを利用

    ① マスターデータ開発におけるdbt活用

    ② データ基盤開発


    (後半のスライドではスライド右上タグでどちらの内容か
    わかるようになっています)



    マスタデータ開発 データ基盤開発

    View Slide

  20. ©10X, Inc. All Rights Reserved.
    なぜdbtを利用しているのか

    ● SQLとjinjaでの開発でデータマートの開発の敷居を
    下げる


    ● ソフトウェア開発のDevOps(Test, CI/CD)の考えを
    取り入れて品質を向上させる


    20
    10Xにおけるdbtの活用

    View Slide

  21. ©10X, Inc. All Rights Reserved. 21
    データモデリングとdbt


    View Slide

  22. ©10X, Inc. All Rights Reserved.
    ドメインを考慮したレイヤードアーキテクチャ

    22
    マスタデータ開発のアーキテクチャ
    マスタデータ開発

    View Slide

  23. ©10X, Inc. All Rights Reserved.
    各レイヤーの詳細

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

    View Slide

  24. ©10X, Inc. All Rights Reserved.
    Data Vault

    24
    Data Vault
    Enterprise Data Warehouse (EDW)を構築するための設計やアプローチ全体

    データ基盤開発

    View Slide

  25. ©10X, Inc. All Rights Reserved.
    Data Vault Modeling

    25
    Data Vault
    Hub
    Satellite
    Link
    ビジネスオブジェクトが注文の例
    ビジネスオブジェクトを管理する
    ビジネスオブジェクトの関係を管理する
    ビジネスオブジェクトを説明する値を
    履歴とともに管理する
    データ基盤開発

    View Slide

  26. ©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
    データ基盤開発

    View Slide

  27. ©10X, Inc. All Rights Reserved.
    dbtvalutの例

    27
    Data Vault
    Hubの例 Linkの例
    データ基盤開発

    View Slide

  28. ©10X, Inc. All Rights Reserved. 28
    データ品質とdbt


    View Slide

  29. ©10X, Inc. All Rights Reserved.
    Data Reliability Level (DRL)

    データの品質を4段階に分けて、品質を担保するための開発プロセスを明確化

    29
    データ品質
    レベル 詳細
    Explorational 外部から取り入れたばかりのデータ、新しく生成されたデータ
    Ad-hoc 分析者などのクエリの結果、Sandbox用途のデータマート
    Business Insight DWHを利用して作成されたデータ、必要最低限の自動テストを実施
    Trusted DWHを利用して作成されたデータ、自動テスト、QAを実施
    データ基盤開発

    View Slide

  30. ©10X, Inc. All Rights Reserved.
    DRLを用いた開発プロセス

    DRL毎に要件や必要な開発プロセスを定義(こちらはまだ途中段階)

    30
    データ品質
    データ基盤開発

    View Slide

  31. ©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
    データ基盤開発

    View Slide

  32. ©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
    データ基盤開発

    View Slide

  33. ©10X, Inc. All Rights Reserved.
    マスタデータに求められる品質

    33
    データ品質
    マスタデータ開発
    ● プロダクトで毎日直接利用されることから非常に高い水準の品質が必要


    ● レイヤーの役割に応じたテストによって品質を保証


    ● 特に重要になるドメインサービス層では単体テストを実施

    View Slide

  34. ©10X, Inc. All Rights Reserved.
    dbt-datamocktool (dmt)

    34
    データ品質
    ● dbtのmodelの単体テストを行うためのpackage


    ● custom generic testで以下のようなassetionを実現

    マスタデータ開発
    mockの切り替え
    expectedの設定

    View Slide

  35. ©10X, Inc. All Rights Reserved.
    dmtを用いた単体テストの導入

    35
    データ品質
    マスタデータ開発

    View Slide

  36. ©10X, Inc. All Rights Reserved. 36
    おわりに


    View Slide

  37. ©10X, Inc. All Rights Reserved.
    まとめ

    ● 10Xの会社概要

    ● 10Xでのデータの活用について4つの価値提供

    ● 10Xでのdbtの活用状況は広範囲

    ● データモデリングではData Vaultをdbtvaultによって実現

    ● データ品質ではDRLによる品質定義とdmtを用いた単体テストについて紹介

    おわりに
    37

    View Slide