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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kenta yamamoto
July 11, 2023
Technology
1.7k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データカタログ導入における課題と対応事例
データ基盤管理の考え方
〜データカタログ、データレイクの極意〜
2023年07月11日
https://findy.connpass.com/event/288091/
kenta yamamoto
July 11, 2023
More Decks by kenta yamamoto
See All by kenta yamamoto
ZOZOのデータカタログ内製事例と、 データカタログを整え続けるための仕組みづくりについて
yamamoto7
0
3.2k
Other Decks in Technology
See All in Technology
SmartHR Engineering Team Deck
smarthr
1
2.9k
Flutter × BLE Centralを自前Pluginで実装する設計パターン - MethodChannel / EventChannelで作る双方向ブリッジの実践 / Building Custom Flutter BLE Central Plugins: Bidirectional Bridging with Method & Event Channels
bitkey
PRO
0
120
会社紹介資料 / Sansan Company Profile
sansan33
PRO
24
430k
【AG-UI × A2UI × MCP Apps】Generative UIをやさしく解説する
nrinetcom
PRO
1
140
20260804_Q4AzureUpdateBite_FabricDataAgentの精度を高める設計.pdf
matayuuu
1
150
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
280
AI開発に用いられるHPC技術について
gpuunite_official
0
120
My broken English still works: speaking at global OSS events
naruoga
0
120
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
0
160
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.5k
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
220
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
The Spectacular Lies of Maps
axbom
PRO
1
930
Skip the Path - Find Your Career Trail
mkilby
1
190
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Test your architecture with Archunit
thirion
1
2.3k
Automating Front-end Workflow
addyosmani
1369
210k
Designing Experiences People Love
moore
143
24k
Rails Girls Zürich Keynote
gr2m
96
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
490
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