コンテンツに移動
データ分析

Data Catalog のタグ付けの基本を理解する

2020年7月8日
Google Cloud Japan Team

※この投稿は米国時間 2020 年 8 月 28 日に、Google Cloud blog に投稿されたものの抄訳です。


Google Cloud Data Catalog はフルマネージドのスケーラブルなメタデータ管理サービスです。Data Catalog を使用すると、組織は 1 つのシンプルなインターフェースからすべてのデータをすばやく検出、把握、管理し、データへの投資から貴重なビジネス インサイトを得ることができます。Date Catalog の中核的なコンセプトの一つに、タグ テンプレートと呼ばれるものがあります。これは、複雑なメタデータを整理しながら、Cloud Identity and Access Management(Cloud IAM)制御下で検索可能にするものです。この投稿では、利用を開始するにあたって役立つベスト プラクティスと、便利なタグ テンプレート(以下、テンプレート)について紹介します。

Data Catalog テンプレートを理解する

タグ テンプレートは、データアセットを分類するための語彙を表すフィールドの中から、関連性の高いものを集めたものです。各フィールドには名前とタイプがあり、タイプには string、double、boolean、enumeration、datetime があります。タイプが enum の場合、テンプレートには、そのフィールドに使用できる値も保存されます。フィールドはテンプレートに順不同のセットとして保存され、各フィールドは必須とマークされていない限り、オプションとして扱われます。必須フィールドは、テンプレートを使用するたびに値を割り当てる必要があります。オプション フィールドは、このテンプレートのインスタンスを作成するときに省略できます。

テンプレートのインスタンスは、BigQuery のテーブルやビューなどのデータ リソースにタグ付けするときに作成します。タグ付けとは、タグ テンプレートを特定のリソースに関連付け、テンプレート フィールドに値を割り当ててそのリソースを説明することです。このようなタグは、フィールドがテンプレートのインスタンスとして入力されるため、構造化タグと呼ばれます。入力済みのフィールドにより、一般的なスペルミス、その他の不整合、単純な Key-Value ペアによる既知の問題を回避できます。

テンプレートを整理する

Date Catalog テンプレートに関して、よくある質問が 2 つあります。1 つ目はテンプレートに取り入れるフィールドの種類、2 つ目はテンプレートの整理方法です。1 つ目の質問の答えは、組織が追跡するメタデータの種類とそのメタデータの使用方法によって異なります。データ検出からデータ ガバナンスに至るまで、メタデータのユースケースは多岐にわたり、それぞれの要件によって、テンプレートのコンテンツが決まります。

テンプレートの整理方法の簡単な例を見てみましょう。ここでは、アナリストが適切なアセットを探すのに長時間を要しているため、データレイク内のデータアセットを発見しやすくすることを目標としています。この場合、Data Discovery テンプレートを作成することで、アナリストが検索するディメンションに沿ってアセットを分類できます。これには data_domain、data_owner、creation_date などのフィールドが含まれます。データ ガバナンス チームがデータ コンプライアンスの目的でアセットを分類する必要がある場合は、data_retention、data_confidentiality、storage_location などのガバナンス固有のフィールドを含めた個別のテンプレートを作成できます。つまり、1 つのテンプレートに複数の概念を取り入れるのではなく、1 つの概念を表すテンプレートを作成することをおすすめします。こうすることで、テンプレートを使用しているユーザーが混乱するのを防ぎ、テンプレート管理者がテンプレートを長期にわたって維持しやすくなります。

お客様によっては、複数のプロジェクトでテンプレートを作成する場合や、中央プロジェクトでテンプレート作成する場合、あるいはその両方を行う場合があります。複数のチームで広く使用するテンプレートを作成する場合は、追跡しやすいように、中央プロジェクトでテンプレートを作成することをおすすめします。たとえば、データ ガバナンス テンプレートは通常、中央グループによって管理されます。このグループは毎月ミーティングを行い、各テンプレートのフィールドが明確に定義されていることを確認して、追加のフィールドの要件を処理する方法を決定できます。この場合、テンプレートを中央プロジェクトに保存することは、保守性のために合理的です。テンプレートのスコープが 1 つのチームに制限されている場合(例: 1 つのデータ サイエンス チームのニーズに合わせてカスタマイズされている Data Discovery テンプレート)は、そのチームのプロジェクトでテンプレートを作成する方が理にかなっています。スコープがさらに制限されている場合(たとえば、1 人の個人に)は、個人のプロジェクトでテンプレートを作成する方が理にかなっています。つまり、スコープに基づいてテンプレートの保存場所を選択するということです。

テンプレートのアクセス制御

Date Catalog には、テンプレートとタグへのアクセスを管理するための権限が幅広く用意されています。テンプレートは完全に非公開にでき、タグ テンプレート閲覧者ロールを介して承認されたユーザーのみに表示可能にすることや、タグ テンプレート ユーザー ロールを介してタグの作成を承認されたユーザーに表示と使用を可能にすることができます。テンプレートが表示可能な場合、承認されたユーザーはテンプレートのコンテンツを表示できるだけでなく、テンプレートを使用してタグ付けされたアセットを検索することもできます(基本的なアセットを表示するアクセス権も持っている場合に限る)。基礎となるデータにアクセスできない場合、メタデータを検索することはできません。カタログ化されたアセットに対する読み取りアクセス権を取得するには、Date Catalog 閲覧者ロールを付与される必要があります。または、基盤となるアセットが BigQuery に保存されている場合は、BigQuery メタデータ観覧者ロールを使用できます。

閲覧者とユーザーのロールに加えて、テンプレート作成者(タグ テンプレート作成者のロールを付与)とテンプレート所有者(タグ テンプレート所有者ロールを付与)という概念もあります。作成者は新しいテンプレートのみを作成できます。一方で、所有者はテンプレートのすべての制御を行うことができ、テンプレートを削除する権限もあります。テンプレートを削除すると、テンプレートから作成されたすべてのタグが削除されるという波及効果があります。タグの作成と変更を行うには、タグ編集者ロールを使用します。このロールは、ユーザーがタグ付けするテンプレートにアクセスできるように、タグ テンプレート ロールと組み合わせて使用する必要があります。   

テンプレートの料金に関する考慮事項

Date Catalog の料金には、メタデータ ストレージと API 呼び出しの 2 つのコンポーネントがあります。ストレージの場合、テンプレートが作成されたプロジェクトには、テンプレートとタグに関連する請求料金が発生します。テンプレートから作成されたタグが別のプロジェクトのリソース上にある場合でも、テンプレートのストレージ使用量に対して請求されます。たとえば、プロジェクト A に Data Discovery テンプレートがあり、プロジェクト B がこのテンプレートを使用して BigQuery 内の独自のリソースにタグ付けするとします。この場合、Data Discovery テンプレートがプロジェクト A にあるため、プロジェクト A にはプロジェクト B のタグの料金が発生します。

API 呼び出しの観点から見ると、検索、読み取り、書き込みの呼び出しが行われたときに、選択したプロジェクトに料金が請求されます。価格の詳細については、プロダクト ドキュメント ページをご覧ください。    

事前構築済みのテンプレート

見込みのあるお客様からよく尋ねられるもう 1 つの質問に、「自分でテンプレートを作成する際に役立つ事前構築済みのテンプレートはありますか?」というものがあります。このようなリクエストが多かったため、ユーザーがデプロイしているテンプレートのタイプを示す例をいくつか用意しました。これらの例は、YAML 形式で、以下および GitHub リポジトリで見つけることができます。同じリポジトリには、YAML ベースのテンプレートを読み取り、Date Catalog 内で実際のテンプレートを作成するスクリプトもあります。

データ ガバナンス テンプレート

データ ガバナンス テンプレートは、ドメイン、環境、機密性、所有権、保持の詳細に基づいてデータアセットを分類します。これはデータの検出と、GDPR や CCPA などの使用ポリシーの遵守に使用することを目的としています。このテンプレートは、データの使用とプライバシーに関する新しいポリシーと規制の追加により、時間とともに拡大することが予想されます。

読み込んでいます...

派生データ テンプレート

派生データ テンプレートは、1 つ以上のデータソースを起源とする派生データを分類するためのものです。派生データは、Dataflow パイプライン、Airflow DAG、BigQuery クエリなど、さまざまな方法で生成されます。データは、集約、匿名化、正規化などの複数の方法で変換できます。メタデータの観点から、こうした変換を大まかに分類し、それを生成したデータソースを追跡する必要があります。テンプレートの親フィールドは、元のデータソースの URI を保存するためのもので、派生データを生成するプロセスで入力されます。この記事の執筆時点では、複合型は Data Catalog でサポートされていないため、文字列として宣言されています。

読み込んでいます...

データ品質テンプレート

データ品質テンプレートは、さまざまな品質チェックの結果を保存して、基礎となるデータの精度を評価に活用することを目的としています。テーブル全体に添付される前述の 2 つのテンプレートとは異なり、これはテーブルの特定の列に添付されます。これは通常、重要な数値列として、重要なビジネス レポートで使用されます。Date Catalog はすでに技術的なメタデータを通じて BigQuery テーブルのスキーマを取り込んでいるため、このテンプレートは列のデータ型を省略し、品質チェックの結果のみを保存します。品質チェックはカスタマイズ可能で、BigQuery に簡単に実装できます。

読み込んでいます...

データ エンジニアリング テンプレート

データ エンジニアリング テンプレートは、テーブルの個々の列にも添付されます。このテンプレートは、異なるストレージ システムの同じデータに、列がどのようにマッピングされるかを説明することを目的としています。また、BigQuery へのウェアハウスの移行、BigQuery への継続的なリアルタイム レプリケーション、Cloud Storage 上のデータレイクへのレプリケーションなどのデータベース レプリケーション シナリオをサポートすることを目標としています。これらのシナリオにおいて、データ エンジニアは、主に 2 つの理由でテーブルのソース列とターゲット列の間のマッピングをキャプチャする必要があります。1 つ目は、ソースとは異なるスキーマを BigQuery に持つことが多い、レプリケーションされたデータのクエリを容易にすることです。2 つ目は、データのレプリケーション方法をキャプチャして、レプリケーションの問題をより簡単に検出して解決できるようにすることです。

読み込んでいます...

以上で、Data Catalog 構造化タグを使用して、さまざまなオペレーションのメタデータとビジネスのメタデータをまとめ、それをデータアセットに添付し、簡単に検索できるようになりました。Data Catalog でのタグ付けの詳細については、テーブルへのタグ付けのクイックスタートをご覧ください。

 

-ソリューション アーキテクト Shirley Cohen

-Data Catalog プロダクト マネージャー Shekhar Bapat

投稿先