このページでは、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 とはをご覧ください。
準備
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
プロジェクトで Data Catalog API を有効にします。
-
権限を確認してください。
タグを検索して Spanner アセットに添付するには、特定の Identity and Access Management(IAM)のロールと権限が必要です。詳細については、Data Catalog に必要な IAM ロールと権限をご覧ください。
タグ テンプレートを作成する
タグ テンプレートは、新しいタグをすばやく作成するために使用できる再利用可能な構造です。 テンプレートは、作業と不完全なタグの重複を避けるために役立ちます。必要な数のタグ テンプレートを作成します。
詳細については、タグとタグ テンプレートをご覧ください。
Spanner アセットにタグを添付する
Spanner アセットにタグを添付すると、次のことが可能になります。
- ビジネス メタデータをアセットに追加します。
- ビジネス メタデータとその他のカスタム メタデータでアセットを検索します。
詳細については、タグとタグ テンプレートをご覧ください。
Spanner アセットを検索する
Google Cloud コンソールの Dataplex の検索ページを使用して、Spanner アセットを検索します。
Dataplex の検索ページに移動します。
[フィルタ] パネルの [システム] で、[Spanner] を選択します。
Dataplex によって、既知の Spanner アセットがすべて表示されます。
省略可: 検索を絞り込むには、次のいずれかを行います。
[検索] ページでファセット検索を使用します。[データ型]、[プロジェクト]、[タグ] の下にあるチェックボックスをオンにします。
検索フィールドで、
system=cloud_spanner
の後に検索パラメータを追加します。パラメータをスペースで区切ります。
たとえば、データベースのみを表示するには、検索フィールドに次のテキストを入力して、
Enter
を押します。system=cloud_spanner type=database
複雑な式には、かっこと論理演算子
and
とor
を使用することもできます。検索フィールドで使用できる式の詳細については、Data Catalog の検索構文をご覧ください。結果の表でアセットの名前をクリックすると、そのアセットのメタデータが表示されます。
省略可: 必要に応じて次の操作を行います。
- [概要を追加] をクリックして、アセットの詳細なテキストの説明を追加します。
- [タグを添付] をクリックして、アセットにタグを追加します。
- テーブルの [スキーマ] タブをクリックして、テーブル列を表示します。
- インスタンス(サービス)に対してメンバー データベースを表示するには、[エントリリスト] タブをクリックし、[検索で子エントリを表示] をクリックします。([エントリリスト] タブが表示されない場合、インスタンスにデータベースがありません)。
ワークフローの例 - インスタンスから列へのドリルダウン
このワークフローの例では、まず Spanner インスタンスを検索して、メンバー データベースを表示し、そのデータベースのテーブルを表示してから、テーブル内の列を表示します。
Dataplex の検索ページに移動します。
[フィルタ] パネルの [システム] で、[Spanner] を選択します。
Data Catalog 内のすべての Spanner インスタンスを表示するには、[データ型] の [サービス] チェックボックスをオンにするか、検索フィールドに次のテキストを入力して
Enter
キーを押します。system=cloud_spanner type=service
インスタンス名を選択します。
Spanner サービスの詳細ページで [エントリリスト] タブをクリックし、[検索で子エントリを表示] をクリックします。
Dataplex がインスタンスのデータベースを表示します。
Spanner データベースの詳細ページで、[エントリリスト] タブをクリックし、[検索で子エントリを表示] をクリックします。
Dataplex がデータベース内のテーブルを表示します。
テーブル名を選択し、[Spanner テーブルの詳細] ページで、[スキーマ] をクリックしてテーブルの列を表示します。
省略可: 列にタグを追加するには、[列タグ] のプラス記号をクリックします。
タグをエクスポートまたはインポートする
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
詳しくは、事前定義のロールをご覧ください。