
[データ分析基盤構築記 ~データカタログ編~] Notion + dbt + PipeRiderでデータカタログを作ってみた
はじめに
株式会社PREVENT、データエンジニアの俵です!
前回は弊社ダッシュボードツール『Apache Superset』についてご紹介しました。
さて、今回はデータ分析基盤構築記の早くも最終回となるデータカタログ編です。
近年急速に注目を集めているデータカタログについて、その概要と弊社における取り組みをご紹介します。
データカタログとは
データカタログは、文字通りデータのカタログ(目録)です。
データカタログを参照することで、組織内データの所在や種類、型といった情報(メタデータ)を得ることができます。
つまり、データカタログはメタデータの管理システムであるといえます。
データカタログが近年急速に注目を集めている背景として、データの民主化が挙げられます。
データの民主化
データ、ひいてはデータ分析は従来一部の専門家(データサイエンティストやアナリスト)のみが行う特別な業務でした。
それがDWH技術の発展やBIツールの登場、DX実現への期待の高まりなどから、一部の専門家だけでなく全社員がデータを扱い、そこからインサイトを得るための取り組みが始まりました。
これをデータの民主化と呼びます。
データの民主化を進める上では、まず全社員が組織内の必要なデータを検索し、アクセスできることが求められます。
そして、この検索及びアクセス性の向上がデータカタログの役割の1つです。
PREVENTのデータカタログ
上で述べたように、データカタログの重要性は近年ますます高まっており、様々なプロダクトやサービスが登場しています。
また、企業によってはデータカタログを自社に最適化するため、内製しているといった事例も耳にするようになりました。
弊社では、データカタログの要件を次のように定めました。
全社員がアクセス可能であり、分かりやすく使いやすいUIであること
よろずやのデータマート内のメタデータを管理すること
基本的にノーコードで様々なメタデータを柔軟に追加・更新できること
ただし、テーブルの列情報は運用負荷を考慮し、コードとしてGitで管理できること
データや分析に関する知見を溜め、共有するプラットフォームとして機能すること
コストや運用面でスモールスタートできること
そしてこれらの要件を満たすべく、ドキュメント管理ツールのNotion、データモデリングツールのdbt、データ品質管理ツールのPipeRiderを組み合わせたデータカタログを構築しました。
Notion

Notionは言わずと知れた、Wikiやドキュメント、プロジェクト管理ツールです。
弊社では、データカタログ構築以前からNotionを全社的に導入しており、全社員が特定のページにアクセスできる状況でした。
Notionが持つ機能として、データベースがあります。
データベースはページを表形式で管理する機能であり、この機能を用いてデータカタログを構築しました(下図)。


データカタログの1行(1ページ)がデータマートの1テーブルに対応し、列方向に各種メタデータが記載されています。
Notionデータベースは様々な種類の型(テキスト, 数値, セレクト, 日付,,, .etc)を列ごとに指定することができるため、効率的なメタデータ管理が可能です。
また、各ページに利用者がコメントを追加することで、データや分析に関する知見を社内で共有することができます。
そして、これらの機能をノーコードで誰もが簡単に利用できることがNotionをデータカタログに用いるメリットです。
一方、ノーコードであるが故にテーブルの列情報といった多量かつ比較的高い頻度で追加・更新があるメタデータを適切に管理することは難しいと感じました。
そこで、次に示すdbtと組み合わせることでこの課題の解決を図りました。
dbt

以前こちらの記事でもご紹介しましたが、dbtはSQLを用いたデータモデリングツールです。
dbtはドキュメンテーション機能を持っており、データモデルやその列、データソース等に関するメタデータをYAML形式で記述することができます。
これらは当然Git管理が可能であり、フォーマッターやリンターを用いることができ、他のツールへの移行も容易です。
PipeRider

そして最後にご紹介するPiperiderは、dbtと組み合わせて使用するデータ品質管理ツールです。
dbtに記述したメタデータはもちろんのこと、データの各種統計情報を確認することができます(下図)。
これによって、SQLを叩かずともデータの概要や中身についてデータ活用者が把握することができます。
また、副次的な効果としてデータの異常値検出に繋がり、データの品質を高めることができました。


構成と活用イメージ
ここで簡単にデータカタログの構成とその活用イメージを示します。

データ活用者はデータカタログというコンパスを得ることで、よろずやという社内データの大海原を安全に航海し、目的のデータに辿り着くことができます。
従って、データカタログはデータ活用者にとって必需品であり、その品質は常に高く保たれる必要があります。
データカタログを含めたデータ品質の向上と担保については、今後とも継続して取り組む必要のある重要なテーマであると再認識しました。
まとめ
ドキュメント管理ツールのNotion、データモデリングツールのdbt、データ品質管理ツールのPipeRiderを組み合わせたデータカタログを構築しました。
これによって、全社員がよろずやのデータにアクセスできる環境が整い、データ活用に対する機運が高まりました。
また、今後もデータ品質の向上や担保に努め、データ活用の文化を社内に根付かせるべく取り組んでいきたいと考えています。
おわりに
データ分析基盤構築記はこれにて最終回となります!
過去回を振り返ると、弊社のデータ分析基盤は次のような流れで成長を遂げてきました。
ETL基盤構築:Embulkを用いたデータ収集処理
よろずや構築:dbtを用いたデータのクレンジング・統合・集計処理
ダッシュボード構築:Apache Supersetを用いたデータの可視化
データカタログ構築:全社的なデータ利活用の推進
データ分析基盤の最適なアーキテクチャは、扱うデータ量やビジネスモデル、その他様々な制約によって左右されます。
しかし、データ基盤の役割としては、データを生産者から利活用者に届けるという点で一致するのではないでしょうか。
したがって、データ基盤を構築する際は、まずデータ利活用が進んでいる状態を想像し、そこを見据え逆算して構築する必要があると考えています。
また、スケーラビリティを確保しつつスモールスタートすることで、データ利活用者のフィードバックを早い段階で得て改善することも重要です。
データエンジニアリングは注目を集め始めてまだ日が浅いこともあり、技術の進歩が目覚ましく、またそれを担うデータエンジニアは日々手探りの状態です。
しかし、幅広い技術に触れることができ、そして今後ますます重要性が増す”データ”の価値を引き出すデータエンジニアという役割に私は強い魅力を感じています。
本ブログ記事が、データエンジニア見習いもしくはこれから志す方にとって何らかの参考になれば幸いです。
データエンジニア募集!
弊社では、データ分析基盤を支え、より進化させるデータエンジニアを募集しています!
また、今後はデータ品質の向上やデータガバナンスの確立など、データマネジメントの強化にも積極的に取り組んでいきます。
データエンジニアリングやデータマネジメントに興味のある方は、カジュアルにお話をしませんか?