BigqueryのデータについてDataplexによるメタデータ設計を考えてみた #cm_google_cloud_adcal_2024

BigqueryのデータについてDataplexによるメタデータ設計を考えてみた #cm_google_cloud_adcal_2024

Clock Icon2024.12.20

データ事業本部のsutoです。
この記事はクラスメソッドの Google Cloud アドベントカレンダー2024 の20日目の記事です。

Bigqueryのテーブルを中心としたGoogle Cloud上のデータに対してメタデータ管理を行うとしたらどのような整理をしたらよいのかを考えてみました。

今回はデータカタログサービスである「Dataplex」を利用して、連携したBigqueryのテーブルのメタデータ付与をやってみました。

Dataplexとは

Dataplexは、分散されたデータの統合・管理を自動化するためのフルマネージドサービスです。(以前はData Catalogというサービスでした。)
特徴として以下が挙げられます。

  • 組織内の複数の Google Cloud プロジェクトにまたがるデータを統合してデータメッシュ (後述) を構築する
  • データの権限管理を一元化する
  • メタデータを付けることでデータをカタログ化し、検索しやすくする
  • データの品質やライフサイクル (生成過程) を管理する

今回のテーマは「データのカタログ化」の部分が中心となります。

https://cloud.google.com/dataplex/docs/introduction?hl=ja

Dataplexでどのように整理するか

先に基本方針をまとめると、以下の要領となります。

  • BigQueryでテーブル定義で設定できる項目はBigQuery側で設定する
    • データソースをDataplexに連携することで自動取り込みできるため
  • 上記以外で<データ検索時のキーワードとして利用したい項目名>をDataplexの「タグテンプレート」と「用語集」で設定する
    • タグテンプレートには、「項目名と設定値」のセットで定義したいキーワードを登録
    • 用語集には、カラムに対してどのようなビジネス属性があるのかを表すキーワードを登録

メタデータの種類

一般的にメタデータは次の3種類に分けることができます。

メタデータの種類 内容 項目の主な例
テクニカルメタデータ ITにおけるメタデータ データセット (スキーマ、テーブル、カラム、データ型、キーなど)、 データリネージ、 (ETLジョブなどのデータの変遷、変換方式など)、 BIツールのプロジェクト名やダッシュボード名 etc
ビジネスメタデータ 業務に関するメタデータ 業務システム名、 データベース内のデータ管理者、 システムの管理部署名、 業務におけるデータのセキュリティレベル、 上記を表すラベル付用の情報(タグ、ビジネス用語) etc
オペレーショナルメタデータ システムを運用する過程で作られるメタデータ バッチやジョブの実行履歴や実行スケジュール etc

利用する機能

  • BigQueryのテーブル情報:Dataplexのテーブル取り込み時に自動連携されるテクニカルメタデータは、なるべくデータソース側に付与する
    • 主に、データ型、Nullの許容、ポリシータグ、description がある
  • Dataplexのタグテンプレート:1つのタグテンプレート内に「フィールドと値」のペアのセットで定義したいキーワードを複数登録する
    • ドキュメント上ではビジネスメタデータを付与するための機能として紹介されている
    • テーブル定義側で設定できない項目をメタデータとして登録するために利用する
  • Dataplexの用語集:
    • データ検索に利用するため、データ管理の観点で使用される専門用語などを定義するための機能
    • カテゴリの仮階層を自由に設計して整理することが可能
  • Dataplexのリネージ情報:
    • Workflow、DataformなどのBigqueryテーブルのリネージ情報は、Dataplex取り込み時に自動連携される

メタデータとして管理したい項目を考えてみる

本ブログでは、私の中で考えた「一般論としてメタデータにしておくと良いと思った項目」を以下に挙げて整理してみました。
Dataplexのタグテンプレートには「テンプレートギャラリー」というGoogle Cloudで提供する項目例もあるので、そちらも参考にしています。

※あくまで個人の考えで整理したものであり、最適な設計と登録先の使い分けは各々で検討することが必要です。

カテゴリ 項目名 メタデータの種類 登録先 備考
データ管理者 データオーナー ビジネスメタデータ タグテンプレート
データ管理者 データオーナー連絡先 ビジネスメタデータ タグテンプレート
データ管理者 データスチュワード ビジネスメタデータ タグテンプレート
データ管理者 データスチュワード連絡先 ビジネスメタデータ タグテンプレート
テーブル詳細 テーブルの日本語名 ビジネスメタデータ テーブル情報 descriptionに登録する
テーブル詳細 データ蓄積方法 オペレーショナルメタデータ タグテンプレート
テーブル詳細 データ更新頻度 オペレーショナルメタデータ タグテンプレート
テーブル詳細 データ保持期間 オペレーショナルメタデータ タグテンプレート
テーブル詳細 大文字小文字の区別 ビジネスメタデータ タグテンプレート
テーブル詳細 個人情報の有無 ビジネスメタデータ タグテンプレート
テーブル詳細 データの公開レベル ビジネスメタデータ タグテンプレート
カラム情報 データ型 テクニカルメタデータ テーブル情報
カラム情報 Null許容の有無 テクニカルメタデータ テーブル情報
カラム情報 列レベルセキュリティ テクニカルメタデータ テーブル情報 ポリシータグで登録する
カラム情報 行レベルセキュリティ テクニカルメタデータ タグテンプレート 行レベルアクセスポリシーを記載
カラム情報 個人情報の有無 ビジネスメタデータ タグテンプレート
カラム情報 暗号化の有無 ビジネスメタデータ タグテンプレート
カラムオプション プライマリキー テクニカルメタデータ 用語集
カラムオプション 外部キー テクニカルメタデータ 用語集
カラムオプション パーティションキー テクニカルメタデータ 用語集
カラムオプション クラスタリングキー テクニカルメタデータ 用語集
リネージ情報 ETLジョブ テクニカルメタデータ リネージ
リネージ情報 最新の ETL ジョブの実行時間 テクニカルメタデータ リネージ
リネージ情報 ETLジョブのソーステーブル オペレーショナルメタデータ リネージ
組織階層 部署名 ビジネスメタデータ 用語集
システム分類 アプリケーション名 ビジネスメタデータ 用語集
専門用語 専門用語 ビジネスメタデータ 用語集 一般的な専門用語
専門用語 社内用語 ビジネスメタデータ 用語集 社内でのみ使われている造語

実際に整理してみた

準備

実際に前述で示した項目をDataplexに設定してみたいと思います。

今回の検証には、ECサイトでよくありそうなMasterテーブルとTransactionテーブルから以下のような加工テーブル「p_sales」を作成しました。こちらをもとに検証していきます。

p_sales

スクリーンショット 2024-12-03 155722

スクリーンショット 2024-12-03 155739

  • 「説明」欄には、事前にテーブルの日本語名、カラムの日本語名を設定済み
  • 「ポリシータグ」には、列レベルセキュリティを表すものとして以下のように事前作成済み

スクリーンショット 2024-12-03 155908

このテーブルをDataplexの画面上で確認すると以下のような状態となっています。
description、データ型、Nullの許容、ポリシータグはすでに確認できるようになっていますので、さらに必要なメタデータをタグテンプレートと用語集で登録していきます。

スクリーンショット 2024-12-03 163856

スクリーンショット 2024-12-03 163908

まず「タグテンプレート」を作成していきます。
Dataplex画面の「タグテンプレート」から「タグテンプレートを作成」を選択します。

スクリーンショット 2024-12-05 144937

テンプレート名、フィールド名、データ型など必要パラメータを入力して作成していきます。

スクリーンショット 2024-12-05 150951

スクリーンショット 2024-12-05 151240

次に用語集を作成します。
Dataplex画面の「用語集」から「ビジネス用語集を作成」を選択し、登録していきます。

スクリーンショット 2024-12-05 162043

今回は、用語集、カテゴリ、キーワードを以下のように作成しました。

スクリーンショット 2024-12-05 165107

Bigqueryテーブルにメタデータ付与

上記設定内容をテーブルとカラムに付与した結果が以下となります。

スクリーンショット 2024-12-06 111700

スクリーンショット 2024-12-06 111743

設定したタグテンプレート名や用語集をクリックすると、フィールドと設定値や用語集の説明文がポップアップで表示されます。

スクリーンショット 2024-12-06 111826

スクリーンショット 2024-12-06 111842

また、検索においてもタグテンプレート名、タグテンプレート内フィールドの値で絞り込みできるほか、用語集でキーワード検索すると、設定したデータセットが検索でヒットさせることができます。

スクリーンショット 2024-12-06 112323

さらにキーワード検索で以下のように入力すれば、ポリシータグ名でデータセットを検索することもできます。

スクリーンショット 2024-12-06 112440

さいごに

Bigqueryテーブルのメタデータ管理をDataplexでどのように整理するかの1例としてご紹介させていただきました。
利用者やその組織ごとにニーズは様々ありますが、「何から手をつけてどう整理するべきかイメージが湧かない」方々の一助となれば幸いです。

以上

明日12/21はみかみさんです。よろしくお願いします!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.