Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データマネジメントを支える武器としてのメタデータ管理
Search
10xinc
March 28, 2024
Technology
6
35k
データマネジメントを支える武器としてのメタデータ管理
「みなさん、データのメタデータ管理ってどうやってますか?」での発表資料です。
-
https://datatech-jp.connpass.com/event/310548/
10xinc
March 28, 2024
Tweet
Share
More Decks by 10xinc
See All by 10xinc
10Xでのデータ基盤の変遷とこれから: データマネジメントのリアル 〜BtoB企業3社の歩みとこれから〜
10xinc
6
8.7k
10Xが掲げるオリジナルの品質特性について #nihonbashitesttalk / 10X quality characteristic
10xinc
2
1k
株式会社10X - Culture Deck
10xinc
86
1.4M
Elementaryを用いたデータ品質の可視化とデータ基盤の運用改善
10xinc
9
17k
テストの完了をゴールにしない! ~仮説検証を繰り返し、開発・QA・ユーザーが交流しながら開発することで見えてくる理想の姿~ - #RSGT2024 #DevSumi / Shift left and Shift right
10xinc
13
9.7k
Dataplexとdbt-osmosisを活用した「がんばらない」データカタログとメタデータ管理の運用(Data Engineering Study #22)
10xinc
3
16k
スタートアップにおけるデータマネジメントの始め方の事例紹介(datatech-jp Casual Talks #5)
10xinc
5
11k
データプロダクトとは何か
10xinc
7
6.2k
Security Team at 10X inc / セキュリティチームの今@開発共有会
10xinc
1
170
Other Decks in Technology
See All in Technology
なんで、私がAWS Heroに!? 〜社外の広い世界に一歩踏み出そう〜
minorun365
PRO
1
540
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.6k
オニオンアーキテクチャで実現した 本質課題を解決する インフラ移行の実例
hryushm
13
2.7k
日経ビジュアルデータにおける スクロールテリングと地図/nikkei-tech-talk-26
nikkei_engineer_recruiting
0
160
内製化によるシステムモダナイゼーションの実践
kazokmr
3
530
Sidekiq vs Solid Queue
willnet
11
7k
Amazon FSx for NetApp ONTAPを利用するにあたっての要件整理と設計のポイント
non97
1
130
LeSSをはじめよう〜LeSSをはじめるとき、LeSSをはじめてから、知りたかったこと詰め合わせ〜
lycorptech_jp
PRO
2
210
EKS初心者が早めに知っておきたかったこと
cuorain
0
140
「最高のチューニング」をしないために / hack@delta 24.10
fujiwara3
15
2.7k
WHOLENESS, REPAIRING, AND TO HAVE FUN: 全体性、修復、そして楽しむこと
snoozer05
PRO
3
3.6k
SwiftSyntaxでUIKitとSwiftUIの使用率を完璧に計測できちゃう件について
ldf_tech
0
160
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
296
20k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Designing on Purpose - Digital PM Summit 2013
jponch
115
6.9k
Agile that works and the tools we love
rasmusluckow
327
21k
Happy Clients
brianwarren
97
6.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
Rails Girls Zürich Keynote
gr2m
93
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
4 Signs Your Business is Dying
shpigford
180
21k
Docker and Python
trallard
40
3k
Transcript
©2023 10X, Inc. データマネジメントを支える 武器としてのメタデータ管理 みなさん、データのメタデータ管理ってどうやってますか?(datatech-jp) 株式会社10X Yasuhisa Yoshida
©2023 10X, Inc. 自己紹介 • 吉田 康久 ◦ Twitterやはてなidは@syou6162 /
id:syou6162 • 株式会社10Xでデータエンジニア ◦ 2022/09に入社 ◦ エンジニアリング本部 データサイエンス&エンジニアリング部に所属 ◦ データマネジメント / データガバナンスの仕事をしてます ◦ 京都から働いてます • これまでの職歴としては研究者(NLP & ML) => Webアプリケーションエンジニア / MLエンジニア => アナリティク スエンジニア / データエンジニア • datatech-jp Casual Talks #1でもデータ管理に役立つメタデータに関する発表をしました ◦ メタデータの話でご飯が3杯くらいいける人間です 2
©2023 10X, Inc. アジェンダ • 背景: 10XとStailerについて • メタデータ管理、いつどういう状況になったらやるとよい? ◦
10Xのデータマネジメント上の課題の遷移 • データディスカバリー課題に対するメタデータ管理の応用事例 ◦ dbt-osmosisによるカラムのdescriptionの自動伝播 • データ品質課題に対するメタデータ管理の応用事例 ◦ elementaryによるデータ品質の可視化 • データ基盤の運用改善に対するメタデータ管理の応用事例 ◦ elementaryによる安全にテーブルを撤退する方法 • アクティブメタデータ 3 Take Home Message1: メタデータ自体が目 的になることはないが、メタデータは目的達 成のための強力な手段になり得る! Take Home Message2: 既存のメタデータだけでなく、既存のメタデータの拡張や他シス テムからの取り込みを行なうとメタデータはさらに強力な武器になり得る!
©2023 10X, Inc. アジェンダ • 背景: 10XとStailerについて • メタデータ管理、いつどういう状況になったらやるとよい? ◦
10Xのデータマネジメント上の課題の遷移 • データディスカバリー課題に対するメタデータ管理の応用事例 ◦ dbt-osmosisによるカラムのdescriptionの自動伝播 • データ品質課題に対するメタデータ管理の応用事例 ◦ elementaryによるデータ品質の可視化 • データ基盤の運用改善に対するメタデータ管理の応用事例 ◦ elementaryによる安全にテーブルを撤退する方法 • アクティブメタデータ 4
©2023 10X, Inc. 提供プロダクト お客様アプリ • 数万SKUから商品からスムーズにカゴを作成できるUX • キーワード・カテゴリ検索・お気に入り・注文変更・ 購入履歴といった基本機能
• 商品の受け取り方法を選択 • 注文状況・配達状況の確認や通知 • Web(オプションにて提供) 数万点のSKUから スムーズにお買い物ができるUXを提供 主な機能 5
©2023 10X, Inc. 提供プロダクト スタッフアプリ • ピッキングリストを自動生成 • 移動距離最短化、複数スタッフに並行作業可能 •
バーコード照合でのヒューマンエラー防止をサポート • 多様な受け取り方法に対応 ミスが少なく効率的な 業務オペレーションシステムを提供 主な機能 6
©2023 10X, Inc. 提供サービス 商品・在庫ロジック 構築 マスタの半自動生成 店舗でのお買い物に限りなく近い品揃えを実現 半自動の商品在庫マスタ生成プロセスを提供し 欠品と運用コストを削減
データソース特定 データI/F開発 アルゴリズム開発 日別店別 在庫マスタ生成 発注データ 販売データ 廃棄データ 販促データ 店舗A 店舗B 店舗C 店舗D Stailerと つなぐ I/Fの開発 アルゴリズムの 開発 販促情報 発注周期 品揃除外 etc. 7
©2023 10X, Inc. 8 Stailer Flywheel w/Lever - 事業成長のはずみ車とレバー パートナー
シップ締結 Engagement Accessibility Capacity Accessibility Selection Discovery Growth 投資リソース の最大化 More Capacity More Order More AOV 初回利用者の獲得 キャパシティの最大化 品揃え/価格最適 化 ディスカバリー最大化 関係の強化 店舗/エリア/アクセ スの開設 スロットキャパシティの増加 満便率の増加 継続利用者の増加 利用頻度の増加 かご単価の増加 再投資
©2023 10X, Inc. アジェンダ • 背景: 10XとStailerについて • メタデータ管理、いつどういう状況になったらやるとよい? ◦
10Xのデータマネジメント上の課題の遷移 • データディスカバリー課題に対するメタデータ管理の応用事例 ◦ dbt-osmosisによるカラムのdescriptionの自動伝播 • データ品質課題に対するメタデータ管理の応用事例 ◦ elementaryによるデータ品質の可視化 • データ基盤の運用改善に対するメタデータ管理の応用事例 ◦ elementaryによる安全にテーブルを撤退する方法 • アクティブメタデータ 9
©2023 10X, Inc. メタデータ管理が必要なフェイズはDMBOKではフェイズ2 10 今日のこれまでの発表から、メ タデータが何か / その重要性に ついては分かった。
では、具体的にいつどういう状 況で取り組むとよいのか? DMBOKでは中盤以降のフェイ ズ(フェイズ2)でやるとよい、と記 載されている
©2023 10X, Inc. データマネジメント成熟度アセスメントの実施 @ 10X 11 事業上、データが重要にも関わらず 様々な箇所でデータの課題が山積 DMBOKの項目に沿ってアセスメント
を実施。優先度を決めた アセスメント実施時点では - メタデータ管理はほぼ何もできていないレベル感 - 優先度としては真ん中程度。やるとしても省コストで
©2023 10X, Inc. 入社直後にやったこと: データマネジメント成熟度アセスメントの実施 12 11項目がフラットに並んでいると理 解が難しかったので、各項目の依存 関係を可視化 取り組みの詳細は過去の発表を参
照してください メタデータは直近ではやる 予定はあまりなかった
©2023 10X, Inc. アジェンダ • 背景: 10XとStailerについて • メタデータ管理、いつどういう状況になったらやるとよい? ◦
10Xのデータマネジメント上の課題の遷移 • データディスカバリー課題に対するメタデータ管理の応用事例 ◦ dbt-osmosisによるカラムのdescriptionの自動伝播 • データ品質課題に対するメタデータ管理の応用事例 ◦ elementaryによるデータ品質の可視化 • データ基盤の運用改善に対するメタデータ管理の応用事例 ◦ elementaryによる安全にテーブルを撤退する方法 • アクティブメタデータ 13
©2023 10X, Inc. 入社して最初に取り組んだこと: データセキュリティ • 人数もまだ少ないスタートアップだったこともあり、入社当初(2022年9月頃)は以下のような状況であった(参考) ◦ 広すぎる &
強すぎる権限付与 ◦ 手動による権限付与 • 利用拡大に伴い権限を強化する必要が増えてきた ◦ Stailerの利用拡大に伴ない、パートナー数も増加 ◦ パートナー毎の権限管理の強化の必要性が増してきた • これを改善するために、以下の取り組みを実施した ◦ 誰がどのデータにアクセスしてよいかのポリシーを整備 ◦ IaCによるコード管理、レビューの必須化、機械による権限付与 ▪ 新規の権限付与はTerraformで行なうことを徹底 ▪ terraform importを使って、既存の権限付与もIaCで管理に取り込む ◦ データエンジニア / アナリティクスエンジニア向けのTerraformを使った権限管理の勉強会の開催 • 半年から一年データセキュリティに取り組んだ結果、状況は大分改善できた🎉 14
©2023 10X, Inc. 課題がデータセキュリティからデータディスカバリーに遷移 15 どのデータを使えば いいか分からない どのデータが使えるか分からない
©2023 10X, Inc. データディスカバリーが課題になった背景 • 約一年前は分析に必要なテーブルがまだ限定的であった ◦ 主要テーブルを把握していれば何とかなった時代 • ほぼ全員が生データを見ることができたので、主要テーブルで情報が足りない場合でも何とかなっていた
◦ 生データ(データレイク)の仕様が分からなければ、データ定義(スプレッドシートで管理)を見ればよかった ◦ カバレッジもある程度高かった 16 更新も随分昔に 止まっていた...
©2023 10X, Inc. 様々な要因によりデータディスカバリーが課題に 17 [課題] 個別パートナーのDWHにはカラ ムの定義が書かれていない。SQLから 定義を追うには、専門家でない人には難 しすぎる。
自分が必要なデータがどれか分からず、 適切でないデータの使用により間違った 意思決定をしてしまう可能性が高くなっ てしまう...! 間違いを防ぐためにアナリティクスエンジ ニアへの依頼が多くなり、基盤構築にか ける時間も減ってしまう [ガバナンスの強化 / 権限整備] データレイクやパートナー横断DWH のデータは権限的に使えない人が 増えた [プロダクトの成長] Stailerの成長に 伴ない、データ定義にないテーブル が増加し、定義の更新が止まってし まった。少数の主要テーブルだけ見 れば分かるという状況でもなくなっ てきた [データモデリングの高度化] staging / data vault / dimentional modeling / 大福帳テー ブルの導入により、定義を追うのは簡単では なくなってきた
©2023 10X, Inc. データディスカバリーの課題を解消するため、Dataplexを導入 18 Dataplexの選定理由や導入後のよかった点について は過去の発表資料や発表動画を参照してください!
©2023 10X, Inc. 残る課題: 継続的なメタデータの管理 • データカタログは決まった、じゃあどうやってメタデータを入れるか? ◦ 特にビジネスメタデータをどうやって入れるか •
待ち受ける課題 ◦ 課題1: カバレッジが足りていないと、そもそも検索に引っかからない ◦ 課題2: 継続的にメンテナンスできないと、誤った意思決定に繋がることも ◦ 両方をちゃんとやるのは大変...! 19
©2023 10X, Inc. 人手によるカラムdescriptionのメンテナンスは大変... 20 データレイクの テーブル カラムA カラムB DWHの
テーブル カラムAを参照 カラムBを参照 データマートの テーブル カラムAを参照 カラムBを参照 データレイクのカラムdescriptionをコピペ... 参照箇所が数十箇所以上あるんだけど... 大本の定義が変更された場合は後続もコピペし なおすの...?
©2023 10X, Inc. dbt-osmosisによるカラムdescriptionの伝播 21 データレイクの テーブル カラムA カラムB DWHの
テーブル カラムAを参照 カラムBを参照 データマートの テーブル カラムAを参照 カラムBを参照 後段で参照しているカラムのdescriptionは自動 で埋めてくれる! 多段の参照関係になっていても 問題なくカラムdescriptionを埋めてくれる! 大本の定義のみ人間がメンテナンス。 大本の定義が更新されたら、後段のカラムのdescriptionも 自動的に追従(GitHub Actionsで毎週Pull Requestが自動作成される)
©2023 10X, Inc. 導入効果: BizDev内で必要なデータを探せるようになった 22 導入前: カラムのdescriptionは1割も付与されておらず、データカタログが機能できない 導入後: よく使われるデータセット内のカラムのdescriptionは50~80%付与されている!
dbt-osmosisの導入効果 BizDevは分析をセルフサービスで進められる! データ基盤側は問い合わせ件数を減らして、よりよい データ基盤整備に使える時間を増やせる!
©2023 10X, Inc. アジェンダ • 背景: 10XとStailerについて • メタデータ管理、いつどういう状況になったらやるとよい? ◦
10Xのデータマネジメント上の課題の遷移 • データディスカバリー課題に対するメタデータ管理の応用事例 ◦ dbt-osmosisによるカラムのdescriptionの自動伝播 • データ品質課題に対するメタデータ管理の応用事例 ◦ elementaryによるデータ品質の可視化 • データ基盤の運用改善に対するメタデータ管理の応用事例 ◦ elementaryによる安全にテーブルを撤退する方法 • アクティブメタデータ 23 Take Home Message1: メタデータ自体が目 的になることはないが、メタデータは目的達 成のための強力な手段になり得る!
©2023 10X, Inc. アジェンダ • 背景: 10XとStailerについて • メタデータ管理、いつどういう状況になったらやるとよい? ◦
10Xのデータマネジメント上の課題の遷移 • データディスカバリー課題に対するメタデータ管理の応用事例 ◦ dbt-osmosisによるカラムのdescriptionの自動伝播 • データ品質課題に対するメタデータ管理の応用事例 ◦ elementaryによるデータ品質の可視化 • データ基盤の運用改善に対するメタデータ管理の応用事例 ◦ elementaryによる安全にテーブルを撤退する方法 • アクティブメタデータ 24
©2023 10X, Inc. 再掲: データマネジメント成熟度アセスメントの実施 25 データセキュリティは固められた! 次はDWHをよくすることで、データ品質 の課題に向き合いたい!
©2023 10X, Inc. 現在取り組んでいる課題: データ品質 26 項目名 具体例 可用性 注文の分析をしたいと思い、いつも通り利用している注文テーブルを確認しようとしたらテーブルが存在していなかった
一意性 あるユーザーIDに対して二つのレコードが存在しており、ユーザーが登録した日時が正確に判断できない 一貫性 商圏を確認するために注文情報にある住所データを利用していたが、同じ地域なのに別の表記がされていて分析するときに名寄 せが必要になってしまう 妥当性 購入率などの確率を表す指標が 100%を超えてしまう 追跡可能性 スプレッドシート経由でデータを提供しようとしたが、他のシートの参照やコピーを複数利用していたので実際にどのデータから作 成されたシートなのかが判断できない 明瞭性 商品の分析をしようと BigQueryにアクセスしてデータを探していたが、目的のデータがどこにあるのかわからない データ品質に関する問い合わせが 特に多く、何が担保できているか 明らかになっていないことも多いた め、調査コストも高くなりがち...
©2023 10X, Inc. 前提: 包括的にデータ品質を捉えたい • 社内に複数のデータプロダクトが存在 ◦ 分析用DWH: ▪
最新バージョン / 旧バージョン / adhocなど複数のバージョンが存在 ◦ 商品在庫マスタ: パートナー固有の事情はどうしても入る部分があり、商品在庫マスタもパートナー毎に構成 やデータ品質が異なる場合がある • 個別にデータ指標を定義すると、比較が困難になる ◦ 例: 求められるデータ品質を満たせていない部署にデータエンジニアを多めにアサインしたいが、指標が異な ると客観的な判断が難しい ◦ 例: 異なるデータチーム間でのコミュニケーションが難しくなる(データ品質指標のSSoT問題) ◦ 逆に同じ指標を使っていれば、あるプロダクトの改善方法が別プロダクトの改善に生かしやすくなるかもしれ ない 27 アーキテクチャは大きく異なるものの、担保でき ているデータ品質はどれくらい違うのか?は定量 化できていなかった
©2023 10X, Inc. データ品質指標の可視化をどうする...? • データ品質の目的や指標の定義はやった ◦ しかし、実装や可視化はどうする? ◦ データ品質が改善しているかを継続的にモニタリングしたいので、手動運用は避けたい
• 10Xでは全社的にdbtを活用しており、dbtのエコシステムは特に充実している ◦ dbtのモニタリングツールの一つであるelementaryが筋がよさそうということが分かってきた 28
©2023 10X, Inc. データ品質はelementaryの基本機能だけで十分...? • 少なくとも10Xの場合はそうではなかった • 理由1: 社内に複数のデータプロダクトが存在(分析用DWH /
商品在庫マスタ) ◦ dbtのプロジェクトは分かれているが、指標としては一元的に見たい • 理由2: 独自に実装したdbtのテストのデータ品質項目への分類を独自に行ないたい ◦ dbt標準のテストであれば、elementaryが大まかに分類してくれる ▪ 例: not_null => 完全性(Completeness) ◦ しかし、それだけでは足りず独自にテストを書いているため、それらも独自に分類をしたい ▪ Singular tests ▪ Custom generic tests • 理由3: 可視化できる粒度の調整がしにくい ◦ 粒度荒ら過ぎ or 細か過ぎ 29 可用性の例。1つのテーブルではなく、 データセットや同時のレイヤリングに基づ いてデータ品質を可視化したい!
©2023 10X, Inc. データ品質指標を可視化する上でのelementaryの魅力: メタデータ • dbtは実行後にメタデータをjsonで出力してくれる ◦ manifest.json: dbtのリソース(model
/ test)やその依存関係などのメタデータを保持 ◦ run_results.json: dbt runの実行履歴。各モデルの成否や実行時間などのメタデータを保持 • データ品質の可視化もSQLで完結したいが、dbtの素のメタデータは深くネストしたJSONになっている ◦ DWH上では扱いやすいとはいえない • elementaryはdbtのメタデータを溶き解した上で、DWH上にアップロードしてくれる ◦ 使いやすいように正規化 / 非正規化などをいい感じにやってくれる ◦ アップロードはdbtのon-run-endでやってくれる ◦ アップロード先のデータセットを指定するくらいでめっちゃ簡単に使い始めることができる! 30 私見: SQLから触れる場所にメタデータを集約させると データエンジニアやアナリティクスエンジニアは より力を発揮させやすくなる!
©2023 10X, Inc. データ品質の可視化の例: 正確性 • 正確性のデータ品質指標の例: ◦ 完全性(Completeness): not_null
◦ 一意性 (Uniqueness): unique / dbt_utils.unique_combination_of_columns ◦ 一貫性(Consistency): relationships ◦ 妥当性 (Validity): ▪ カラムの型のテスト / not_null_proportion / accepted_values / accepted_range / lengthなど • どういう正確性の指標かを大雑把に知りたい ◦ 可視化の際は細かいテスト名はどうでもいい • 自分たちが見たい粒度で正確性を可視化したい ◦ 粒度: データセット / レイヤリング 31 dbtでよく見るテスト 独自のテストを実装することも多い
©2023 10X, Inc. 正確性を可視化するために利用するメタデータ: dbt_tests • dbtのモデルやデータソースにどのようなテストが実装されているかを保持しているテーブル 32 カラム名 詳細
short_name not_nullやuniqueなどテストの短縮名。より正確な名前が欲しい場合には nameやaliasを参照するとよい test_column_name カラムに関するテストの場合、テスト対象のカラム名が入る model_tags モデルに付与されているタグ情報が配列 (の文字列)として入る model_owners テストが記載されているモデルのオーナー情報が入る parent_model_unique_id テストが実装されている modelやsourceへのjoinキー original_path テストが記載されているファイルパス quality_dimension completeness / uniqueness / validitiyなど、どういった項目のテストかを大雑把に分類したカラム。データ品質の 可視化で大雑把に見たいときに便利
©2023 10X, Inc. 正確性の可視化の例 33 コード含めた詳細はこちらを 参照してください 「データセットA / B
/ Cは特にテストが多いが、データ セットCはvalidity(妥当性)に関するテストが圧倒的に 少ない」 テーブル生成の過程やテストに関するメタデータにさっと アクセスできると、データ品質指標の可視化もさっとできる!
©2023 10X, Inc. 正確性の可視化を通じた各レイヤが担うべきテストの見直し 34 データレイク Staging Raw Vault Business
Vault Data Mart Fact / Dim 正確性の観点でもデータユーザーから の問い合わせが一番多いのはData Mart。 とにかくData Martのテストを増やして 正確性を担保すればいい...? ビジネスロジックはBusiness Vaultに寄せていく。ロジックが絡む妥当性 (Validity)に関するテストもBusiness Vaultで行なおう。 一方で、Data MartはJOINに関するミスが起きやすいから、一意性 (Uniqueness)や完全性(Completeness)のテストを厚めにしよう! レイヤ毎に正確性の可視化を行なった結果、どのレイヤで何を担保す るためのテストを行なうべきか見直したりToBeの設定ができるように なった。可視化しているので、ギャップも分かる! Data Mart内にビジネスロジックが書か れているのがよくない! ビジネスロジックやそれに関するテスト も似たようなものが多数できてしまって SSoTにできてない...
©2023 10X, Inc. その他のデータ品質指標もメタデータをフル活用 35 可用性などその他のデータ品質指標の例や そもそものデータ品質の向上の取り組みについては過 去の発表資料を参照してください!
©2023 10X, Inc. アジェンダ • 背景: 10XとStailerについて • メタデータ管理、いつどういう状況になったらやるとよい? ◦
10Xのデータマネジメント上の課題の遷移 • データディスカバリー課題に対するメタデータ管理の応用事例 ◦ dbt-osmosisによるカラムのdescriptionの自動伝播 • データ品質課題に対するメタデータ管理の応用事例 ◦ elementaryによるデータ品質の可視化 • データ基盤の運用改善に対するメタデータ管理の応用事例 ◦ elementaryによる安全にテーブルを撤退する方法 • アクティブメタデータ 36 Take Home Message1: メタデータ自体が目 的になることはないが、メタデータは目的達 成のための強力な手段になり得る!
©2023 10X, Inc. アジェンダ • 背景: 10XとStailerについて • メタデータ管理、いつどういう状況になったらやるとよい? ◦
10Xのデータマネジメント上の課題の遷移 • データディスカバリー課題に対するメタデータ管理の応用事例 ◦ dbt-osmosisによるカラムのdescriptionの自動伝播 • データ品質課題に対するメタデータ管理の応用事例 ◦ elementaryによるデータ品質の可視化 • データ基盤の運用改善に対するメタデータ管理の応用事例 ◦ elementaryによる安全にテーブルを撤退する方法 • アクティブメタデータ 37
©2023 10X, Inc. メタデータを使ったデータ基盤の運用改善: 安全にテーブルを撤退する • データエンジニアやアナリティクスエンジニアは日々様々な認知負荷と戦っている ◦ 認知負荷を下げるためにも利用されていないテーブルは積極的に撤退したい...! •
テーブルの撤退なんてINFORMATION_SCHEMAを見ればいいだけ...? => No! ◦ 派生したテーブルが多数参照されている場合もあり、その場合は撤退できない 38 撤退できるかはこっちで考えないといけな いが、人間が考慮するのは無理... 撤退したいテーブル
©2023 10X, Inc. メタデータでデータリネージを列挙する • dbtのref関数を使ったモデル間の依存関係はメタデータ(manifest.json)に記録されている • elementaryはメタデータ(manifest.json)を加工して、使いやすい形でアップロードしてくれる • 親子関係のリネージを再帰的に辿りたい場合はWITH
RECURSIVEを使いましょう 39 recの中でrecを参照している。今のモデル の親の親の親の...親を再帰で列挙しつく す 「データリネージがWebUIで可視化されている」だけで はこれはできない。APIやテーブルで容易にアクセス できることが重要!
©2023 10X, Inc. 派生テーブルも考慮して、安全にテーブルを撤退する 40 テーブルのdescriptionの情報もメタデータに含ま れるので、どういうテーブルかもさっと確認しなが ら安心して撤退できる! 認知負荷を一定以下に抑えながら開 発できるので、新規の案件対応や既
存テーブルの品質向上に取り組む時 間を捻出しやすくなる!
©2023 10X, Inc. データリネージにはBI(ダッシュボード)も含めるのがオススメ • テーブル撤退時はテーブルだけでなくダッシュボードを含めたBIへの影響も考える必要がある ◦ dbtではexposureというメタデータでBIの存在を表現できる ◦ 例:
このダッシュボードはテーブルA / B / Cを使っていて、Xさんがオーナー。直近はY回アクセスされている • BIに関するメタデータは自動生成させるのがオススメ ◦ 理由: ダッシュボードはdbtのライフサイクルの外で作られることが多いから ◦ 10Xでも以前ダッシュボードからの利用状況を手動で管理したが、メンテナンスし切れずに古びてしまった... • 主要なBIツールはAPIや監査ログを提供しているため、それを利用してexposureを自動生成できる ◦ 10XではTableau(API経由)、Looker Studio(監査ログ経由)、Connected Sheets(監査ログ経由)でメタデータを毎 週GitHub Actions経由で自動生成している ◦ 簡単にできます。上記エントリを参考にしてもらって、Timeeさんでも同様の事例が先日出ていました • 追跡可能性 (Traceability)にBIも考慮できているので、データ品質自体の向上にも繋がっている • ダッシュボードの棚卸しにも役に立っている ◦ 「BigQueryの監査ログによると、このdbtのmodelは全然使われてないな。不要そうだから、削除しよう」 ◦ 「あれ、CIでエラーが出ている。削除しようとしたdbtのモデルを参照しているダッシュボードがいるのか」 ◦ 「このダッシュボードはそもそも見られていないから、アナリストに連携してダッシュボードも削除して棚卸 ししよう」 41 実際に削除する前にCIで気付けるので便利! その他、カラムにPIIタグを振っておいて、PIIが出力される 可能性があるダッシュボード一覧を洗い出す、などにも使える!
©2023 10X, Inc. アジェンダ • 背景: 10XとStailerについて • メタデータ管理、いつどういう状況になったらやるとよい? ◦
10Xのデータマネジメント上の課題の遷移 • データディスカバリー課題に対するメタデータ管理の応用事例 ◦ dbt-osmosisによるカラムのdescriptionの自動伝播 • データ品質課題に対するメタデータ管理の応用事例 ◦ elementaryによるデータ品質の可視化 • データ基盤の運用改善に対するメタデータ管理の応用事例 ◦ elementaryによる安全にテーブルを撤退する方法 • アクティブメタデータ 42 Take Home Message1: メタデータ自体が目 的になることはないが、メタデータは目的達 成のための強力な手段になり得る!
©2023 10X, Inc. アジェンダ • 背景: 10XとStailerについて • メタデータ管理、いつどういう状況になったらやるとよい? ◦
10Xのデータマネジメント上の課題の遷移 • データディスカバリー課題に対するメタデータ管理の応用事例 ◦ dbt-osmosisによるカラムのdescriptionの自動伝播 • データ品質課題に対するメタデータ管理の応用事例 ◦ elementaryによるデータ品質の可視化 • データ基盤の運用改善に対するメタデータ管理の応用事例 ◦ elementaryによる安全にテーブルを撤退する方法 • アクティブメタデータ 43
©2023 10X, Inc. アクティブメタデータ 44 従来のメタデータ管理 アクティブメタデータ アクティブメタデータの所感(松本さん)のブログより引用
©2023 10X, Inc. アクティブメタデータの3つのステップと本発表の関連性 45 アクティブメタデータの所感(松本さん)のブログより引用 elementaryやBIからダッシュボードの メタデータ収集がCurationの例になっていた dbt-osmosisがCreationの例になっていた 安全にテーブルを撤退する方法がReversingの例
になっていた
©2023 10X, Inc. 発表者自身のアクティブメタデータに関する所感 • 発表者は「アクティブメタデータをやろう!」と思ってやったわけでは全くない ◦ 組織や事業の課題を解決しようとしていたら知らないうちに使っていた • とはいえ、従来のメタデータ管理と比較して、できることが広げられるし、より強力なことができるようになった!
◦ その割に「頑張らない」で運用できる ◦ エコシステムの発展による寄与が大きい ◦ 掛けるコストの割にゲインがかなり大きい、コスパよい(主観) • 現場のデータエンジニア / アナリティクスエンジニアの方へ ◦ 使える道具箱の中の一つに(アクティブ)メタデータを入れておくと、データマネジメント上の課題を解決する ときにレバレッジが効いてきます! • メタデータ管理のSaaSを提供するベンダーの方へ ◦ データマネジメント上の課題に取り組むデータエンジニアの力を十分に発揮させるためにも、アクティブメタ データを想定したAPIなどのメタデータの提供をお願いします! 46
©2023 10X, Inc. まとめ • 10Xでのデータマネジメントの課題の遷移を紹介 ◦ メタデータ自体の優先度は高くなかったが、他の課題に取り組むために自然と取り組んでいた • メタデータ管理の応用事例を3つ紹介
◦ データディスカバリーの課題 ◦ データ品質の可視化の課題 ◦ データ基盤の運用改善の課題 • アクティブメタデータ 47 Take Home Message2: 既存のメタデータだけでなく、既存のメタデータの拡張や他シス テムからの取り込みを行なうとメタデータはさらに強力な武器になり得る! Take Home Message1: メタデータ自体が目 的になることはないが、メタデータは目的達 成のための強力な手段になり得る!