2023/03/14に開催された「What is dbt?データ基盤にdbtが必要な3つの理由」の登壇資料です。
https://classmethod.connpass.com/event/276579/
©10X, Inc. All Rights Reserved.10Xにおけるdbtの事例紹介 What is dbt?データ基盤にdbtが必要な3つの理由1
View Slide
©10X, Inc. All Rights Reserved.発表者 2はじめに● 谷口 和輝 (@Kazk1018) ● 所属 ○ 株式会社10X グロース本部所属 ○ データサイエンティスト ● 経歴 ○ IT企業: Data Scientist / Research Scientist ○ スタートアップ: iOS Engineer / Marketing ○ 個人事業主: Data Scientist / ML Engineer / Consulting ● dbt歴 ○ 約1年
©10X, Inc. All Rights Reserved.Agenda 3● 会社概要 ● 10Xにおけるデータ活用 ● 10Xにおけるdbtの活用 ● データモデリングとdbt ● データ品質とdbt ● おわりに はじめに
Copyright 10X, Inc. All right reserved会社概要 4
©10X, Inc. All Rights Reserved. 5会社概要
©10X, Inc. All Rights Reserved.チーム構成 6会社概要※2023/01時点
©10X, Inc. All Rights Reserved.沿革 7会社概要
©10X, Inc. All Rights Reserved. 8小売エンタープライズに特化した EC/DXプラットフォームを提供 Stailerとは? 会社概要
©10X, Inc. All Rights Reserved.Stailerが提供するプロダクトの機能価値および提供サービス 9商品画像撮影ツール商品マスタ自動生成モバイルアプリ作業ツール(Pick Pack)配達管理(TMS)在庫管理(WMS)PL分析戦略策定オペレーションデザイン顧客分析顧客獲得施策CRM施策サポート対応配達効率分析KPI策定オンボード支援在庫生成ロジック作成効率分析欠品削減分析事業策定 在庫準備 EC開店 店舗運用 配達 CS グロースチャットツールCRM基盤機能価値提供サービスプロダクトStailerおよび、事業エキスパートチームが、広範な領域をパートナーとして伴走します 会社概要
©10X, Inc. All Rights Reserved.小売事業者向け オペレーティング・システム 在庫の即時管理やピックパック管理が可能 10配送業者向け オペレーティング・システム 積荷・ルーティング・配達管理が可能 お客様向け 統合UX 売り場設計や高精度の検索等の機能提供 お客様・小売事業者・配送の三者に必要な全てのプロダクトを提供 会社概要
©10X, Inc. All Rights Reserved.事業に即したマトリクス組織を軸に 11パートナーの事業成長に伴走する「事業本部」・プラットフォームとして資産構築する「機能本部」 会社概要
©10X, Inc. All Rights Reserved. 1210Xにおけるデータ活用
©10X, Inc. All Rights Reserved.各領域の専門家がデータを武器に、パートナー・プロダクトへ向けて価値を提供 データを活用した価値提供 データプロダクトデータを活用した価値提供13機械学習インサイト分析ダッシュボード【10,000字詰め込みました】 10Xのデータに関わる職種を紹介します( 2022年12月版)データ基盤
©10X, Inc. All Rights Reserved.データプロダクト 14データを活用した価値提供2. 特徴的な使用データの一例 3. アウトプット例 1. 内容 ● 商品名・在庫数・売価 ● 商品のカテゴリ ● 特売情報 など ● プロダクトのマスタデータ パートナーからデータを受領し、Stailerにおけるその後のデータ利活用の基となる「正しい情報が集約されたマスタデータ」や「売り場」を生成する
©10X, Inc. All Rights Reserved.データ基盤 15データを活用した価値提供152. 特徴的な使用データの一例 3. アウトプット例 ● 注文・ユーザーデータ ● エンドユーザーやスタッフの行動ログ ● 販促や広告データ など 1. 内容 ● ダッシュボードで利用するデータマート プロダクトから生まれるログを扱いやすいDWH・データマートの形へ加工し、社内外へ利活用を促すと共に、その信頼性・品質を担保する
©10X, Inc. All Rights Reserved.インサイト分析・ダッシュボード 16データを活用した価値提供162. 特徴的な使用データの一例 3. アウトプット例 1. 内容 ● ユーザーの行動データ ● オペレーションに関するデータ ● 地理情報などの外部データ など ● 定常的なダッシュボード ● アドホックな分析レポート 事業価値を最大化するために、インパクトと優先順位を判断の上で意思決定を支えるインサイトの提供とKPIを追跡するためのダッシュボードを作成する
©10X, Inc. All Rights Reserved.機械学習 17データを活用した価値提供2. 特徴的な使用データの一例 3. アウトプット例 1. 内容 ● 商品の探索・回帰・発見ログ ● 商品情報 + アノテーション ● オペレーションに関するデータ など ● 機械学習による予測モデル ● 意思決定支援のためのモデリング ユーザーが一度に多くの情報を処理する必要がある場合に、それらを売場や個人に最適な形で提供し、ユーザーやスタッフの意思決定や作業を支援する
©10X, Inc. All Rights Reserved. 1810Xにおけるdbtの活用
©10X, Inc. All Rights Reserved.社内のdbtの利用状況 1910Xにおけるdbtの活用データ活用の広い範囲でdbtを利用 ① マスターデータ開発におけるdbt活用 ② データ基盤開発 (後半のスライドではスライド右上タグでどちらの内容かわかるようになっています) ①②マスタデータ開発 データ基盤開発
©10X, Inc. All Rights Reserved.なぜdbtを利用しているのか ● SQLとjinjaでの開発でデータマートの開発の敷居を下げる ● ソフトウェア開発のDevOps(Test, CI/CD)の考えを取り入れて品質を向上させる 2010Xにおけるdbtの活用
©10X, Inc. All Rights Reserved. 21データモデリングとdbt
©10X, Inc. All Rights Reserved.ドメインを考慮したレイヤードアーキテクチャ 22マスタデータ開発のアーキテクチャマスタデータ開発
©10X, Inc. All Rights Reserved.各レイヤーの詳細 23レイヤー 詳細SOURCE パートナーから受領したデータが格納されている層GATEWAY SOURCEにあるデータをクレンジングする層DOMAIN MODEL ビジネスドメインを一定の粒度で集約するDOMAIN SERVICE ドメインモデル同士を利用して複雑な処理をするための処理層APPLICATION 最終的なユースケースに沿った結合処理等を行うマスタデータ開発のアーキテクチャマスタデータ開発
©10X, Inc. All Rights Reserved.Data Vault 24Data VaultEnterprise Data Warehouse (EDW)を構築するための設計やアプローチ全体 データ基盤開発
©10X, Inc. All Rights Reserved.Data Vault Modeling 25Data VaultHubSatelliteLinkビジネスオブジェクトが注文の例ビジネスオブジェクトを管理するビジネスオブジェクトの関係を管理するビジネスオブジェクトを説明する値を履歴とともに管理するデータ基盤開発
©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 26Data Vaultデータ基盤開発
©10X, Inc. All Rights Reserved.dbtvalutの例 27Data VaultHubの例 Linkの例データ基盤開発
©10X, Inc. All Rights Reserved. 28データ品質とdbt
©10X, Inc. All Rights Reserved.Data Reliability Level (DRL) データの品質を4段階に分けて、品質を担保するための開発プロセスを明確化 29データ品質レベル 詳細Explorational 外部から取り入れたばかりのデータ、新しく生成されたデータAd-hoc 分析者などのクエリの結果、Sandbox用途のデータマートBusiness Insight DWHを利用して作成されたデータ、必要最低限の自動テストを実施Trusted DWHを利用して作成されたデータ、自動テスト、QAを実施データ基盤開発
©10X, Inc. All Rights Reserved.DRLを用いた開発プロセス DRL毎に要件や必要な開発プロセスを定義(こちらはまだ途中段階) 30データ品質データ基盤開発
©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データ基盤開発
©10X, Inc. All Rights Reserved.dbtの機能を用いた品質の担保 32データ品質● テストで自動化して品質を担保する手法の設計が必要になる ○ 例) dbtによるデータ品質の各項目の担保 (11項目中5項目) ● custom generic testを用いたテストも検討中 データ品質の項目 dbtによるアプローチClarity dbt docsCompleteness (values) Not-null testCurrency Freshness testTraceability Data LineageUniqueness Unique testデータ基盤開発
©10X, Inc. All Rights Reserved.マスタデータに求められる品質 33データ品質マスタデータ開発● プロダクトで毎日直接利用されることから非常に高い水準の品質が必要 ● レイヤーの役割に応じたテストによって品質を保証 ● 特に重要になるドメインサービス層では単体テストを実施
©10X, Inc. All Rights Reserved.dbt-datamocktool (dmt) 34データ品質● dbtのmodelの単体テストを行うためのpackage ● custom generic testで以下のようなassetionを実現 マスタデータ開発mockの切り替えexpectedの設定
©10X, Inc. All Rights Reserved.dmtを用いた単体テストの導入 35データ品質マスタデータ開発
©10X, Inc. All Rights Reserved. 36おわりに
©10X, Inc. All Rights Reserved.まとめ ● 10Xの会社概要 ● 10Xでのデータの活用について4つの価値提供 ● 10Xでのdbtの活用状況は広範囲 ● データモデリングではData Vaultをdbtvaultによって実現 ● データ品質ではDRLによる品質定義とdmtを用いた単体テストについて紹介 おわりに37