BigqueryのデータについてDataplexによるメタデータ設計を考えてみた #cm_google_cloud_adcal_2024
データ事業本部のsutoです。
この記事はクラスメソッドの Google Cloud アドベントカレンダー2024 の20日目の記事です。
Bigqueryのテーブルを中心としたGoogle Cloud上のデータに対してメタデータ管理を行うとしたらどのような整理をしたらよいのかを考えてみました。
今回はデータカタログサービスである「Dataplex」を利用して、連携したBigqueryのテーブルのメタデータ付与をやってみました。
Dataplexとは
Dataplexは、分散されたデータの統合・管理を自動化するためのフルマネージドサービスです。(以前はData Catalogというサービスでした。)
特徴として以下が挙げられます。
- 組織内の複数の Google Cloud プロジェクトにまたがるデータを統合してデータメッシュ (後述) を構築する
- データの権限管理を一元化する
- メタデータを付けることでデータをカタログ化し、検索しやすくする
- データの品質やライフサイクル (生成過程) を管理する
今回のテーマは「データのカタログ化」の部分が中心となります。
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
- 「説明」欄には、事前にテーブルの日本語名、カラムの日本語名を設定済み
- 「ポリシータグ」には、列レベルセキュリティを表すものとして以下のように事前作成済み
このテーブルをDataplexの画面上で確認すると以下のような状態となっています。
description、データ型、Nullの許容、ポリシータグはすでに確認できるようになっていますので、さらに必要なメタデータをタグテンプレートと用語集で登録していきます。
まず「タグテンプレート」を作成していきます。
Dataplex画面の「タグテンプレート」から「タグテンプレートを作成」を選択します。
テンプレート名、フィールド名、データ型など必要パラメータを入力して作成していきます。
次に用語集を作成します。
Dataplex画面の「用語集」から「ビジネス用語集を作成」を選択し、登録していきます。
今回は、用語集、カテゴリ、キーワードを以下のように作成しました。
Bigqueryテーブルにメタデータ付与
上記設定内容をテーブルとカラムに付与した結果が以下となります。
設定したタグテンプレート名や用語集をクリックすると、フィールドと設定値や用語集の説明文がポップアップで表示されます。
また、検索においてもタグテンプレート名、タグテンプレート内フィールドの値で絞り込みできるほか、用語集でキーワード検索すると、設定したデータセットが検索でヒットさせることができます。
さらにキーワード検索で以下のように入力すれば、ポリシータグ名でデータセットを検索することもできます。
さいごに
Bigqueryテーブルのメタデータ管理をDataplexでどのように整理するかの1例としてご紹介させていただきました。
利用者やその組織ごとにニーズは様々ありますが、「何から手をつけてどう整理するべきかイメージが湧かない」方々の一助となれば幸いです。
以上
明日12/21はみかみさんです。よろしくお願いします!