Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

【R&D DevOps通信】データ分析基盤の分析用メタデータ管理 -1. 実現方法の検討-


本記事は Sansan Advent Calendar 2022 10日目の記事です。
adventar.org

こんにちは。研究開発部 Architectグループ データエンジニアの出相(デアイ)です。
データ分析基盤で分析をする際に必要となる分析用メタデータの管理・運用についての取り組みを連載にて紹介します。
初回は、分析用メタデータについての紹介と、管理を実現するための方法検討・決定において取り組んだことを書いていきます。



メタデータとは?

「データに関するデータ」を記されることが多く、データ自体・データの概念・データの関連性など幅広い範囲を表しますが、今回の記事で取り扱う分析用メタデータとは「分析者がデータ分析する際に必要とする、データ分析基盤上にあるデータについての情報」とします。
例えば「直近1週間のサービス別売り上げを決済日単位で集計したい」場合に必要となる

  • 決済情報テーブルはどれか
  • 決済日カラムはどれか
  • 決済情報テーブルはいつ更新されたものか( = データが古くないか)

等の情報のことです。

なぜ分析用メタデータ管理が必要なの?

データ分析基盤上のデータが小規模であったり分析者が限られている場合は、そこまで重要でないかもしれません。
取り扱うデータが多様になるにつれ、データ探索や検証に時間がかかるようになりますし、分析者の人数や所属部署が拡大することで分析ノウハウの共有も難しくなり、誤った解釈で分析するリスクが増えていきます。
分析業務外にかける工数やリスクを減らすため、必要な情報を検索しやすくまとめた分析用メタデータが必要となるのです。
DAMA日本支部監訳の「データマネジメント知識体系ガイド DMBOK 第二版」には、メタデータの役割の重要性を例えて

「メタデータを持たない組織は、図書目録のない図書館の様なものである。」
「図書目録は、必要な情報(図書館が所有する本と資料、保管場所)を提供するだけでなく、利用者が様々な着眼点(対象分野、著者、タイトル)から資料を見つけることを可能にする。」

と記されており、これが大変イメージしやすいかと思います。
弊社でもデータ分析基盤で取り扱うデータのデータソースや利用者が増加したことに伴い、整備する必要が出てきました。

分析用メタデータで管理したい項目は?

分析時に必要な項目を洗い出した結果、下記を管理対象としました。
ポイントはデータ分析基盤上のメタデータを表示するだけではなく、分析者が分析ノウハウを入力・共有できる自由記述項目を設けたことです。

  • データセット名
  • テーブル物理名
  • テーブル論理名
  • カラム物理名
  • カラム論理名
  • 更新タイミング(日次自動・週次自動・手動 等)
  • 最古データ日時(いつ時点のデータから使えるのか)
  • 最新データ日時(いつ時点のデータまで使えるのか)
  • 最新データ取得日時(データが最後に更新されたのはいつか)
  • データオーナー(データ内容の問い合わせ先)
  • 個人情報の有無
  • 自由記述(得られた知見。利用者に限定的ではなく全社員共通で有益なもの)

要件と優先度

メタデータを管理する方法を検討するため、まずは分析用メタデータ要件をざっくり洗い出します。

  • 上記管理したい項目が全て管理できること
  • 非エンジニアでも利用しやすいUIであること
  • 自由記述欄は利用者が自由に更新できること
  • データエンジニアの運用負荷ができる限り低いこと
  • コスト(金銭面)がなるべく低いこと

これらを元に優先度を付与した要件と優先度のチェック表を作成します。
この表を元に今回どのような方法でメタデータ管理をするか検討します。

要件と優先度

実現方法の調査と比較

チームメンバーの協力により、いくつかの実現方法候補が出てきました。
それらを先の表に当てはめていきます。

メタデータ管理方法の比較

ここに掲載したツール以外でもメタデータ管理に関するものは多々ありますが、
まずは形にして運用開始し、そこで出た課題より今後より良い方法を探る方針で進めるために表記した4つに絞りました。

この比較表に基づいた結果、下記の観点からスプレッドシートでのメタデータ管理を実施することに決めました。

  • 優先度高の項目を最も満たしている
  • ツール導入のハードルが低い
  • 更新スクリプトは自作の必要があるが、広く使われている手法のためノウハウを調べることが容易

まとめ

今回は、データ分析基盤での分析用メタデータの必要性および、メタデータ管理実現方法の検討を紹介しました。
メタデータ管理を導入するにあたり、まずは必要となる要件を洗い出す→実現するためのチェックポイントを決める→手法を数件比較し、最も導入しやすくメリットがある方法に決定する、という流れを踏むことで現状に沿った手法を選ぶことができました。
今後メタデータ管理の実装や運用・直面した課題についても紹介していきたいと思いますので、次回以降もどうぞお楽しみに!

© Sansan, Inc.