Knowledge Catalog を使用してデータアセットを管理する

Knowledge Catalog は、Bigtable リソースに関するメタデータを自動的にカタログ化します。この機能は、Bigtable データアセットの検索と管理に役立ちます。

以下の Bigtable リソースについて、メタデータが Bigtable から Knowledge Catalog へ自動的に同期されます。

  • インスタンス
  • クラスタ
  • テーブル(列ファミリーの詳細を含む)
  • ビュー:

    • 承認済みビュー
    • 継続的マテリアライズド ビュー
    • 論理ビュー

    ビューにはグローバル カタログ エントリがありません。ビューのメタデータにアクセスするには、インスタンスに割り当てられたリージョンをクエリする必要があります。詳細については、このドキュメントのビューのメタデータにアクセスするをご覧ください。

Knowledge Catalog は、フルマネージドなメタデータ管理サービスです。これは、技術とビジネス関連のメタデータの統合ビューとタグ付けメカニズムを提供します。Knowledge Catalog の詳細と、Knowledge Catalog を使用する理由については、Knowledge Catalog の概要をご覧ください。

Bigtable で Knowledge Catalog を使用するメリット

データに関する Knowledge Catalog の情報は、分析、データの再利用、アプリケーション開発、データ マネジメントをサポートします。

Knowledge Catalog のエントリは、リソース名などの詳細で検索できます。たとえば、インスタンス名を検索してインスタンスのエントリを検索したり、列ファミリーを検索してテーブルのエントリを検索できます。ファセット検索でフィルタを適用して、検索を絞り込むこともできます。詳細については、Knowledge Catalog でリソースを検索するをご覧ください。

Bigtable ビューを取り込んでカタログ化すると、次のことができます。

  • 承認済みビュー、論理ビュー、継続的なマテリアライズド ビューなどの詳細なデータアセットを、一元管理されたインベントリで確認できます。
  • どのビューが存在し、誰がアクセスできるかを可視化することで、ガバナンス チームがポリシーとアクセス制御を適用できるようにします。
  • 承認済みビューがテーブルに接続する方法と、論理ビューと継続的マテリアライズド ビューがインスタンスに接続する方法を理解して、コンテキストを改善します。

アスペクトを使用してメタデータを拡充すると、Bigtable テーブル内のデータを理解してカタログ化できます。アスペクトを使用すると、カタログ化されたエントリにカスタムのビジネス メタデータとテクニカル メタデータをアタッチできます。これにより、データ資産全体でデータが検出可能になり、ターゲットを絞った検索が可能になります。詳細については、アスペクトを管理してメタデータを拡充するをご覧ください。

Knowledge Catalog を使ってみる

Knowledge Catalog を使用して Bigtable データアセットの管理を開始するには、次のタスクを行います。

  1. 省略可: Knowledge Catalog を初めて使用する場合は、Dataplex API を有効にします。

  2. Knowledge Catalog の Bigtable エントリにアクセスする必要があるプリンシパルに IAM のロールを付与します。

  3. データアセットを検索する方法を確認する。

  4. メタデータを見つける方法については、Knowledge Catalog の検索構文をご覧ください。

  5. アスペクトを使用したメタデータの管理に関するコンセプトを確認する。詳細については、Knowledge Catalog のメタデータについてをご覧ください。

Knowledge Catalog でメタデータを表示する

各 Bigtable ビュータイプは、カタログ内で個別のエントリタイプとして表されます。Knowledge Catalog には、タイプごとに特定のメタデータ(アスペクト)が保存されます。

ビューのタイプ メタデータの項目
承認済みビュー 完全なサブセット定義、削除からの保護ステータス。ベーステーブル ID は、個別のアスペクト フィールドではなく、エントリのリソースパスと親エントリの一部です。
論理ビュー SQL クエリ、スキーマ、削除からの保護ステータス。ベーステーブルは SQL クエリで参照されます。
継続的マテリアライズド ビュー SQL クエリ、スキーマ、削除からの保護ステータス、ストレージの詳細。ベーステーブルは SQL クエリで参照されます。ストレージの側面では、sourceUri フィールドはベーステーブルではなく、ビューリソース自体を指します。

Bigtable メタデータを検索する方法

Knowledge Catalog を使用して、同期された Bigtable のメタデータを検索できます。

修飾された述語に加えて、次のメタデータ フィールドを使用して Bigtable リソースを検索できます。

  • インスタンス

    • Bigtable インスタンス名
    • Bigtable インスタンスの ID
    • クラスタのロケーション
    • クラスタ ID
  • テーブル

    • テーブル ID
    • 列ファミリー名
    • Bigtable インスタンス名
    • Bigtable インスタンスの ID

ビューは次のカテゴリで検索できます。

  • ビュータイプ:
    • type=cloud-bigtable-authorized-view
    • type=cloud-bigtable-logical-view
    • type=cloud-bigtable-materialized-view
  • 統合ビューのエイリアス: VIEW エイリアスを使用して、すべてのタイプの Bigtable ビューを同時に検索します。
  • メタデータの詳細: クエリテキスト、親リソース、サブセット定義の詳細、または削除からの保護などの特定の属性で検索します。
  • リージョン: Google Cloud コンソールで、location=LOCATION またはリージョン フィルタを使用して、リージョン内のビューまたはその他のリソースを検索します。

Google Cloud コンソールでグローバル Bigtable インスタンスまたはテーブル エントリを表示すると、[エントリリスト] タブにリージョン ビューは表示されません。同様に、リージョン ビューのエントリを表示しても、ブレッドクラム トレイルは親インスタンスまたはテーブルにリンクされません。これらのリソースを見つけるには、前述の検索カテゴリを使用して直接検索します。

ビューのメタデータにアクセスする

Bigtable のインスタンスやテーブルとは異なり、ビューにはグローバル カタログ エントリがありません。ビューのメタデータは、Knowledge Catalog(knowledgeCatalogRegion)でインスタンスに割り当てられたリージョンにのみ保存されます。

Knowledge Catalog でリソースを検索するときに、リージョン フィルタを使用して、特定のリージョンのビューやその他のリソースを検索できます。ただし、Dataplex API またはクライアント ライブラリを使用して Bigtable ビューのアスペクトを検索、取得、管理する場合は、リクエスト URL の location パラメータにインスタンスの Knowledge Catalog リージョンを指定する必要があります。ロケーションを global として指定すると、コマンドは NOT_FOUND エラーを返します。

以降のセクションでは、インスタンスのリージョンでビューのメタデータにアクセスする方法について説明します。

インスタンスの Knowledge Catalog リージョンを確認する

Bigtable インスタンスの knowledgeCatalogRegion を確認するには、gcloud bigtable instances describe コマンドを使用します。

gcloud bigtable instances describe INSTANCE_ID

INSTANCE_ID は、インスタンスの固有識別子に置き換えます。

コマンド出力には、次の例のように knowledgeCatalogRegion フィールドが含まれます。

createTime: '2026-01-15T10:00:00.000000Z'
displayName: my-instance
edition: ENTERPRISE
knowledgeCatalogRegion: us-central1
name: projects/my-project/instances/my-instance
state: READY
type: PRODUCTION

この例では、このインスタンスのビューの Dataplex API リクエストとリージョン フィルタのロケーションは us-central1 です。

ビューの Knowledge Catalog エントリを検査する

コンソール

Knowledge Catalog でビューのエントリを検査する手順は次のとおりです。

  1. Google Cloud コンソールで、Knowledge Catalog の [検索] ページに移動します。

    検索に移動

  2. 検索フィールドに、Bigtable ビューの名前または ID を入力するか、検索クエリを入力して、Enter キーを押します。

    次の述語を使用してビューを検索できます。

    • すべてのビュー: VIEW
    • 承認済みビュー: type=cloud-bigtable-authorized-view
    • 論理ビュー: type=cloud-bigtable-logical-view
    • 継続的マテリアライズド ビュー: type=cloud-bigtable-materialized-view
    • 地域別の視聴回数(例: location=us-central1)
  3. 検索を絞り込むには、[フィルタ] をクリックします。

  4. 検索結果で、ビュー名をクリックしてエントリの詳細ページを開きます。

    エントリの詳細ページには、概要情報、システム アスペクト(SQL クエリ、スキーマ、サブセット定義など)、アタッチされたカスタム アスペクトなど、すべてのエントリ属性が表示されます。

gcloud

Knowledge Catalog でビューのエントリを検査するには、gcloud dataplex entries lookup コマンドを使用します。

gcloud dataplex entries lookup "VIEW_RESOURCE_NAME" \
    --project="PROJECT_ID" \
    --location="LOCATION" \
    --entry-group="@bigtable" \
    --view="all"

次のように置き換えます。

  • VIEW_RESOURCE_NAME: ビューの Bigtable リソースパス(先頭の // は省略)。ビュータイプに基づいてリソースパスを作成します。
    • 承認済みビュー: bigtable.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID/tables/TABLE_ID/authorizedViews/VIEW_ID
    • 論理ビュー: bigtable.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEW_ID
    • 継続的マテリアライズド ビュー: bigtable.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID/materializedViews/VIEW_ID
  • PROJECT_ID:Google Cloud プロジェクトの固有識別子。
  • INSTANCE_ID: Bigtable インスタンスの固有識別子。
  • TABLE_ID: 承認済みビューの場合、ビューを含むベーステーブルの固有識別子。
  • VIEW_ID: ビューに割り当てられた識別子。
  • LOCATION: Bigtable インスタンスの Knowledge Catalog リージョン(例: us-central1)。

出力には、システム アスペクトとアタッチされたカスタム アスペクトの両方を含む、すべてのエントリ属性が返されます。出力の parentEntry フィールドには、親テーブルまたはインスタンスのリージョン エントリパスが含まれます。Bigtable はテーブルとインスタンスのエントリを global ロケーションにのみ保存するため、このリージョンの親エントリにはアクセスできません。親テーブルまたはインスタンス エントリを検索するには、ロケーションとして global を指定します。

REST

Dataplex API を使用してプログラムでビューエントリを検索するには、認証済みの HTTP GET リクエストを lookupEntry メソッドに送信します。

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:lookupEntry?entry=projects/PROJECT_ID/locations/LOCATION/entryGroups/@bigtable/entries/VIEW_RESOURCE_NAME&view=ALL"

次のように置き換えます。

  • VIEW_RESOURCE_NAME: ビューの Bigtable リソースパス(先頭の // は省略)。ビュータイプに基づいてリソースパスを作成します。
    • 承認済みビュー: bigtable.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID/tables/TABLE_ID/authorizedViews/VIEW_ID
    • 論理ビュー: bigtable.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEW_ID
    • 継続的マテリアライズド ビュー: bigtable.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID/materializedViews/VIEW_ID
  • PROJECT_ID:Google Cloud プロジェクトの固有識別子。
  • INSTANCE_ID: Bigtable インスタンスの固有識別子。
  • TABLE_ID: 承認済みビューの場合、ビューを含むベーステーブルの固有識別子。
  • VIEW_ID: ビューに割り当てられた識別子。
  • LOCATION: Bigtable インスタンスの Knowledge Catalog リージョン(例: us-central1)。

出力には、システム アスペクトとアタッチされたカスタム アスペクトの両方を含む、すべてのエントリ属性が返されます。出力の parentEntry フィールドには、親テーブルまたはインスタンスのリージョン エントリパスが含まれます。Bigtable はテーブルとインスタンスのエントリを global ロケーションにのみ保存するため、このリージョンの親エントリにはアクセスできません。親テーブルまたはインスタンス エントリを検索するには、ロケーションとして global を指定します。

必要なロール

Knowledge Catalog で Bigtable リソースを表示、タグ付け、検索するには、異なる権限が必要です。一般に、組織のプリンシパルに、タスクの実行に必要な最小限のロールを付与します。

公開アスペクトと非公開アスペクトを表示する権限

Bigtable リソースの公開アスペクトと非公開アスペクトを表示するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

これらの事前定義ロールには、公開アスペクトと非公開アスペクトの表示に必要な権限が含まれています。必要となる正確な権限は次のとおりです。

  • bigtable.instances.get
  • bigtable.clusters.get
  • bigtable.tables.get
  • dataplex.aspectTypes.get

ビューには次の権限が必要です。

  • 承認済みビュー: bigtable.authorizedViews.get
  • 論理ビュー: bigtable.logicalViews.get
  • 継続的マテリアライズド ビュー: bigtable.materializedViews.get

Bigtable リソースを検索する権限

Knowledge Catalog で Bigtable リソースを検索するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

これらの事前定義ロールには、Bigtable リソースの検索に必要な権限が含まれています。必要となる正確な権限は次のとおりです。

  • bigtable.instances.get
  • bigtable.clusters.get
  • bigtable.tables.get

ビューには次の権限が必要です。

  • 承認済みビュー: bigtable.authorizedViews.get
  • 論理ビュー: bigtable.logicalViews.get
  • 継続的マテリアライズド ビュー: bigtable.materializedViews.get

Bigtable メタデータを検索して表示する権限

Bigtable リソースのメタデータを検索して表示するには、次の権限を含むロールが必要です。

  • インスタンスとテーブル: bigtable.instances.get、bigtable.clusters.get、bigtable.tables.get
  • 承認済みビュー: bigtable.authorizedViews.get
  • 論理ビュー: bigtable.logicalViews.get
  • 継続的マテリアライズド ビュー: bigtable.materializedViews.get

通常、roles/bigtable.viewer や roles/bigtable.admin などの事前定義ロールには、これらの権限が含まれています。

Bigtable リソースにアスペクトを適用する権限

Knowledge Catalog の Bigtable リソースにアスペクトを適用するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

これらの事前定義ロールには、公開アスペクトと非公開アスペクトの追加に必要な権限が含まれています。必要となる正確な権限は次のとおりです。

  • bigtable.instances.update
  • bigtable.clusters.update
  • bigtable.tables.update
  • dataplex.aspectTypes.use
  • dataplex.entries.update

ビューには次の権限が必要です。

  • 承認済みビュー: bigtable.authorizedViews.update
  • 論理ビュー: bigtable.logicalViews.update
  • 継続的マテリアライズド ビュー: bigtable.materializedViews.update

省略可: カスタムロールを作成する

カスタムロールを作成して、プロジェクトまたは組織全体で Knowledge Catalog 内のすべての Bigtable メタデータへの完全アクセス権が必要なユーザーに付与することもできます。これにより、カスタムロールのプリンシパルとしてアクセスする必要があるユーザーまたはサービス アカウントを割り当てることができます。カスタムロールの詳細については、ロールと権限をご覧ください。

ロールに意味のある名前(Bigtable Dataplex 編集者など)を選び、ロールにアクセスする必要があるプリンシパルのみを割り当てます。設定手順については、カスタムロールの作成と管理をご覧ください。

カスタムロールに次の権限を付与します。

  • bigtable.instances.get
  • bigtable.instances.update
  • bigtable.clusters.get
  • bigtable.clusters.update
  • bigtable.tables.get
  • bigtable.tables.update
  • bigtable.authorizedViews.get
  • bigtable.authorizedViews.update
  • bigtable.logicalViews.get
  • bigtable.logicalViews.update
  • bigtable.materializedViews.get
  • bigtable.materializedViews.update
  • dataplex.aspectTypes.get
  • dataplex.aspectTypes.use

詳細については、Knowledge Catalog の IAM 権限をご覧ください。Bigtable の権限の詳細については、権限をご覧ください。

制限事項

以降のセクションでは、Knowledge Catalog を使用して Bigtable メタデータを管理する前に考慮すべき制約について説明します。

ロケーションの制約

組織でロケーションの制約が適用されている場合、Bigtable リソースのメタデータ エントリが Knowledge Catalog と同期されない場合があります。ロケーションの制約を適用する前に作成されたエントリは、Knowledge Catalog によって保持されます。

Knowledge Catalog がリソースを読み込めるようにするには、ロケーション ポリシーで次のことが許可されていることを確認してください。

  • インスタンスとテーブルの global マルチリージョン。
  • ビューのインスタンスの knowledgeCatalogRegion と一致する特定のリージョン。

列ファミリー名の例外

リクエスト内の列ファミリー名にピリオド(.)が含まれるリクエストは Dataplex API によって拒否されます。たとえば、列ファミリー名が personal.info の場合などです。

次のステップ