Data Catalog で BigQuery のデータを管理する
投稿者:種田 貴文
こんにちは!
NI+C DataOps チームの種田です。
多くの企業や組織で日々膨大なデータが生成・蓄積されています。ただ、これらのデータを十分に活用しきれていないという組織も少なくないのではないでしょうか?そのような組織では以下のような課題に直面されているケースが多く見られます。
- データの検索性に関する課題
- 様々なデータが蓄積されているのにどこにあるのかがわからない
- そもそもデータの存在自体を知らない
- データの品質に関する課題
- 似たようなデータや項目が複数あり、どのデータを使えばいいかわからない
- データがどこからどのようなプロセスを経て作成されたかがわからない
- データの利用に関する課題
- データエンジニアに負荷がかかり、データが提供されるまでに時間がかかる
- 欲しいデータにアクセスするために誰にどうやって依頼すればいいかがわからない
これらの課題の解決にはデータのカタログ化が有効です。様々なベンダーから提供されているデータカタログ製品では共通して以下の機能を備えています。
- 蓄積されたデータへのメタデータによるタグ付け
- 様々なデータソースからのテクニカルメタデータの自動収集
- ビジネス用語集の作成
- データのリネージや統計情報の可視化
- 上記を容易に検索可能な統合インターフェース
弊社では様々なデータカタログ製品を取り扱っていますが、今回は Data Catalog を用いた BigQuery 上のデータのカタログ化について実際の手順を交えてご紹介します。
Data Catalog について
Data Catalog とは Dataplex の一部として提供されるフルマネージドでスケーラブルなメタデータ管理サービスで、主に以下の3つの機能を提供します。
- アクセス可能なデータエントリの検索
- メタデータでのデータエントリのタグ付け
- BigQuery テーブルに対する列レベルのセキュリティの提供
Data Catalog によるメタデータ管理
Data Catalog では Google Cloud サービスとカスタム データソースからメタデータを自動で収集します。これらのアセットに対してタグなどを使用して独自のメタデータを追加します。
カタログ化のイメージ
Data Catalog におけるメタデータの追加について
一般的にデータカタログで管理されるメタデータはビジネス メタデータ、テクニカル メタデータ、オペレーショナル メタデータに分類されます。
Google Cloud の公式サイトでは「Data Catalog は、テクニカル メタデータとビジネス メタデータの 2 種類のメタデータを処理します。」と記載されていますが、Data Catalog では自動で収集されるメタデータをテクニカル メタデータとして、自動で収集されないメタデータをビジネス メタデータとして定義しているようです。ですので、一般的な意味でのビジネス メタデータ、テクニカル メタデータ、オペレーショナル メタデータも Data Catalog のビジネスメタデータとして登録することが可能です。
ただし、テーブルの「最終更新日時」や「レコード数」といったタグを追加したとしても Data Catalog は自動で値を更新してくれないので、値を定期的に更新する処理を作り込むよりは、BigQuery であれば Information Schema を参照するダッシュボードを Looker Studio 等で作成する方がよいかもしれません。また、統計情報等のデータ品質については Dataplex の「データ プロファイリング」や「データ品質タスク」を利用するとよいでしょう。
また、Data Catalog ではデータスチュワードの設定機能や、リッチテキスト形式の概要を設定する機能がプレビュー提供(2023年12月現在)されています。
データスチュワードを設定することで、カタログの内容に不明点や間違いがあった場合に簡単にデータの管理者に確認を取ることができます。
リッチテキスト形式の概要はデータの説明や、データがどのように作成されたかに関する情報を含めることで、データの意味や用途をより正確に理解することができます。リッチテキストはタグによる管理よりも理解しやすいため、ビジネスユーザ向けのメタデータにはリッチテキストを活用してみてはいかがでしょうか?もちろん、リッチテキスト内の文字列で検索することも可能です。
BigQuery へのメタデータの追加
それでは、実際にメタデータを追加していきます。今回は BigQuery のテーブルとカラムにメタデータを追加します(データセットにもタグは追加できます)。
構成方針
今回は下表に従ってカタログ化を進めていきます。
カタログ化する情報 | データエントリ | 設定場所/参照方法 | 想定する利用者 |
データスチュワードの情報 | テーブル | 管理担当者 | 全てのユーザ |
データの意味や用途に関する情報 | テーブル | 概要 | アナリスト、ビジネスユーザ |
カラム | タグ | データエンジニア | |
データの関連性に関する情報 | テーブル | 概要 | アナリスト、ビジネスユーザ |
リネージ | データエンジニア | ||
データガバナンスに関する情報 | テーブル | 概要 | データエンジニア |
カラム | タグ | データエンジニア | |
データの品質に関する情報 | テーブル | データプロファイル | データエンジニア |
前提
- Data Catalog API を有効化していること
- Data Catalog 管理者、またはData Catalog TagTemplate 作成者のロールを持っていること
管理担当者の設定
上述の通り、データスチュワードの連絡先を設定することで、データの品質やガバナンスに関する問い合わせに対応しやすくなり、問題を迅速に解決しやすくなります。ここでは BigQuery のテーブルに対して管理担当者を設定します。
- Google Cloud コンソールで、Dataplex の「検索」ページに移動します。
- 目的のテーブルを検索し、テーブルの名前をクリックします。
- テーブルの詳細が表示されたら、「管理担当者」の右側の編集ボタンをクリックします。
- テーブルの管理者のメールアドレスを入力し、「保存」をクリックします。
- テーブルにデータスチュワードが設定されました。
メールアドレスは右クリックからクリップボードにコピーすることができます。
テーブルの概要の追加
次に BigQuery のテーブルにリッチテキスト形式の概要を追加します。
テーブルに関するメタデータはリッチテキストで定義することで、利用者がデータの理解を深め、データの活用を効率化するのを容易にします。
- 「概要を追加」をクリックします。
- テーブルの概要をリッチテキスト形式で記載し、「保存」ボタンをクリックします。
タグの追加
Data Catalog ではアセットに合わせてタグ テンプレートを作成し、テンプレートで定義したルールに基づいてタグを追加することによって一貫性のあるカタログ化が可能になります。また、Data Catalog には一般的なタグ付けユースケースを事前に定義したタグ テンプレートのサンプルのギャラリーが提供されており、そのまま利用することや、タグ付けの参考として利用することも可能です。
今回は「テーブルの概要」にテーブルやカラムに関するメタデータを定義しているため、PII(個人を特定できる情報)を含むデータの追跡などの特定の目的での利用に絞ってタグを定義していきます。
テンプレートの作成
BigQuery のテーブルとカラムに追加するタグ用のテンプレートを作成します。テンプレートの作成手順自体は同様のため、ここではテーブル用のタグテンプレートの作成のみを記載します。
- Google Cloud コンソールで、Dataplex の「テンプレートの作成」ページに移動します。
- テンプレートの表示名、テンプレートIDを指定し、ロケーションはデータセットのあるリージョンを指定します。
- 今回は全体に公開したいので「公開」を選択します。
- 「項目を追加」をクリックし、フィールド(タグ)を定義する各項目を指定後「完了」をクリックします。
- 必要なフィールド分、4.の操作を繰り返します。
- 作成ボタンからテンプレートを作成します。
- テンプレートが作成されました。
- 同様にカラム用のテンプレートも作成します。
テーブルへのタグの追加
最後にテーブルとカラムにタグを追加していきます。
- Google Cloud コンソールで、Dataplex の「検索」ページに移動します。
- 目的のテーブルを検索し、テーブルの名前をクリックします。
- テーブルの詳細の下の方にある「タグを付ける」をクリックします。
- タグを付ける対象を選択し、「OK」をクリックします。
※ この画面でカラムにもタグを付けることができますが、ここではテーブルのみを対象とします。 - タグテンプレートを選択し、「OK」をクリックします。
- タグの値を指定し、「保存」ボタンをクリックします。
- テーブルにタグが追加されました。
カラムへのタグの追加
最後にカラムにタグを追加します。
- 「スキーマ」タブを表示し、フィールドごとに「+」をクリックし全てのカラムにタグを追加します。
- カラムにタグを追加できました。
今回は設定しませんでしたが、「ビジネス用語」の「+」からカラムごとに参照可能なビジネス用語集を設定することも可能です。
※ 別途、ビジネス用語集の作成が必要
使ってみる
メタデータを登録したので、使ってみます。まずはテーブルの概要に含まれる「商品ごとの販売数」をキーワードに検索してみます。
ちゃんとヒットしましたね。
テーブルの参照権限があれば、「プレビュー」ボタンから実際のデータを確認することもできます。
(普通は PII が含まれるテーブルを検索するケースが多いとは思いますが、この環境ではデータがないので、)先ほどの画面で「PII Type = Credit Card」を条件にタグでフィルタをかけてあげると「mart_table」にクレジットカード情報が含まれていないこともわかります。
検索でヒットしたテーブルをクリックし、テーブルの概要を見ればこのテーブルがどんなテーブルなのかが簡単にわかりますね。
スキーマを表示すれば、カラムごとのスキーマ情報やタグを確認できます。
リネージを表示すれば、テーブルの関連性も視覚的に把握することができます。どんな処理でそのテーブルにデータが連携されるかもわかります。
※ 残念ながらカラムのマッピングまでは確認できません(2023年12月時点)。
データプロファイルを確認すれば、現在のテーブルの統計情報も確認できます。(事前にスキャンの設定が必要)
データの品質を表示すれば、カラムごとのデータの評価も確認できます。
まとめ
今回は Data Catalog による BigQuery のメタデータの管理方法について書いてみました。
Data Catalog に限らず、データカタログは今後も増え続ける大量のデータの品質と信頼性の向上、利活用の促進のための非常に強力な武器となります。データの利活用が思うように進まないと悩んでいる方は、まずは範囲を絞ってでも良いので、データカタログの導入を検討してみてはいかがでしょうか。
最後までお付き合いくださりありがとうございました。