arrow_back

Data Catalog を使用して、複数プロジェクトでデータセット メタデータを探索する

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Data Catalog を使用して、複数プロジェクトでデータセット メタデータを探索する

Lab 1時間 30分 universal_currency_alt クレジット: 1 show_chart 入門
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP789

Google Cloud セルフペース ラボ

概要

Data Catalog は、Dataplex 内のスケーラブルなフルマネージド型メタデータ管理サービスです。

データアセットの管理は、適切なツールがないと、時間と費用がかかる可能性があります。Data Catalog は、組織がデータアセットを検索、整理、説明できる、一元化された場所を提供します。

Data Catalog を使用する

Data Catalog では、主に 2 つの操作を行います。

  • アクセス可能なデータアセットを検索する
  • メタデータでアセットにタグ付けする

学習内容

このラボでは、次の方法について学びます。

  • 2 つのプロジェクト、2 つのデータセット、2 つのユーザー アカウントを備えた、企業のシミュレーション環境でデータを探索する
  • UI で BigQuery テーブルを手動で移動する
  • 後でタグ付けする機密データの列を把握するためにクエリを実行する
  • Data Catalog を使って、既存のデータセットを複数プロジェクトから検索する
  • Data Catalog のタグ テンプレートを使って、リッチ メタデータでアセットにタグ付けする

メリット

  • 組織内の複数プロジェクトでデータアセットを表示する
  • 再利用可能なタグ テンプレートを作成し、チームのためにリッチデータの説明を追加する
  • PII(個人を特定できる情報)が含まれるデータセットを素早くハイライト表示する
  • メタデータのアクセス制御は、ログインしたユーザーに基づいて継承される(別の Data Catalog ACL は不要)

前提条件

最重要: ラボを開始する前に個人または企業の Gmail アカウントからログアウトするか、このラボをシークレット モードで実行してください。これにより、ラボの受講中にログインによる混乱を避けることができます。

ラボを開始する

  1. まだ開始していない場合は、[ラボを開始] をクリックします。

  2. ヒント: ラボ環境で 2 つの Google Cloud プロジェクト、2 つの事前入力データセット、2 つのユーザー アカウントが自動生成されるまで 3~5 分かかります。ラボのリソースの準備が完了していなくても、説明を読み進めて構いません(以下のシナリオを読み終えるまで、ログインはしません)。

  3. ラボで [Open Bike Console] をクリックするか、ブラウザの新しいウィンドウをシークレット モードで開いて、Cloud コンソールに移動します。提供されているアカウントでまだログインせずに、シナリオを読み進めてください。どのアカウントを使用するかは、後で説明します。

重要な注意事項: ラボは開始すると一時停止できません。ラボを途中で終了してしまうと、実行中の受講者のプロジェクトはすべて削除されます。

シナリオ: ニューヨーク市に拠点を置く運輸会社の最高経営責任者

あなたはニューヨーク市で事業を展開する運輸会社の社長です。会社には、ニューヨーク市内の移動情報(自転車と自動車)について収集したデータセットにクエリを実行するデータ分析チームがいます。

課題

  • データセットの一部には機密情報が含まれるため、アクセスを制御する必要があります。
  • アクセス可能なデータセットが多いので、その中から適切なデータセットを探すことは非常に難しいとチームメンバーから苦情がきています。
  • 最近の規制要件を遵守するために、PII(個人を特定できる情報)が含まれるデータセットを簡単にフラグできる方法が必要です。

組織のデータセット

  • ニューヨーク市のシェアサイクルの移動情報
  • ニューヨーク市の自動車衝突情報

各データ エンジニアリング チームは、データへのアクセスと請求を管理しやすくするために、独自に用意した Google Cloud プロジェクト内でデータセットをそれぞれ保有しています。個々のチームにとっては良い方法ですが、分析チームにとってはデータセットを見つけることが困難になります。

アナリスト ロールの種類

状況をさらに複雑にしている要因として、社内の BI チームにはレベルの異なるデータ アナリストが存在しています。

  • データ アナリスト - 必要最低限の権限
  • オーナー - フルアクセスの権限を持つ管理者

自動生成された内容を確認する

カタログ化する複数のプロジェクトとデータセットを使って実際の企業環境に近い状況をシミュレーションするために、エンジニアリング チームから既存のリソースへのアクセス権を付与されています(ラボではリソースがプリロードされるため、リソースの作成は不要です)。

複数のプロジェクトとユーザーへのリンク。

上の図が示すように、以下の項目にアクセスするためのログイン情報がチームから提供されています。

  • 2 つのプロジェクト
  • 2 つのユーザー アカウント

アクセス制限に関する次の注意点を追加しました。

  • オーナーには、すべてのプロジェクトとデータセットに対する完全アクセス権がある
  • データ アナリストには、ニューヨーク市の自動車衝突情報データセット(機密データ)を表示したりクエリを実行したりするアクセス権はない

パート 1: オーナーロールで既存データ環境を探索する

すでに説明したとおり、データ エンジニアリング チームから 3 つのプロジェクトが提供されていて、各プロジェクトにはニューヨーク市の異なるデータセットが含まれます。オーナーロールですべてのデータセットを表示し、クエリを実行できることを確認します。

  1. このラボ用に提供されている、オーナー(完全アクセス権を持つ管理者)のメールアドレスとパスワード(いずれも自動生成)を使ってログインします。

  2. 利用規約が表示されたら同意します。

ニューヨーク市の自動車衝突プロジェクトを検索する

  1. ページの上部にあるプロジェクト名のプルダウンをクリックし、[プロジェクトを選択] をクリックします。

ハイライト表示されたプロジェクト プルダウン

  1. NYC Motor Vehicle Collisions Project 用の Qwiklabs のプロジェクト名(自動生成)を参照して、[プロジェクトを選択] ポップアップでその文字列値を見つけます。

ハイライト表示された NYC Motor Vehicle Collisions Project のリンク。

[組織なし] リスト内のハイライト表示された文字列値。

Data Catalog API の有効化

  1. ナビゲーション メニュー > [その他のプロダクト] を使用して、[Data Catalog] が表示されるまで下にスクロールします。
  2. 名前にカーソルを合わせて、固定アイコンをクリックします。これにより、[Data Catalog] がナビゲーション メニューの先頭に移動します。
  3. [Data Catalog] をクリックします。ポップアップが表示されたら、[閉じる] をクリックします。
  4. API が有効になっていることを確認します(API を有効にするためのプロンプトが表示されない場合は、API はすでに有効なので何もする必要はありません)。

最初に BigQuery のデータセットを手動で検索して、クエリを実行します。その後、このラボに戻って Data Catalog を使用します。

BigQuery に移動して固定する

  1. ナビゲーション メニューで、[BigQuery] が表示されるまで下にスクロールします。
  2. 名前にカーソルを合わせて、固定アイコンをクリックします。
  3. [BigQuery] をクリックし、[完了] をクリックします。

タスク 1. オーナーロールで new_york_mv_collisions データセットを表示してクエリを実行できることを確認する

オーナーロールで new_york_mv_collisions データセットを表示できることを確認します。

  1. BigQuery の [エクスプローラ] でプロジェクト名をクリックして、閲覧可能なデータセットの表示に切り替えます。

  2. new_york_mv_collisions データセットが表示されることを確認します。

  3. new_york_mv_collisions データセットをクリックして、データセット内のテーブルを開きます。

  4. nypd_mv_collisions テーブルをクリックして、スキーマ内の項目を確認します。

スキーマは、下の図のように表示されます。

nypd_mv_collisions テーブル スキーマのフィールドを表示する [スキーマ] タブページ

次の質問に回答してください。

このテーブルには電話番号やメールアドレスのような個人を特定できる情報はありませんが、チーム以外にこのデータセットを共有する場合には注意が必要です。

このラボの後半では、制限付きデータセットへのアクセス方法と、組織で使えるように Data Catalog を使ってデータセットとテーブルにリッチ メタデータで事前にタグ付けする方法を重点的に説明します。

注: この NYPD 衝突情報データセットは、元となる BigQuery 公開データセット(毎日更新)からプロジェクトに自動的に読み込まれています。データセットを収集する方法の詳細とクエリ例については、リンクをクリックしてください。

オーナーロールで自動車衝突情報データセットに対するクエリを実行できることを確認する

完全アクセス権を持つオーナーとしてログインしたので、プロジェクトとデータセットの両方を表示してアクセスできることを確認しましょう。以下のクエリを実行できることを確認します。

  • 以下のクエリをコピーして BigQuery のクエリエディタに貼り付け、[実行] をクリックします。

ニューヨーク市の自動車事故発生の要因上位 10 項目を調べる

SELECT contributing_factor_vehicle_1 AS collision_factor, COUNT(*) AS num_collisions FROM `new_york_mv_collisions.nypd_mv_collisions` WHERE contributing_factor_vehicle_1 != "Unspecified" AND contributing_factor_vehicle_1 != "" GROUP BY collision_factor ORDER BY num_collisions DESC LIMIT 10;

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ニューヨーク市の自動車衝突データに対してクエリを実行する

タスク 2. オーナーロールでシェアサイクル情報データセットを表示してクエリを実行できることを確認する

  1. ページの上部にある [プロジェクトを選択] をクリックします。

  2. [すべて] タブをクリックします。

  3. 自動生成された正しいプロジェクト ID を参照して、シェアサイクル情報データセットを見つけます。

ニューヨーク市のシェアサイクル プロジェクト ID

サンプルの qwiklabs-gcp-project がハイライト表示されたプロジェクトのリスト

  1. プロジェクト ID をクリックします。
: 保存されていない作業に関するプロンプトが表示されたら [終了] をクリックします。
  1. BigQuery UI で、プロジェクト ID > [new_york_citibike] > [citibike_trips] テーブルを開きます。

スキーマ、詳細、プレビューが表示されたら、次の質問に回答します。

シェアサイクルで最もよく使用されるルートは何ですか(男女別)?

NYC Citi Bike 公開データセットは、シェアサイクル サービスを利用した人の個々の移動情報(貸出場所と返却場所)とその他の項目を記録しています。

  • 以下のクエリをクエリエディタに追加して [実行] をクリックし、最もよく使用されている男女別ルートを表示します。データセットに示された値は、不明、男性、女性の 3 つだけですが、これらの値がシェアサイクル サービス利用者のすべての性別を表しているわけではありません。
WITH unknown AS ( SELECT gender, CONCAT(start_station_name, " to ", end_station_name) AS route, COUNT(*) AS num_trips FROM `new_york_citibike.citibike_trips` WHERE gender = 'unknown' GROUP BY gender, start_station_name, end_station_name ORDER BY num_trips DESC LIMIT 5 ) , female AS ( SELECT gender, CONCAT(start_station_name, " to ", end_station_name) AS route, COUNT(*) AS num_trips FROM `new_york_citibike.citibike_trips` WHERE gender = 'female' GROUP BY gender, start_station_name, end_station_name ORDER BY num_trips DESC LIMIT 5 ) , male AS ( SELECT gender, CONCAT(start_station_name, " to ", end_station_name) AS route, COUNT(*) AS num_trips FROM `bigquery-public-data.new_york_citibike.citibike_trips` WHERE gender = 'male' GROUP BY gender, start_station_name, end_station_name ORDER BY num_trips DESC LIMIT 5 ) SELECT * FROM unknown UNION ALL SELECT * FROM female UNION ALL SELECT * FROM male;

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 最もよく使用されているルートについて性別によるクエリを実行する

次は、機密データが含まれるデータセットとテーブルにタグ付けする方法を確認します。

内容のまとめ

  • これまで、2 つのデータセットをそれぞれ見てきました(ニューヨーク市の自動車衝突情報とシェアサイクルの移動情報)。
  • 各データセットは、それぞれ別のプロジェクトに保存されています。
  • オーナーロール(現在ログインしているロール)には、各データセットを表示してクエリを実行できる権限があります。

パート 2: アクセス制限があるユーザーで既存データ環境を探索する

これまでのラボでは、データ エンジニアリング チームから提供された、最高権限のオーナー アカウントとしてログインしてきました。

ここで、データ アナリスト ユーザーのアクセスを以下のように制限することを、エンジニアリング チームに依頼しました。

データ アナリストが表示できるデータセット:

  • ニューヨーク市のシェアサイクル情報

データ アナリストが表示できないデータセット:

  • ニューヨーク市の自動車衝突情報

オーナー アカウントからログアウトする

  1. プロフィール アイコンをクリックします。

  2. ログアウトします。

タスク 3. データ アナリスト ユーザーでログインしてプロジェクト アクセス制限を確認する

  1. [別のアカウントを使用] をクリックします。

  2. Data Analyst User のメールと共有パスワードで、Google Cloud にもう一度ログインします。

  3. [プロジェクトを選択] の下に、自動生成された Qwiklabs のプロジェクトが 2 つではなく、1 つしか表示されないことを確認します。

  4. アクセスできる Qwiklabs プロジェクトを選択します。

  5. BigQuery に移動します。

タスク 4. 非公開データセットに直接クエリを実行する

BigQuery では、プロジェクトが [エクスプローラ] セクションに固定または表示されていない場合でも、アクセス権があればクエリを実行できます。プロジェクト ID を使い、データ アナリスト ユーザーとしてニューヨーク市の自動車衝突情報データセットに対して直接クエリを実行してみます。

  • 以前のセクションのように以下のクエリを追加し、プロジェクト ID のプレフィックスを NYC Motor Vehicle Collisions Project のプロジェクト ID に置き換えます。
SELECT contributing_factor_vehicle_1 AS collision_factor, COUNT(*) AS num_collisions FROM `qwiklabs-gcp-[ここを置き換え].new_york_mv_collisions.nypd_mv_collisions` WHERE contributing_factor_vehicle_1 != "Unspecified" AND contributing_factor_vehicle_1 != "" GROUP BY collision_factor ORDER BY num_collisions DESC LIMIT 10;

アクセス拒否のエラー メッセージの受信でデータ アナリストのアクセスレベルを検証します。

プロジェクト、データセット、クエリへのアクセスに関して、オーナーロール(幅広い権限)とデータ アナリスト(最も制限の厳しい権限)のそれぞれに付与されている異なる権限とアクセス権について確認しました。

次は、Data Catalog の検索機能を使用して、表示されていないデータセットを検索できるかどうかを確認します。BigQuery でブロックされていても、データ アナリストはデータセットを検索できるでしょうか。

パート 3: Data Catalog を使用して、複数プロジェクトにあるデータセットにタグを付ける

データセットと、異なるロールに付与されるアクセスレベルについて理解したところで、次に、同じサンプル シナリオを使って先ほど説明した課題に対処します。

課題:

  • データセットの一部には機密情報が含まれるため、アクセスを制御する必要があります。
  • アクセス可能なデータセットが多いので、その中から適切なデータセットを探すことは非常に難しいとチームメンバーから苦情がきています。

最近の規制要件を遵守するため、PII(個人を特定できる情報)が含まれるデータセットを簡単にフラグできる方法が必要です。Data Catalog サービスでこれらの課題に対処して、このタスクを完了してください。

  1. ナビゲーション メニューを開き、[Data Catalog] をクリックします。
: 保存されていない作業に関するプロンプトが表示されたら [終了] をクリックします。 : API を有効にするよう求めるメッセージが画面に表示されたら、オーナーロールでもう一度ログインして API を有効化する必要があります(このラボの最初に行ったステップです)。
  1. Data Catalog ホームページの [システム] で、「BigQuery」でフィルタします。
注: 「qwiklabs-resources」プロジェクトの行も表示される場合がありますが、無視してかまいません。このプロジェクトは、共有アセットをすべてのラボに提供します。
  1. Data Catalog の検索バーに「qwiklabs-gcp」と入力し、外部の Qwiklabs リソースを除外します。

  2. データ アナリストに表示される画面が次のようになっていることを確認します。

Data Catalog のホームページ

どのプロジェクトにログインしているかにかかわらず、Data Catalog はユーザーのロールでアクセスできるすべての BigQuery データセットを検索結果として表示します。

new_york_mv_collisions は存在しますが(オーナーとして、このデータセットに対してクエリを実行しました)、データ アナリスト ユーザーとしてログインしているときは、Data Catalog に表示されません。

なぜでしょう。次は、Data Catalog レベルで行われるアクセス制御のしくみについて詳しく見ていきます。

Data Catalog によるメタデータの検索

Google Cloud リソースを検索、検出、表示する前に、Data Catalog はユーザーの IAM ロールを確認して、BigQuery、Pub/Sub などのソースシステムでリソースにアクセスするためのメタデータ読み取り権限が付与されていることを確かめます。

例: Data Catalog は、BigQuery テーブルのメタデータを表示する前に、bigquery.tables.get 権限が含まれるロールがユーザーに付与されていることを確認します。

タスク 5. BigQuery データセットから Data Catalog タグ テンプレートを作成する

  1. テーブル名が new_york_citibike となっている項目をクリックします。これは、閲覧が許可されているシェアサイクル情報データセットのサブタスクです。

[Dataplex] ページと [詳細] タブページに表示される BigQuery データセットの詳細

Data Catalog では、BigQuery テーブルに対して次の項目にタグ付けできます。

  • データセット自体
  • テーブル
  • 個別の列
  1. [タグを付ける] ボタンをクリックしてみます。

  2. 以下のようなエラーが表示されることを確認します。

エラー メッセージ: このエントリにタグを付ける権限がありません。必要な権限: bigquery.datasets.updateTag

  1. ダイアログで [詳細] にカーソルを合わせると、利用できない理由が表示されます。

Data Catalog では、データ アナリスト ロールでメタデータを検索することはできても、新しいタグを付けることはできないことがわかります。

ここからは、Data Catalog のタグ付け権限タグ テンプレートの仕組みについて見ていきます。

Data Catalog のテンプレート、タグ、権限

Data Catalog タグ テンプレートを使うと、データアセットに関する一般的なメタデータを単一の場所で作成および管理できます。タグはデータアセットに添付されているため、Data Catalog システムで検出できます。この機能により、データアセットについてコンテキスト メタデータを利用するアプリケーションをさらに構築することもできます。

タグ テンプレートの例

Data Catalog タグ テンプレートの例

タグ テンプレートの作成者

ユーザーがタグ テンプレートを作成するには、該当するリソースへの編集権限(このラボでは BigQuery)と datacatalog.tagTemplateUser(テンプレートがすでに作成済みの場合)が少なくとも必要です。詳細については、Data Catalog IAM ガイドをご覧ください。

新しいタグ テンプレートを作成する必要がある場合は、少なくとも datacatalog.tagTemplateCreator または roles/datacatalog.tagTemplateOwner のロールが必要です。後者の場合、既存テンプレートと追加の管理者権限の削除が許可されます。

Data Catalog の事前定義 Cloud IAM ロールのうち、以下は最も一般的なものです。

  • roles/datacatalog.tagTemplateViewer
  • roles/datacatalog.tagTemplateUser
  • roles/datacatalog.tagTemplateCreator
  • roles/datacatalog.tagTemplateOwner
  • ロールの完全なリストについては、Data Catalog のロールをご覧ください。

タスク 6. 新しい Data Catalog テンプレートを作成する

  1. roles/datacatalog.tagTemplateOwner 権限が付与されたオーナーロールとしてログインします。

  2. 以前使用したニューヨーク市のシェアサイクル プロジェクトを選択します。

注: 権限エラーが表示される場合は、正しい認証情報で再ログインしてください。おそらく間違ったオーナーを選択しています。
  1. Data Catalog に移動します。

  2. 新しいタグ テンプレートを作成するには、[タグ テンプレート] > [タグ テンプレートを作成] をクリックします。

  3. 新しいテンプレートの基本情報を入力します。名前として「New York Datasets」と入力します。

[テンプレートの作成] ダイアログ

  1. [フィールドを追加] をクリックします。

  2. 新しいフィールドに「Contains PII」という名前を付け、[このフィールドを必須にする] をオンにします。次に、[ブール値] を選択してから、[完了] をクリックします。

  3. [フィールドを追加] をクリックします。

  4. フィールドに「PII Type」という名前を付け、タイプとして [列挙] を選択してから、次の値を追加します。この作業が終わったら、[完了] をクリックします。

  • 値 1: なし
  • 値 2: 生年月日
  • 値 3: 性別
  • 値 4: 位置情報
  1. [フィールドを追加] をクリックします。

  2. フィールドに「Data Owner Team」という名前を付け、[このフィールドを必須にする] をオンにします。タイプとして [列挙] を選択して次の値を追加します。この作業が終わったら [完了] をクリックします。

  • 値 1: マーケティング
  • 値 2: データ サイエンス
  • 値 3: セールス
  • 値 4: エンジニアリング
  1. [作成] をクリックします。

データセット レベルでタグを適用する

  1. [このテンプレートを使用していないエントリを検索] をクリックします。

  2. new_york_mv_collisions データセットをクリックします。

  3. データセット名の下にタグが 1 つも表示されていないことを確認したら、[タグを付ける] をクリックします。

  4. 先ほど作成したテンプレートを選択し、[OK] をクリックします。

  5. プルダウン メニューを使用してテンプレート フィールドに以下の値を入力し、[保存] をクリックします。

  • Contains PII: True
  • PII Type: 位置情報
  • Data Owner Team: エンジニアリング
  1. データセット レベルでタグを表示します。

テーブルと列のレベルでタグを適用する

アセットにさらに細かくタグ付けをするには、テーブルと列のレベルでタグを適用できます。

  1. 先ほど検索したアセットに戻って、[nypd_mv_collisions] テーブルをクリックします。

  2. [タグを付ける] をクリックし、[スキーマと列のタグ] の以下の項目を設定します。

  • テーブル: nypd_mv_collisions

  • 列: location

  • タグ テンプレート: New York Datasets

  • タグの値:

    • Contains PII: True
    • PII Type: 位置情報
    • Data Owner Team: エンジニアリング
  1. [保存] をクリックします。

  2. 位置情報の PII として項目をタグ付けし、テンプレート名をクリックするとタグが表示されることを確認します。

nypd_mv_collisions Data Catalog タグ テンプレートの [スキーマと列のタグ] タブページ

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Data Catalog タグ テンプレートの作成

タグとタグキーでデータセットを検索する

タグ付けが完了したので、先ほど追加したタグを使ってカタログを検索できます。

  1. tag:qwiklabs-[現在のプロジェクト].new_york_datasets.contains_pii をコピーして検索バーに貼り付け、プロジェクト ID プレフィックスを現在の Qwiklabs プロジェクト ID に変更します。

Data Catalog 検索ページ

  1. ご使用のカタログ全体ですばやく検索する方法についてその他の例を参照するには、Data Catalog でデータアセットを検索して表示するをご覧ください。

お疲れさまでした

以下の作業を行いながら Data Catalog について詳しく学びました。

  • 2 つのプロジェクト、2 つのデータセット、2 つのユーザー アカウントを備えた、企業のシミュレーション環境でデータを探索
  • 後でタグ付けする予定の機密データの列を把握するためにクエリを実行
  • Data Catalog を使って、プロジェクトの既存データセットを検索
  • Data Catalog のタグ テンプレートを使って、リッチ メタデータでアセットにタグ付け

クエストを完了する

このセルフペース ラボは、「BigQuery for Marketing Analysts」クエストと「Data Catalog Fundamentals」クエストの一部です。クエストとは学習プログラムを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、このラボが含まれるクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能な全クエストについては、Google Cloud Skills Boost カタログをご覧ください。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2023 年 7 月 11 日

ラボの最終テスト日: 2023 年 7 月 11 日

Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。