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
kenta yamamoto
July 11, 2023
Technology
1
760
データカタログ導入における課題と対応事例
データ基盤管理の考え方
〜データカタログ、データレイクの極意〜
2023年07月11日
https://findy.connpass.com/event/288091/
kenta yamamoto
July 11, 2023
Tweet
Share
More Decks by kenta yamamoto
See All by kenta yamamoto
ZOZOのデータカタログ内製事例と、 データカタログを整え続けるための仕組みづくりについて
yamamoto7
0
1.9k
Other Decks in Technology
See All in Technology
検証を通して見えてきたTiDBの性能特性
lycorptech_jp
PRO
7
3.8k
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.3k
JAWS-UG Bedrock Claude Night
yamahiro
3
620
開発パフォーマンスを最大化するための開発体制
ham0215
2
450
Cracking the KubeCon CfP
inductor
2
250
VSCodeの拡張機能を作っている話
ebarakazuhiro
1
620
地理空間データ可視化・解析・活用ソリューション Pacific Spatial Solutions (PSS)
pacificspatialsolutions
0
300
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
780
20240418_Google ColabにLLMが搭載されたようなのでPython x データ分析の勉強方法を考えてみる
doradora09
0
140
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
550
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
270
Building Dashboards as a Hobby
egmc
0
240
Featured
See All Featured
Unsuck your backbone
ammeep
663
57k
Done Done
chrislema
178
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
243
12k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
17
1.4k
Code Reviewing Like a Champion
maltzj
514
39k
How to Ace a Technical Interview
jacobian
272
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
20
1.9k
The Cost Of JavaScript in 2023
addyosmani
16
3.9k
Bash Introduction
62gerente
604
210k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Art, The Web, and Tiny UX
lynnandtonic
289
19k
Building Applications with DynamoDB
mza
88
5.6k
Transcript
データカタログ導入における課題と対応事例 データ基盤管理の考え方 〜データカタログ、データレイクの極意〜 2023年07月11日 Copyright © ZOZO, Inc.
1 株式会社ZOZO ZOZOTOWN開発本部 ZOZOTOWNWEB部 バックエンド1ブロック 兼 バックエンドリプレイスブロック 山本 健太
© ZOZO, Inc. 株式会社ZOZO ZOZOTOWN開発本部 ZOZOTOWNWEB部 バックエンド1ブロック/バックエンドリプレイスブロック 山本 健太 2020年4月に新卒で入社
ZOZOTOWNのWEBバックエンド、マイクロサービスAPIなど の保守運用・開発をするチームに所属 最近はZOZOTOWNのシステムリプレイスなどを担当してい ます 2
© ZOZO, Inc. https://zozo.jp/ 3 • ファッションEC • 1,500以上のショップ、8,400以上のブランドの取り扱い •
常時95万点以上の商品アイテム数と毎日平均2,900点以上の新着 商品 を掲載(2023年3月末時点) • ブランド古着のファッションゾーン「ZOZOUSED」や コスメ専門モール「ZOZOCOSME」、靴の専門モール 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など
© ZOZO, Inc. 4 https://zozo.jp/zozomat/ • 自宅にいながら簡単に高精度な足の3D計測ができる計測マット • 計測したデータをもとに、自分の足型と靴の“相性度”
を表示 • NIKEやCONVERSEなど5,587型以上のアイテムに対応 (2022年12月末時点)
© ZOZO, Inc. 5 https://zozo.jp/zozoglass/ • 自宅で簡単・高精度にご自身の顔の肌の色を計測できる フェイスカラー計測ツール • ECにおけるコスメ購入時の課題であった「色選び」に関する
不安や悩みを解消 • 肌の色を構成する成分、ヘモグロビン量とメラニン量を画像 から推定 • コスメ専門モール「ZOZOCOSME」で取り扱うベースメイクの 一部に対応 • 計測者数128万人を突破(2022年12月末時点)
© ZOZO, Inc. https://wear.jp/ 6 • ファッションコーディネートアプリ • 1,600万ダウンロード突破、コーディネート投稿総数は1,300万件以上 (2023年3月末時点)
• ピックアップタグから最新のトレンドをチェック • コーディネート着用アイテムを公式サイトで購入可能 • WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレント・デザ イナー・インフルエンサーといった各界著名人も参加
© ZOZO, Inc. 7 https://fbz.zozo.com/ • ZOZOTOWN出店企業の自社ECのフルフィルメント支援サービス • 自社EC運営のための撮影・採寸・梱包・配送などの各種フルフィルメント業務
を、ZOZOTOWNの物流センター「ZOZOBASE」が受託 • 設備投資・人件費・在庫保管料などの負担なしで、自社ECの運営が可能 • 各販売チャネル(自社EC・店舗・ZOZOTOWN)の在庫連携が可能。 これにより、商品欠品による販売機会の損失を最小化
© ZOZO, Inc. はじめに 8
© ZOZO, Inc. 今回のお話 9 1. データカタログに関するお話 2. データカタログ導入・運用に関する一般的な話題や課題について
3. 課題を弊社ではどのように解決したか紹介
© ZOZO, Inc. 前提 10
© ZOZO, Inc. データカタログとは 11 データベース、データレイクなどのメタデータや形式、所有者情報をまと めた辞書のようなもの
© ZOZO, Inc. 以下のような機能を持つこともある 12 • データリネージ: 生成から廃棄までのライフサイクルを追う機能 •
収集: データソースからメタ情報を定期収集する機能
© ZOZO, Inc. 導入には大きく3パターンほど 13 1. (ほぼ)100%外部サービスに頼る 2. 一部内製して、一部外部サービスに頼る
3. (ほぼ)100%内製する
© ZOZO, Inc. 弊社では 14
© ZOZO, Inc. 弊社では 15 1. (ほぼ)100%外部サービスに頼る 2. 一部内製して、一部外部サービスに頼る
3. (ほぼ)100%内製する
© ZOZO, Inc. 16 https://techblog.zozo.com/entry/data-catalog 弊社で導入したデータカタログの詳細 ※テックブログ、別のLTで紹介したことがあるため具体的な機能やロジックについては省略しますm(_ _)m
© ZOZO, Inc. 17 テーブル定義書
© ZOZO, Inc. 18 カラム詳細
© ZOZO, Inc. 19 ER図詳細ページ
© ZOZO, Inc. 20 データを閲覧する人 データのメタ情報を追加する人 ER図を閲覧・作成する人 データカタログ、ER図を描画するウェ ブサイト 推定ロジックなどを持つ定期実行バッチ
システム概要 テーブル・カラムの情報 メタデータを取得する クエリを実行 DBから取得した情報を POST Vue icon from: https://github.com/vuejs/art Ruby icon from: https://www.ruby-lang.org/en/about/logo/ ZOZOTOWNのデータベース(SQL Server) MySQL
© ZOZO, Inc. 導入前の課題 21
© ZOZO, Inc. 導入前の課題 22 • 誰がデータカタログを利用する? • 誰がデータカタログを作る?
• 外部サービスを利用する?もしくは内製する?
© ZOZO, Inc. 弊社では元々公開されていたデータカタログが あった 23 • テーブルリストからメタデータまで、手動で更新していた
• 手動で管理しているER図もあった • 鮮度は低かったが需要が高く、エンジニア非エンジニア関わらず多く の人が利用していた
© ZOZO, Inc. 誰がデータカタログを利用する? 24 • データアナリスト、データエンジニア → メタはもちろんのこと、データリネージなど高度な情報もあると嬉し
い • アプリケーション開発エンジニア → テーブル定義、リレーションなどを一通り知りたい • ビジネスユーザー → テーブル定義、リレーションなどを一通り知りたい
© ZOZO, Inc. 誰がデータカタログを利用する? 25 弊社では... テーブル定義、リレーションを一通り知れるところまでをターゲットに進め た
© ZOZO, Inc. 導入までのスケジュール 26 検討開始 SQL ServerというDBをメインで利用していたが、そもそも対応製品が少な かったということもあり、100%内製の方向で検討
一旦ミニマムに内製してみて、上長に相談 β版社内公開(developのDBと繋げた版を公開) メタデータ収集、本番DBと同期、ルール整備などの活動 2020年06月頃 2020年08月頃 2021年02月頃 以降…
© ZOZO, Inc. 外部サービスを利用する? もしくは内製する? 27 • 利用用途、対象の環境によって解法は様々
• 弊社ではSQL Serverをメインで利用していたため製品の選択肢がか なり絞られていた。また、内製の難しいデータリネージ機能などはス コープ外としていたこともあり100%内製を選んだ • 和製製品含めデータカタログ関連の優秀な製品が増えてきているの で、これから検討であれば選択肢は多い
© ZOZO, Inc. 導入後の課題 28
© ZOZO, Inc. 一般的に挙がる導入後の課題 29 1. データオーナーへ情報入力を依頼したが中々入力して貰えない、テー ブル数が多すぎて依頼するのが大変 2.
情報を最新化、更新、正確さを維持するのが大変 3. 情報維持のためのデータの標準化を考える必要がある
© ZOZO, Inc. 欲しい情報 30 • テーブル、カラムの説明文 ◦ SQLのメタデータとして保存されている場合もある
• テーブル同士のリレーション ◦ 外部キー制約で結ばれている場合もある
© ZOZO, Inc. データオーナーへの情報入力依頼 31 • よく利用されているテーブルを洗い出し ◦ テーブルが数千個あったため、ある程度絞り込む必要あり ◦
本番DBで叩かれているクエリを集計し各テーブルへのアクセス数を 集計 ◦ 1/3ほどのテーブル数で総アクセスの99.9%をカバーできることがわ かったので、そのテーブルをターゲットに担当者を調査 ◦ スプレッドシートでテーブル一覧と担当者一覧を載せ各部署へ依頼 したところ、気合と優しさで快く入力してくれた
© ZOZO, Inc. 情報を最新化、更新、正確さを維持 32 • 最新化 ◦ 毎日本番DBから差分を取り込み、最新情報を維持 •
正確さ ◦ 正確じゃない情報、確実に正しい情報を区別して表示 ◦ メタは特に正確な情報が求められるが、正確ではなくても有用な情 報があれば区別して表示することが大事
© ZOZO, Inc. データの標準化 33 • コード値 ◦ MySQLで言うENUM型のような定義はせず、運用でカバーしていた ◦
Descriptionに【コード値】と入れてもらうことで、データカタログ側で コード値なカラムを認識可能にした
© ZOZO, Inc. 34 ZOZOTOWN バックエンドエンジニア https://hrmos.co/pages/zozo/jobs/0000014 データエンジニア https://hrmos.co/pages/zozo/jobs/0000156 採用情報
None