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
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.2k
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile
hr01
0
54k
【shownet.conf_】革新と伝統を融合したファシリティ
shownet
PRO
0
320
LINEヤフー新卒採用 コーディングテスト解説 実装問題編
lycorp_recruit_jp
1
12k
VS CodeでF1〜12キーつかってますか? / Do you use the F1-12 keys in VS Code?
74th
2
290
15 JSON serializers for Ruby
okuramasafumi
2
100
Assisted reorganization of data structures
ennael
PRO
0
250
過去のインプットとアウトプットを振り返る
diggymo
0
110
【shownet.conf_】AI技術とUX監視の応用でShowNetの基盤を支えるモニタリングシステム
shownet
PRO
0
360
たった一人で始めた音楽制作が気がついたら会社公認の部活動になっていた話〜組織の垣根を超えるコラボレーションを実現するには〜 / On-KAG-bu
piyonakajima
0
210
ITエンジニアとして知っておいてほしい、電子メールという大きな穴
logica0419
6
1.1k
Oracle GoldenGate 23ai 導入Tips
oracle4engineer
PRO
1
260
How CERN serves 1EB of data via FUSE
ennael
PRO
0
16k
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
Building Applications with DynamoDB
mza
90
6k
The Invisible Customer
myddelton
119
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
125
18k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
Mobile First: as difficult as doing things right
swwweet
222
8.8k
No one is an island. Learnings from fostering a developers community.
thoeni
19
2.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
59k
Writing Fast Ruby
sferik
626
60k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
37
1.7k
Code Review Best Practice
trishagee
62
16k
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