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

タグ付けの自動化に向けて: メタデータを Data Catalog に一括で取り込む

2020年10月13日
https://storage.googleapis.com/gweb-cloudblog-publish/images/DataAnalytics_B_1_Kp1Qjnf.max-2600x2600_jxR6hUO.jpg
Google Cloud Japan Team

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


Data Catalog を使用すると、インタラクティブなインターフェースを通じてビジネス メタデータを取り込んで編集できます。また、プログラマティック インターフェースを使って一般的なタスクを自動化することができます。Data Catalog を使用した一連のメタデータの定義、収集は多くの企業にとって必要性の高い業務です。そこで今回はメタデータの宣言、作成、維持を長期的に行ううえでのベスト プラクティスをご紹介します。

以前の投稿では、タグ テンプレートがデータアセットを分類するための語彙を記述することにより、データの検出、ガバナンス、品質管理を促進する方法について確認しました。この投稿では、タグ テンプレートを使用してデータをタグ付けする方法について説明します。タグ付けとは、特定のデータアセットを分類するために、タグ テンプレートのインスタンスを作成し、テンプレートのフィールドに値を割り当てることです。現時点では、Data Catalog は BigQuery、Cloud Storage、Pub/Sub の 3 つのストレージ バックエンドをサポートしています。今回は、こうしたバックエンドに保存されているアセット(テーブル、列、ファイル、メッセージ トピックなど)のタグ付けに焦点を当てます。

データレイクとデータ ウェアハウス環境内のデータのタグ付けに適した 3 つの使用モデル(新しいデータソースのプロビジョニング、派生データの処理、タグとテンプレートの更新)について解説します。シナリオごとに、大規模なデータのタグ付けに推奨されるアプローチについて説明します。

1. データソースのプロビジョニング

データソースのプロビジョニングは通常、いくつかのアクティビティを伴います。たとえば、ストレージ バックエンドに応じたテーブルまたはファイルの作成、それらのリソースに対する初期データの入力やアクセス権限の設定などです。Google は、このリストにもう 1 つのアクティビティを追加します。そのアクティビティとは、新しく作成されたリソースを Data Catalog でタグ付けすることです。このステップに必要なものを以下で説明します。

データソースにタグ付けするには、使用するタグ テンプレートの意味と、データソース内のデータのセマンティクスの両方を理解している、その領域のエキスパートが必要です。エキスパートはその知識に基づいて、添付するテンプレートと、そのテンプレートから作成するタグの種類を選択します。さまざまな決定がタグの正確さに依存している点を考慮すると、人が関与することが大切です。

お客様との共同作業を通じて、タグには 2 つの種類が存在することがわかっています。1 種類は static と呼ばれます。フィールド値は事前にわかっており、まれにしか変更されないことが想定されているためです。もう 1 種類は dynamic と呼ばれます。基になるデータの内容に応じてフィールド値が定期的に変更されるためです。static タグの例は、data_domain、data_confidentiality、data_retention などデータ ガバナンス フィールドのコレクションです。各フィールドの値は組織のデータ使用ポリシーによって決定されます。これらは通常、データソースが作成されるまでに判明しており、頻繁に変更されることがありません。dynamic タグの例は、number_values、unique_values、min_value、max_value など、データの特性を表す一連のフィールドです。各フィールド値は、新しい読み込みを実行するかデータソースに変更を加えるたびに、頻繁に変更されることが想定されています。

このような違いに加え、static タグには、フィールドがソースデータから派生データにどのように伝播されるかを示す cascade プロパティもあります(この概念については、後のセクションで詳しく説明します)。これに対し、dynamic タグには、フィールド値の計算に使用すべきクエリを示す query_expression と、フィールド値を再計算する頻度を示す refresh プロパティがあります。まず、static タグの構成例をコード スニペットで示し、次に dynamic タグの構成例を示します。

読み込んでいます...

YAML ベースの static タグ構成

読み込んでいます...

YAML ベースの dynamic タグ構成


先に述べたように、該当する領域のエキスパートは、データソースのタグ付けを設定する際に、上記の構成への入力を指定します。具体的には、まずデータソースに添付するテンプレートを選択します。次に、使用するタグの種類、つまり static または dynamic を選択します。さらに、各フィールドの値を入力します。タグの種類が static の場合は cascade の設定を入力し、種類が dynamic の場合は query_expression と refresh の設定を入力します。それぞれの入力は UI からできるため、エキスパートは生の YAML ファイルを作成する必要がありません。

YAML ファイルが生成されると、指定に基づいて Data Catalog でツールが構成を解析し、実際のタグを作成します。このツールは、refresh の設定に従って dynamic タグの再計算もスケジュールします。初期入力には該当領域のエキスパートが必要ですが、実際のタグ付け作業は完全に自動化できます。このアプローチに従い、新しく作成されたデータソースの起動時のタグ付けや、タグの長期間にわたる維持が行われ、手作業が不要になるようにすることをおすすめします。

2. 派生データの処理

データソースのタグ付けに加えて、大規模な派生データをタグ付けできることが重要です。Google は、派生データを 1 つ以上のデータソースの変換により作成されたデータとして広く定義しています。このようなデータは、データ プロダクトがさまざまなデータソースから日常的に派生するデータレイクやデータ ウェアハウジングの場合に特に一般的です。

派生データのタグは、元のデータソースと派生データに適用される変換タイプで構成されている必要があります。タグに元のデータソースの URI と 1 つ以上の変換タイプ(集計、匿名化、正規化など)をそれぞれ保存します。派生データが生成されるパイプラインにタグ作成ロジックを組み込むことをおすすめします。この処理は AirflowDAG と Beam パイプラインで実行できます。たとえば、データ パイプラインが 2 つのデータソースを結合し、結果を集計してテーブルに格納する場合、結果テーブルに 2 つの元のデータソースへの参照と aggregation:true を指定したタグを作成します。このようなタグを作成する Beam パイプラインのコード スニペットの例をご覧ください。

読み込んでいます...

タグ付けロジックを実装した Beam パイプライン


派生データに元のデータソースをタグ付けすると、この情報を使用して、元のデータソースに添付されている static タグを伝播できます。cascade プロパティの役割は、ここで派生データに伝播すべきフィールドを指定することです。cascade プロパティの例は、上記の最初のコード スニペットをご覧ください。この例では、data_domain フィールドと data_confidentiality フィールドはともに伝播されますが、data_retention フィールドは伝播されません。この場合、BigQuery のすべての派生テーブルは、dg_template を使用して data_domain:HR と data_confidentiality:SENSITIVE がタグ付けされることを意味します。

3. 更新の処理

タグとテンプレートの両方の更新機能を必要とするシナリオがいくつか存在します。たとえば、ビジネス アナリストがタグにエラーを見つけた場合、1 つ以上の値を修正する必要があります。新しいデータ利用ポリシーが採用された場合、新しいフィールドをテンプレートに追加し、既存フィールドの名前変更か削除が必要になることがあります。

次のスニペットに示すとおり、タグとテンプレートの更新に合わせて構成を指定します。タグの更新構成では、変化するフィールドごとに現在の値と新しい値を指定します。ツールは構成を処理し、指定に基づいてタグ内のフィールドの値を更新します。更新するタグが static の場合、ツールは派生データの同じタグにも変更を反映します。

テンプレートの更新構成では、フィールド名、フィールド タイプ、列挙値の変更を指定します。ツールは最初に変更の性質を判別してから更新を処理します。現時点では、Data Catalog はテンプレートへのフィールドの追加と削除や、列挙値の追加に対応していますが、フィールドの名前変更や種類の変更はまだサポートされていません。そのため、単純な追加や削除がリクエストされた場合、ツールは既存のテンプレートを変更します。それ以外の場合は、テンプレート全体とそれに依存するすべてのタグを再作成する必要があります。

読み込んでいます...

YAML ベースのタグ更新構成

読み込んでいます...

YAML ベースのテンプレート更新構成

オープンソース ツールのリリースに向けて、上記のアプローチのプロトタイピングを開始しました。このツールは提案された使用モデルに従って、Data Catalog でのタグの作成と維持に関連するさまざまなタスクを自動化します。どうぞご期待ください。それまでの間、Data Catalog のタグ付けについて詳細を確認してください。


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

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

投稿先