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
1.1k
データカタログ導入における課題と対応事例
データ基盤管理の考え方
〜データカタログ、データレイクの極意〜
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
2.3k
Other Decks in Technology
See All in Technology
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
380
Taming you application's environments
salaboy
0
190
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
190
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
130
TypeScript、上達の瞬間
sadnessojisan
46
13k
Platform Engineering for Software Developers and Architects
syntasso
1
520
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
380
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Docker and Python
trallard
40
3.1k
KATA
mclloyd
29
14k
Speed Design
sergeychernyshev
25
620
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
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