arrow_back

MySQL、PostgreSQL、SQL Server から Data Catalog コネクタを構築して実行する

参加 ログイン

MySQL、PostgreSQL、SQL Server から Data Catalog コネクタを構築して実行する

1時間 15分 クレジット: 1

GSP814

Google Cloud セルフペース ラボ

概要

Data Catalog はフルマネージドのスケーラブルなメタデータ管理サービスです。このサービスを利用すると、すべてのデータを迅速に検出、把握、管理できます。

データ検出のためのシンプルで使いやすい検索インターフェース、テクニカル メタデータとビジネス メタデータの両方を取得できる柔軟で高度なカタログ化システムを備えています。また、Cloud データ損失防止(DLP)と Cloud Identity and Access Management(IAM)との統合によってセキュリティとコンプライアンスの強固な基盤を確保できます。

Data Catalog を使用する

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

  • アクセス可能なデータアセットを検索する。

  • メタデータでアセットにタグ付けする。

ラボの内容

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

  • Data Catalog API を有効にして、このサービスを Google Cloud プロジェクトで使用できるようにする。

  • SQL Server から Data Catalog コネクタを実行する。

  • PostgreSQL から Data Catalog コネクタを実行する。

  • MySQL から Data Catalog コネクタを実行する。

設定と要件

Qwiklabs の設定

[ラボを開始] ボタンをクリックする前に

こちらの手順をお読みください。ラボの時間は制限されており、一時停止することはできません。[ラボを開始] をクリックするとタイマーが起動し、Google Cloud のリソースを利用できる時間が表示されます。

この Qwiklabs ハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。新しい一時的な認証情報が提供され、ラボではそれを使って Google Cloud にログインして利用できます。

前提条件

このラボを完了させるために必要なもの:

  • 標準的なインターネット ブラウザ(Chrome を推奨)
  • ラボを完了するために必要な時間

注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合、ラボではそのアカウントやプロジェクトは使用しないでください。

注: Chrome ブラウザを使用して個人の Google アカウントでログインしている場合は、シークレット ウィンドウで Google Cloud Console を開いてください。

Google Cloud Platform Console

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

Google Cloud Shell の有効化

Google Cloud Shell は、デベロッパー ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Google Cloud Shell では、コマンドラインで GCP リソースにアクセスできます。

GCP Console の右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。

Cloud Shell アイコン

[続行] をクリックします。

cloudshell_continue

環境のプロビジョニングと接続には少し時間がかかります。接続すると、すでに認証されており、プロジェクトは PROJECT_ID に設定されています。例えば:

Cloud Shell 端末

gcloud は Google Cloud Platform のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

次のコマンドを使用すると、有効なアカウント名を一覧表示できます。

gcloud auth list

出力:

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

次のコマンドを使用すると、プロジェクト ID を一覧表示できます。

gcloud config list project
	

出力:

[core]
project = <project_ID>
	

出力例:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Data Catalog API を有効にする

ナビゲーション メニューを開き、[API とサービス] > [ライブラリ] を選択します。

検索バーに「Data Catalog」と入力し、Google Cloud Data Catalog API を選択します。

続いて [有効にする] をクリックします。

Data Catalog API を有効にしようとして次のエラーが発生した場合:

Failed API Enablement.png

[閉じる] をクリックした後、ブラウザのタブを更新します。次に、もう一度 [有効化] をクリックします。Data Catalog API が正常に有効になるはずです。

Successful API Enablement.png

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

Data Catalog API を有効にする

SQL Server から Data Catalog を使用する

まず、環境を設定します。新しい Cloud Shell セッションを開き、次のコマンドを実行してプロジェクト ID を設定します。<YOUR_PROJECT_ID> は、Qwiklabs の [接続の詳細] パネルにある Google Cloud のプロジェクト ID で置き換えます。

gcloud config set project <YOUR_PROJECT_ID>

次に、それを環境変数として設定します。

export PROJECT_ID=$(gcloud config get-value project)

SQL Server データベースを作成する

Cloud Shell セッションで、次のコマンドを実行してスクリプトをダウンロードし、SQL Server インスタンスを作成して入力します。

gsutil cp gs://spls/gsp814/cloudsql-sqlserver-tooling.zip .
unzip cloudsql-sqlserver-tooling.zip

現在の作業ディレクトリをダウンロードしたディレクトリに変更します。

cd cloudsql-sqlserver-tooling

init-db.sh スクリプトを実行します。

bash init-db.sh

これで、SQLServer インスタンスが作成され、ランダムなスキーマが追加されます。

[Error: Failed to load "tfplan" as a plan file] が表示された場合は、init-db スクリプトを再実行してください。

完了するまでに 5~10 分ほどかかります。以下の出力が表示されたら次に進みます。

CREATE TABLE factory_warehouse15797.employees53b82dc5 ( school80581 REAL, reason91250 DATETIME, randomdata32431 BINARY, phone_number52754 REAL, person66471 REAL, credit_card75527 DATETIME )
COMPLETED

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

SQL Server データベースを作成する

サービス アカウントを設定する

次のコマンドを実行して、サービス アカウントを作成します。

gcloud iam service-accounts create sqlserver2dc-credentials \
--display-name  "Service Account for SQLServer to Data Catalog connector" \
--project $PROJECT_ID

サービス アカウント キーを作成し、ダウンロードします。

gcloud iam service-accounts keys create "sqlserver2dc-credentials.json" \
--iam-account "sqlserver2dc-credentials@$PROJECT_ID.iam.gserviceaccount.com"

サービス アカウントに Data Catalog の管理者ロールを追加します。

gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:sqlserver2dc-credentials@$PROJECT_ID.iam.gserviceaccount.com" \
--quiet \
--project $PROJECT_ID \
--role "roles/datacatalog.admin"

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

SQLServer のサービス アカウントを設定する

SQL Server から Data Catalog コネクタを実行する

こちらの GitHub リポジトリから、SQL Server コネクタを自分で構築できます。

簡単に行えるように、docker イメージを使用します。

必要な変数は、Terraform 構成によって出力されました。

ディレクトリを Terraform スクリプトの場所に変更します:

cd infrastructure/terraform/

環境変数を取得します。


public_ip_address=$(terraform output -raw public_ip_address)
username=$(terraform output -raw username)
password=$(terraform output -raw password)
database=$(terraform output -raw db_name)

サンプルコードのルート ディレクトリに戻ります。

cd ~/cloudsql-sqlserver-tooling

次のコマンドを実行して、コネクタを実行します。

docker run --rm --tty -v \
"$PWD":/data mesmacosta/sqlserver2datacatalog:stable \
--datacatalog-project-id=$PROJECT_ID \
--datacatalog-location-id=us-central1 \
--sqlserver-host=$public_ip_address \
--sqlserver-user=$username \
--sqlserver-pass=$password \
--sqlserver-database=$database

すぐに次の出力が表示されます。

============End sqlserver-to-datacatalog============

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

SQL Server から Data Catalog コネクタを実行する

Data Catalog 内の SQL Server のエントリを検索する

スクリプトが終了したら、ナビゲーション メニューを開き、サービスのリストから [Data Catalog] を選択します。

[Data Catalog] ページで、[タグ テンプレート] をクリックします。

sqlserver タグ テンプレートが一覧表示されているはずです。

次に、[エントリ グループ] を選択します。

sqlserver エントリ グループが表示されます:

sqlserver-entry-group.png

sqlserver エントリ グループをクリックします。コンソールには次のように表示されます。

entry_group.png

これはエントリ グループの実際の値です。sqlserver に含まれるすべてのエントリを UI で確認できます。

warehouse エントリの 1 つをクリックします。カスタム エントリの詳細とタグを確認します。

カスタム エントリの詳細とタグ:

tag1.png

これはコネクタで追加される実際の値です。これによって Data Catalog 内でメタデータを検索できるようになります。

クリーンアップする

作成されたリソースを削除するには、次のコマンドを実行して SQL Server のメタデータを削除します。

./cleanup-db.sh

クリーナー コンテナを実行します。

docker run --rm --tty -v \
"$PWD":/data mesmacosta/sqlserver-datacatalog-cleaner:stable \
--datacatalog-project-ids=$PROJECT_ID \
--rdbms-type=sqlserver \
--table-container-type=schema

次のコマンドを実行して、SQL Server データベースを削除します。

./delete-db.sh

ナビゲーション メニューを開き、[Data Catalog] を選択します。「sqlserver」を検索します。SQLServer のタグ テンプレートは結果に表示されなくなります。

SQLServerMetadata-removed.png

Cloud Shell に次の出力が表示されることを確認したら次に進みます。

 Cloud SQL Instance deleted
 COMPLETED

次に、同じ操作を PostgreSQL インスタンスで行う方法を学習します。

PostgreSQL から Data Catalog を使用する

PostgreSQL データベースを作成します。

Cloud Shell で次のコマンドを実行して、ホーム ディレクトリに戻ります。

cd

次のコマンドを実行して、GitHub リポジトリのクローンを作成します。

gsutil cp gs://spls/gsp814/cloudsql-postgresql-tooling.zip .
unzip cloudsql-postgresql-tooling.zip

現在の作業ディレクトリを、クローン作成したリポジトリのディレクトリに変更します。

cd cloudsql-postgresql-tooling

init-db.sh スクリプトを実行します。

bash init-db.sh

これにより、PostgreSQL インスタンスが作成され、ランダムなスキーマが入力されます。これが完了するまでに約 10 分かかる場合があります。

[Error: Failed to load "tfplan" as a plan file] が表示された場合は、init-db スクリプトを再実行してください。

すぐに次の出力が表示されます:

CREATE TABLE factory_warehouse69945.home17e97c57 ( house57588 DATE, paragraph64180 SMALLINT, ip_address61569 JSONB, date_time44962 REAL, food19478 JSONB, state8925 VARCHAR(25), cpf75444 REAL, date_time96090 SMALLINT, reason7955 CHAR(5), phone_number96292 INT, size97593 DATE, date_time609 CHAR(5), location70431 DATE )
 COMPLETED

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

PostgreSQL データベースを作成する

サービス アカウントを設定する

サービス アカウントを作成します。

gcloud iam service-accounts create postgresql2dc-credentials \
--display-name  "Service Account for PostgreSQL to Data Catalog connector" \
--project $PROJECT_ID

サービス アカウント キーを作成し、ダウンロードします。

gcloud iam service-accounts keys create "postgresql2dc-credentials.json" \
--iam-account "postgresql2dc-credentials@$PROJECT_ID.iam.gserviceaccount.com"

サービス アカウントに Data Catalog の管理者ロールを追加します。

gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:postgresql2dc-credentials@$PROJECT_ID.iam.gserviceaccount.com" \
--quiet \
--project $PROJECT_ID \
--role "roles/datacatalog.admin"

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

postgresql のサービス アカウントを作成する

PostgreSQL から Data Catalog コネクタを実行する

こちらの GitHub リポジトリから、PostgreSQL コネクタを自分で構築できます。

簡単に行えるように、docker イメージを使用します。

必要な変数は、Terraform 構成によって出力されました。

ディレクトリを Terraform スクリプトの場所に変更します:

cd infrastructure/terraform/

環境変数を取得します。


public_ip_address=$(terraform output -raw public_ip_address)
username=$(terraform output -raw username)
password=$(terraform output -raw password)
database=$(terraform output -raw db_name)

サンプルコードのルート ディレクトリに戻ります。

cd ~/cloudsql-postgresql-tooling

コネクタを実行します。

docker run --rm --tty -v \
"$PWD":/data mesmacosta/postgresql2datacatalog:stable \
--datacatalog-project-id=$PROJECT_ID \
--datacatalog-location-id=us-central1 \
--postgresql-host=$public_ip_address \
--postgresql-user=$username \
--postgresql-pass=$password \
--postgresql-database=$database

すぐに次の出力が表示されます。

============End postgresql-to-datacatalog============

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

PostgreSQL から Data Catalog コネクタを実行する

スクリプトの結果を確認する

Data Catalog のホームページにいることを確認します。

[タグ テンプレート] をクリックします。

次の postgresql タグ テンプレートが表示されます。

postgresql-tag-templates.png

[エントリ グループ] をクリックします。

次の postgresql エントリ グループが表示されます。

postgresql-entry-groups.png

postgresql エントリ グループをクリックします。コンソールには次のように表示されます。

entry_group_2.png

これはエントリ グループの実際の値です。postgresql に含まれるすべてのエントリを UI で確認できます。

warehouse エントリの 1 つをクリックします。カスタム エントリの詳細とタグを確認します。

カスタム エントリの詳細とタグ:

tags-2.png

これはコネクタで追加される実際の値です。これによって Data Catalog 内でメタデータを検索できるようになります。

クリーンアップする

作成されたリソースを削除するには、次のコマンドを実行して PostgreSQL のメタデータを削除します。

./cleanup-db.sh

クリーナー コンテナを実行します。

docker run --rm --tty -v \
"$PWD":/data mesmacosta/postgresql-datacatalog-cleaner:stable \
--datacatalog-project-ids=$PROJECT_ID \
--rdbms-type=postgresql \
--table-container-type=schema

最後に、PostgreSQL データベースを削除します。

./delete-db.sh

ナビゲーション メニューを開き、[Data Catalog] を選択します。「PostgreSQL」を検索します。PostgreSQL のタグ テンプレートは結果に表示されなくなります。

PostgreSQLServerMetadata-removed.png

Cloud Shell に次の出力が表示されることを確認したら次に進みます。

  Cloud SQL Instance deleted
  COMPLETED

次に、同じ操作を MySQL インスタンスで行う方法を学習します。

MySQL から Data Catalog を使用する

MySQL データベースを作成する

Cloud Shell で次のコマンドを実行して、ホーム ディレクトリに戻ります。

cd

次のコマンドを実行してスクリプトをダウンロードし、MySQL Server インスタンスを作成して入力します。

gsutil cp gs://spls/gsp814/cloudsql-mysql-tooling.zip .
unzip cloudsql-mysql-tooling.zip

現在の作業ディレクトリを、クローン作成したリポジトリのディレクトリに変更します。

cd cloudsql-mysql-tooling

init-db.sh スクリプトを実行します。

bash init-db.sh

これで、MySQL インスタンスが作成され、ランダムなスキーマが追加されます。数分で次のような出力が表示されます。

CREATE TABLE factory_warehouse14342.persons88a5ebc4 ( address9634 TEXT, cpf12934 FLOAT, food88799 BOOL, food4761 LONGTEXT, credit_card44049 FLOAT, city8417 TINYINT, name76076 DATETIME, address19458 TIME, reason49953 DATETIME )
 COMPLETED
[Error: Failed to load "tfplan" as a plan file] が表示された場合は、init-db スクリプトを再実行してください。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

MySQL データベースを作成する

サービス アカウントを設定する

サービス アカウントを作成します。

gcloud iam service-accounts create mysql2dc-credentials \
--display-name  "Service Account for MySQL to Data Catalog connector" \
--project $PROJECT_ID

サービス アカウント キーを作成し、ダウンロードします。

gcloud iam service-accounts keys create "mysql2dc-credentials.json" \
--iam-account "mysql2dc-credentials@$PROJECT_ID.iam.gserviceaccount.com"

サービス アカウントに Data Catalog の管理者ロールを追加します。

gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:mysql2dc-credentials@$PROJECT_ID.iam.gserviceaccount.com" \
--quiet \
--project $PROJECT_ID \
--role "roles/datacatalog.admin"

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

MySQL のサービス アカウントを作成する

MySQL から Data Catalog コネクタを実行します。

こちらの GitHub リポジトリから、MySQL コネクタを自分で構築できます。

簡単に行えるように、docker イメージを使用します。

必要な変数は、Terraform 構成によって出力されました。

ディレクトリを Terraform スクリプトの場所に変更します:

cd infrastructure/terraform/

環境変数を取得します。


public_ip_address=$(terraform output -raw public_ip_address)
username=$(terraform output -raw username)
password=$(terraform output -raw password)
database=$(terraform output -raw db_name)

サンプルコードのルート ディレクトリに戻ります。

cd ~/cloudsql-mysql-tooling

コネクタを実行します。

docker run --rm --tty -v \
"$PWD":/data mesmacosta/mysql2datacatalog:stable \
--datacatalog-project-id=$PROJECT_ID \
--datacatalog-location-id=us-central1 \
--mysql-host=$public_ip_address \
--mysql-user=$username \
--mysql-pass=$password \
--mysql-database=$database

すぐに次の出力が表示されます。

============End mysql-to-datacatalog============

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

MySQL から Data Catalog コネクタを実行する

スクリプトの結果を確認する

Data Catalog のホームページにいることを確認します。

[タグ テンプレート] をクリックします。

次の mysql タグ テンプレートが表示されます。

mysql-tag-templates.png

[エントリ グループ] をクリックします。

次の mysql エントリ グループが表示されます。

mysql-entry-groups.png

mysql エントリ グループをクリックします。コンソールには次のように表示されます。

entry-group-3.png

これはエントリ グループの実際の値です。MySQL に含まれるすべてのエントリを UI で確認できます。

warehouse エントリの 1 つをクリックします。カスタム エントリの詳細とタグを確認します。

カスタム エントリの詳細とタグ:

tags-3.png

これはコネクタで追加される実際の値です。これによって Data Catalog 内でメタデータを検索できるようになります。

クリーンアップする

作成されたリソースを削除するには、次のコマンドを実行して MySQL のメタデータを削除します。

./cleanup-db.sh

クリーナー コンテナを実行します。

docker run --rm --tty -v \
"$PWD":/data mesmacosta/mysql-datacatalog-cleaner:stable \
--datacatalog-project-ids=$PROJECT_ID \
--rdbms-type=mysql \
--table-container-type=database

最後に、PostgreSQL データベースを削除します。

./delete-db.sh

ナビゲーション メニューを開き、[Data Catalog] を選択します。「MySQL」を検索します。PostgreSQL のタグ テンプレートは結果に表示されなくなります。

MySQLServerServerMetadata-removed.png

Cloud Shell に次の出力が表示されることを確認したら次に進みます。

  Cloud SQL Instance deleted
  COMPLETED

お疲れさまでした

ラボ修了です!ここでは、Data Catalog コネクタの実践的な演習を行いました。

このラボでは、次の方法を学びました。

  • Data Catalog API を有効にする。
  • データセットを作成する。
  • そのデータセットに一般公開の New York Taxi テーブルをコピーする。
  • タグ テンプレートを作成し、テーブルにタグを付ける。

BigQueryBasicsforWarehousing BigQueryBasicsforMarketingAnalysists Data Catalog クエストのバッジ

クエストを完了する

このセルフペース ラボは、Qwiklabs の「BigQuery for Data Warehousing」、「BigQuery for Marketing Analysts」、「Data Catalog Fundamentals」のクエストの一部です。クエストとは学習パスを構成する一連のラボのことで、完了すると成果が認められてバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、次のクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なその他の Qwiklabs のクエストもご確認ください。

次のステップと詳細情報

ラボを終了する

ラボでの学習が完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Qwiklabs から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバック、ご提案、修正事項がございましたら、[サポート] タブからお知らせください。

Google Cloud Training & Certification

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

マニュアルの最終更新日: 2022 年 4 月 7 日
ラボの最終テスト日: 2022 年 4 月 7 日

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