Data Catalog を使用してリソースを管理する

このページでは、Data Catalog を使用して Spanner リソースを検索して管理する方法について説明します。

Data Catalog は、Dataplex 内のフルマネージドでスケーラブルなメタデータ管理サービスです。Spanner のインスタンス、データベース、テーブル、列、ビューに関する次のメタデータが自動的にカタログ化されます。

  • 名前と完全修飾名
  • ロケーション(リージョン)
  • 作成日と最終更新日
  • スキーマ(テーブルとビュー用)
  • 説明

Spanner メタデータは、一定間隔(通常は数時間ごと)で Data Catalog に自動的に同期されます。Data Catalog を使用すると、Spanner メタデータを検出して把握できます。Data Catalog は、次の作業に役立ちます。

  • 分析(依存関係やユースケースへの適合性など)
  • チェンジ マネジメント
  • データの移動(パイプライン)
  • スキーマ進化

Data Catalog では、Spanner メタデータ エントリにタグを添付してメタデータをキュレートできます。各タグには複数のメタデータ フィールドを含めることができ、事前定義済みのタグ テンプレートまたはカスタムタグ テンプレートに基づいて作成できます。

たとえば、個人を特定できる情報(PII)である社会保障番号を含む列に、次のタグを適用できます。

pii:true
pii_type:SSN

タグを使用するインスタンスを移動しても、タグは移動先のインスタンスに自動的に移動されません。代わりに、インスタンスを移動する前に移行元インスタンスからタグをエクスポートし、移行先インスタンスにタグをインポートする必要があります。詳細については、タグのエクスポートとインポートをご覧ください。

Data Catalog の詳細については、Data Catalog とはをご覧ください。

準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. プロジェクトで Data Catalog API を有効にします。

    Data Catalog API を有効にする

  7. 権限を確認してください。

    タグを検索して Spanner アセットに添付するには、特定の Identity and Access Management(IAM)のロールと権限が必要です。詳細については、Data Catalog に必要な IAM ロールと権限をご覧ください。

タグ テンプレートを作成する

タグ テンプレートは、新しいタグをすばやく作成するために使用できる再利用可能な構造です。 テンプレートを使用すると、作業の重複や不完全なタグを回避できます。タグ テンプレートは必要な数だけ作成できます。

詳細については、タグとタグ テンプレートをご覧ください。

Spanner アセットにタグを添付する

Spanner アセットにタグを添付すると、次のことが可能になります。

  • ビジネス メタデータをアセットに追加します。
  • ビジネス メタデータとその他のカスタム メタデータでアセットを検索します。

詳細については、タグとタグ テンプレートをご覧ください。

Spanner アセットを検索する

Google Cloud コンソールの Dataplex 検索ページを使用して、Spanner アセットを検索します。

  1. Dataplex の検索ページに移動します。

    Dataplex に移動

  2. [フィルタ] パネルの [システム] で、[Spanner] を選択します。

    Dataplex は、既知のすべての Spanner アセットを表示します。

  3. 省略可: 検索を絞り込むには、次のいずれかを行います。

    • [検索] ページでファセット検索を使用します。[データ型]、[プロジェクト]、[タグ] の下にあるチェックボックスをオンにします。

    • 検索フィールドで、system=cloud_spanner の後に検索パラメータを追加します。パラメータをスペースで区切ります。

    たとえば、データベースのみを表示するには、検索フィールドに次のテキストを入力して、Enter を押します。

     system=cloud_spanner type=database
    

    複雑な式では、かっこと、論理演算子 and および or を使用することもできます。検索フィールドで使用できる式の詳細については、Data Catalog の検索構文をご覧ください。

  4. 結果のテーブルでアセットの名前をクリックすると、そのアセットのメタデータが表示されます。

  5. 省略可: 必要に応じて次の操作を行います。

    • [概要を追加] をクリックして、アセットのリッチテキストによる説明を追加します。
    • アセットにタグを追加するには、[タグを添付] をクリックします。
    • テーブルの [スキーマ] タブをクリックして、テーブル列を表示します。
    • インスタンス(SERVICE)のメンバー データベースを表示するには、[エントリリスト] タブをクリックし、[検索で子エントリを表示する] をクリックします。([エントリリスト] タブが表示されない場合、インスタンスにデータベースがありません)。

ワークフローの例 - インスタンスから列にドリルダウンする

このワークフローの例では、まず Spanner インスタンスを検索して、次にメンバー データベースを表示し、そのデータベース内のテーブルを表示して最後にテーブル内の列を表示します。

  1. Dataplex の検索ページに移動します。

    Dataplex に移動

  2. [フィルタ] パネルの [システム] で、[Spanner] を選択します。

  3. Data Catalog 内のすべての Spanner インスタンスを表示するには、[データ型] の [サービス] チェックボックスをオンにするか、検索フィールドに次のテキストを入力して Enter キーを押します。

    system=cloud_spanner type=service
    
  4. インスタンス名を選択します。

  5. [Spanner サービスの詳細] ページで、[エントリリスト] タブをクリックし、[検索で子エントリを表示する] をクリックします。

    Dataplex がインスタンスのデータベースを表示します。

  6. Spanner データベースの詳細ページで、[エントリリスト] タブをクリックし、[検索で子エントリを表示する] をクリックします。

    Dataplex にデータベース内のテーブルが表示されます。

  7. テーブル名を選択し、[Spanner テーブルの詳細] ページで、[スキーマ] をクリックしてテーブルの列を表示します。

  8. 省略可: 列にタグを追加するには、[列タグ] のプラス記号をクリックします。

タグのエクスポートとインポート

Spanner インスタンスを移動すると、移動プロセスによって Data Catalog で作成したインスタンスタグが削除されます。タグを保持するには、次の操作を行う必要があります。

  • インスタンスに関連付けられているタグをクエリします。
  • タグの詳細をコピーします。
  • 移動したインスタンスにタグを作成します。

Spanner は 6 時間ごとにデータを同期します。インスタンス、データベース、テーブル、ビュー、列などの Spanner アセットで行われたメタデータの変更が Data Catalog に反映されるまでに、最大 6 時間かかることがあります。

移行元のインスタンスの構成からタグをエクスポートする

インスタンス(エントリまたはエントリ グループ)のタグを一覧表示するには、次のように Google Cloud CLI の gcloud data-catalog tags list コマンドを使用します。

curl \
'https://datacatalog.googleapis.com/v1/projects/PROJECT/locations/LOCATION/entryGroups/ENTRY_GROUP/tags?key=API_KEY' \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --compressed

以下を置き換えます。

  • PROJECT: タグを含むプロジェクト。
  • LOCATION: タグの場所。
  • API_KEY: API にアクセスできるようにする一意の文字列。
  • ACCESS_TOKEN: アプリケーションがサービスへの認証に使用するアクセス トークン。

タグを宛先構成にインポートする

この手順を完了する前に、次の操作を行います。

タグをコピーするには、次のように gcloud data-catalog tags create コマンドを使用して、移動したインスタンスにタグを作成します。

curl --request POST \
'https://datacatalog.googleapis.com/v1/entries:lookup?fullyQualifiedName=FQN&location=LOCATION&project=PROJECT&key=API_KEY' \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"column":"myColumnName","name":"myTagName","template":"myTemplateName","fields":{"myDoubleField":{"doubleValue":0}}}' \
  --compressed

以下を置き換えます。

  • FQN: リソースの完全修飾名(FQN)。FQN には次の 2 つの形式があります。

    リージョン化されていないリソースの場合: {SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}

    リージョン化されたリソースの場合: {SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}

    DPMS テーブルの例:

    dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}

  • LOCATION: ルックアップが実行されるロケーション。

  • PROJECT: ルックアップが実行されるプロジェクト。

  • API_KEY: API にアクセスできるようにする一意の文字列。

  • ACCESS_TOKEN: アプリケーションがサービスへの認証に使用するアクセス トークン。

Data Catalog に必要な IAM のロールと権限

次の表に、さまざまな Data Catalog オペレーションに必要な IAM ロールと権限を示します。

Data Catalog のオペレーション Spanner リソース 必要なロールまたは権限
タグ テンプレートを作成する なし roles/datacatalog.tagTemplateCreator
Spanner リソースを検索する インスタンス spanner.instances.get
データベース spanner.databases.get
テーブル spanner.databases.get
ビュー spanner.databases.get
公開タグを表示する インスタンス spanner.instances.get
データベース spanner.databases.get
テーブル spanner.databases.get
ビュー spanner.databases.get
非公開タグを表示する Instances datacatalog.tagTemplates.getTag + spanner.instances.get
データベース datacatalog.tagTemplates.getTag + spanner.databases.get
テーブル数 datacatalog.tagTemplates.getTag + spanner.databases.get
ビュー datacatalog.tagTemplates.getTag + spanner.databases.get
タグ テンプレートを使用して、Spanner リソースにタグを付加する Instances datacatalog.tagTemplates.use + spanner.instances.updateTag
データベース datacatalog.tagTemplates.use + spanner.databases.updateTag
テーブル数 datacatalog.tagTemplates.use + spanner.databases.updateTag
ビュー datacatalog.tagTemplates.use + spanner.databases.updateTag

spanner.instances.UpdateTag 権限は、次のロールに含まれています。

  • roles/spanner.admin

spanner.databases.UpdateTag 権限は、次のロールに含まれています。

  • roles/spanner.admin
  • roles/spanner.databaseAdmin
  • roles/spanner.databaseUser

詳しくは、事前定義のロールをご覧ください。

次のステップ