エンジニアはじめにこんにちは。CTO室プラットフォーム開発部のshigeniiと申します。社内では全社横断のデータ基盤の運用保守や改善、データ活用推進の業務を担当しています。今回はデータ活用を推進する目的で対応を進めた「データのカタログ化」についてお話をさせていただきたいと思います。データのカタログ化とは「データのカタログ」とは「データに関する情報(メタデータ)」を指します。「データに関する情報」には様々なものがありますが、具体的には下記のようなものが挙げられます。他にもいろいろと考えられますが、これらの情報をまとめ上げることをここでは「データのカタログ化」と呼んでいます。データに関する情報(メタデータ)を集約したものが「データカタログ」と呼ばれるものになります。補足説明:「データに関する情報」は一般的に「メタデータ」と呼ばれるものです。メタデータとは「データについてのデータ」という意味になります。データをカタログ化することにより実現したいことピクシブではイラストコミュニケーションサービス「pixiv」を始めとして、数多くのプロダクトを展開させていただいており、とても多くのユーザー様にご利用いただいています。各プロダクトから収集したデータをデータベースに格納し、それらを「カタログ化」することにより、必要な正しい情報を容易に引き出せるようにすることでデータの活用を促進し、ユーザーにより多くの価値を届けたいと考えています。弊社内ではデータの扱いやデータ利活用の相談など、データに関すること全般に関する問い合わせの窓口を開設しています。窓口には様々な相談が届きますが、その中でも施策の分析等の為に「こういうデータを取得したいのだけど」といった相談が数多く寄せられます。その度に、社内の有識者にどのデータを参照するべきか?このデータで問題はないか?といった確認を随時行う必要があり、解決までに時間がかかる状況となっていました。この状況をできるだけ改善していきたいといったことが背景にありました。現状の問題点データを活用したいと考えたとき、まずは必要なデータがどこにあるかを調べて、そこにたどり着く必要があります。具体的な手段としては下記が考えられます。社内で運用しているCMSなどのドキュメント類を探すデータベース上のテーブルに格納されているデータをのぞいてみる関連するコードを探す有識者に聞く上記のいずれかでデータにはたどり着くことができますが、たどり着くまでに貴重な時間を要しています。必要なデータにたどり着いたとき下記のようなケースが多々見受けられます。「それっぽいデータは見つかったけど説明が書かれていないので良いよくわからない。「こちらとあちらで同じようなことが書いてあるけど微妙に違う。「データを見るとある日時で更新が止まっている。これらは現在使われているのだろうか?」これらの問題はサービスの成長とともにデータの量や種類が増え、さらに拡大していくと予想できます。現状の問題点を踏まえた上での解決策として、下記の2点を実現することを考えました。データに関する情報を一元で管理し、それらを最新の状態に保つしくみを作ること必要なデータに容易にたどり着けるしくみを作ることまずはデータに関する情報を一元で管理し、それらを最新の状態に保つしくみです。Truth(信頼できる唯一の情報源)」が確立されていませんでした。このため、経年を経て一部の情報が意図せず誤った情報に変わってしまっているものも見受けられました。一元管理する方法としては様々な選択肢が考えられますが、「データに関する情報をデータアセットを作成するSQLスクリプトにdescriptionとして記載し、それをコードリポジトリにて管理する」という方針を取りました。データアセットとはデータベース上の「テーブル」や「ビュー」を指します。リポジトリ上のSQLスクリプトのdescriptionが更新された際、その情報でデータベース上のアセットのdescriptionを更新するようなしくみを作りました。データアセットを作成するSQLスクリプトのdescriptionでデータに関する情報を管理するということは、データが格納されているデータベース上のメタデータとして情報を管理するということになりますが、この利点は後述いたします。データベースのUI上でデータアセットの情報を更新してしまうと更新の履歴を容易に確認することができません。この為、データに関する情報は変更管理がしやすいリポジトリで管理するようにしました。次に「必要なデータに容易にたどり着けるしくみを作ること」という点についてです。データに関する情報を一元で管理できるようになったら、次はそれらの情報に容易にアクセスできるようにする必要があります。情報を一元管理する場所は様々なものが考えられますが、「データベース上のメタデータ」として管理する方針としました。これは、データに関する情報はデータを格納するデータベース上のデータアセットの説明として記載しておくのが最も管理がしやすく、そこから他への転用もしやすいことが理由です。ベンダー各社からはデータのカタログを管理する「データカタログ」と呼ばれるプロダクトが各種存在していますが、昨今のクラウドベンダーはデータベースのプロダクトと共にデータカタログのプロダクトを合わせて提供しています。Cloudプロダクトの情報をカタログとして管理できる機能を保有している「Dataplex」というものがあります。cloud.google.comDataplexからはBigQuery上の各データアセットに格納されたデータに関する情報(メタデータ)を容易に検索することができます。加えて下記の理由から、データカタログとしてDataplexの機能を利用する方針としました。データベースとデータカタログのどちらも同じベンダーのプロダクトのため親和性が良いデータカタログを利用するのに初期費用がかからない。データカタログの検索に費用がかからない(APIを利用する場合は費用がかかるようです)権限の管理がしやすいDataplexにはデータカタログ以外にもBigQuery上のデータを扱いやすくする機能があるさらなる改善に向けてデータに関する情報を一元で管理し、必要なデータに容易にたどり着けるしくみを作ることで、結果的に現状の問題点をだいぶ改善することはできました。glossary」といったものがあります)、よりデータ活用しやすいデータ基盤を作っていたきたいと考えています。Cloudの「Dataplex」はデータファブリックによる大規模な分散データやガバナンスの管理ができるプロダクトとなっています。BigQueryとの親和性がとても高く、「データリネージ」も既に導入をしました。inside.pixiv.blogまた、Dataplexには現在も様々な機能強化や機能追加がなされています。いった機能をデータ基盤にうまく取り入れ運用し、データ活用の推進を行うことで、より良いピクシブのプロダクトをユーザーに届けていきたいと考えています。ピクシブでは、一緒にプロダクトを盛り上げてくれる方を大募集しています。ご興味のある方は、以下のリンクから是非ご応募下さい。hrmos.cohrmos.coshigenii2022年1月に中途入社。全社を横断したデータ基盤の運用保守や改善、データ活用の推進、データマネジメント業務を担当しています。MEETUP2024-10-30pixivというシステムはどんな形をしているのか、それはなぜか。insideは、ピクシブ株式会社が運営するオウンドメディアです。Reserved.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。