構造化データのデータ分析情報を使用する

このドキュメントでは、構造化データのデータ分析情報を生成、表示、管理する方法について説明します。AI を活用したデータ分析情報を使用すると、テーブルとデータセットのメタデータから説明、関係グラフ、SQL クエリが自動的に生成されるため、データ探索を迅速に行うことができます。

BigQuery Studio では、BigQuery データセットテーブルビュー、 Google Cloud BigLake テーブル、 BigQuery 外部テーブルのデータ分析情報を生成できます。

Knowledge Catalog では、Google Cloud の Lakehouse for Apache Iceberg で管理されている Apache Iceberg テーブルのデータ分析情報を生成できます。

始める前に

データ分析情報を使用する前に、次の前提条件を満たしていることを確認してください。

必要なロール

データ分析情報の使用に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与の詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

これらの事前定義ロールには データ分析情報を使用するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

データ分析情報を使用するには、次の権限が必要です。

  • dataplex.datascans.create
  • dataplex.datascans.get
  • dataplex.datascans.getData
  • dataplex.datascans.run

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

API を有効にする

データ分析情報を使用するには、プロジェクトで次の API を有効にします。

  • Dataplex API
  • BigQuery API
  • Gemini for Google Cloud API

API を有効にするために必要なロール

API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限が付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご確認ください

API を有効にする

Gemini for Google Cloud API の有効化の詳細については、 プロジェクトで Gemini for Google Cloud API を有効にする Google Cloud をご覧ください

データの準備

Lakehouse テーブルの場合は、データが Cloud Storage に保存され、Lakehouse テーブルが作成されていることを確認してください。 Google Cloud Google Cloud

Iceberg REST カタログ テーブルの場合は、テーブルが Lakehouse ランタイム カタログに登録されていることを確認してください。

BigQuery で分析情報を生成する

BigQuery データセット、テーブル、ビュー、 Google Cloud Lakehouse テーブル、BigQuery 外部テーブルのデータ分析情報は Gemini in BigQuery を使用して生成され、BigQuery Studio でのみ生成できます。

まず、 Gemini in BigQuery を設定してから、 分析情報を生成する必要があります。分析情報を生成したら、Knowledge Catalog で表示して変更できます。

BigQuery で分析情報を生成する方法については、次のドキュメントをご覧ください。

Apache Iceberg テーブルの分析情報を生成する

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

    [検索] に移動

  2. [**フィルタ**] で、[**Lakehouse**] を選択します。

  3. 分析情報を生成する Apache Iceberg テーブルを選択します。

  4. [分析情報] タブをクリックします。タブが空の場合は、このテーブルの分析情報がまだ生成されていないことを意味します。

  5. 分析情報を生成してアスペクトとしてテーブルに永続的に添付するには、[生成して公開] をクリックします。これにより、分析情報を Knowledge Catalog 内で組織内の他のユーザーがインデックスに登録、検索、表示できるようになります。

    分析情報を生成して現在のセッション中に一時的に表示するには、[公開せずに生成] をクリックします。このオプションは、メタデータを Knowledge Catalog に保存せずにデータの簡単な分析のみが必要な場合に使用します。

    [生成して公開] モードと [公開せずに生成] モードの違いについては、 データ分析情報を生成するモードをご覧ください。

  6. 分析情報を生成するリージョンを選択し、[生成] をクリックします。

    分析情報が入力されるまで数分かかります。

  7. [分析情報] タブをクリックして、次の内容を確認します。

    • 説明: AI によって生成された、テーブルの 目的を説明し、特定の列の詳細を示す概要です。
    • サンプルクエリ: データセットのスキーマとコンテンツに合わせて特別に設計された SQL クエリのリストです。
  8. 質問に回答する SQL クエリを表示するには、質問をクリックします。

リソースの生成インサイトを確認する

リソースの生成インサイトを表示するには、次の手順を行います。

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

    [検索] に移動

  2. 分析情報を表示する リソースを検索します

  3. 検索結果で、リソースをクリックしてエントリの詳細ページを開きます。

  4. 選択したリソースに対して生成された説明クエリ を確認します。

  5. 関係グラフを表示してデータポイントの接続方法を確認するには、[関係(プレビュー)] タブをクリックします。関係はデータセット レベルではなく、テーブルレベルでのみ表示できます。

テーブルの分析情報を管理する

テーブルの分析情報を生成して公開したら、Knowledge Catalog でメタデータ アスペクトとして確認して管理できます。テーブルレベルの分析情報には、テーブルと列の説明、サンプルクエリが含まれます。

テーブルの生成された説明を更新する

テーブルと列の説明は、Dataplex API のみを使用して更新できます。 これを行うには、 entries.patch メソッドを使用します。

テーブルの生成されたクエリを更新する

テーブルの生成されたクエリは、 Google Cloud コンソール と Dataplex API の両方を使用して更新できます。

コンソール

  1. 生成されたクエリを更新する テーブルを検索します。

  2. 検索結果で、テーブルをクリックしてエントリの詳細ページを開きます。

  3. [クエリ] セクションで、編集アイコン [編集] をクリックします。

  4. 必要に応じてクエリの説明を更新します。

  5. 所有権を管理する: デフォルトでは、[ソース] は [エージェント] に設定されています。クエリを 変更してソースを [ユーザー]に変更すると、以降の分析情報 の生成で変更が上書きされることはありません。[ソース] が [エージェント]のままの場合、再生成中にクエリが置き換えられることがあります。

  6. オーバーライドを管理する: 再実行時にすべてのクエリがオーバーライドされないようにするには、[ユーザー管理] オプションを [True] に設定します。これは、そのメタデータ アスペクトのクエリのセット全体に適用され、手動での変更が失われることはありません。

REST

テーブルのクエリを更新するには、 entries.patch メソッドを使用します。

テーブルの生成された関係を更新する

関係は、Dataplex API のみを使用して更新できます。これを行うには、 entries.patch メソッドを使用します。

データセットの分析情報を管理する

データセット レベルの分析情報は、概要とデータセット全体のクエリに重点を置いています。

データセットの生成された説明を更新する

データセットの説明は、Dataplex API のみを使用して更新できます。 これを行うには、 entries.patch メソッドを使用します。

データセットの生成されたクエリを更新する

データセットの生成されたクエリは、 Google Cloud コンソール と Dataplex API の両方を使用して更新できます。

コンソール

  1. 生成されたクエリを更新する データセットを検索します

  2. 検索結果で、データセットをクリックしてエントリの詳細ページを開きます。

  3. [クエリ] セクションで、編集アイコン [編集] をクリックします。

  4. 必要に応じて説明を更新します。

  5. 所有権を管理する: デフォルトでは、[ソース] は [エージェント] に設定されています。クエリを 変更してソースを [ユーザー]に変更すると、以降の分析情報 の生成で変更が上書きされることはありません。[ソース] が [エージェント]のままの場合、再生成中にクエリが置き換えられることがあります。

  6. オーバーライドを管理する: 再実行時にすべてのクエリがオーバーライドされないようにするには、[ユーザー管理] オプションを [True] に設定します。これは、そのメタデータ アスペクトのクエリのセット全体に適用され、手動での変更が失われることはありません。

REST

データセットのクエリを更新するには、 entries.patch メソッドを使用します。

データセットの生成されたエントリリンクを更新する

データ分析情報によって検出された関係は、 エントリリンクとしてテーブル エントリ間に保存されます。 これらのリンクには、テーブルの接続方法を記述する schema-join アスペクトが含まれます。

これらの関係を編集したり、手動でオーバーライドしたりするには、Dataplex API を使用する必要があります。

エントリリンクの更新動作

API を使用して関係を管理する場合は、手動による API の更新が自動バックグラウンド スキャンにどのように影響するかを理解して、誤ってデータを上書きしないようにすることが重要です。

  • 手動更新(API レベルの動作): UpdateEntryLink API は、PATCH メソッドを使用してアスペクト レベルの置換を行います。

    • アスペクトの完全な置換: 更新リクエストに schema-join アスペクトを含めると、Knowledge Catalog は既存のアスペクト全体を、指定した新しいアスペクトに置き換えます。

    • 自動マージなし: API は、新しいエントリを内部の joins リストに自動的にマージしません。結合を 1 つだけ含むペイロードを送信すると、そのアスペクト内の既存の結合がすべて削除されます。

  • 自動スキャン(システムレベルの動作): データ分析情報などの自動スキャンでは、API を呼び出す前に特別なマージロジックが実行され、ソースに基づいて確実性の高いメタデータが保持されます。

    • ソースの優先度: 複数のソースが同じ関係を特定した場合、Knowledge Catalog は次の順序で優先順位を付けます。

      1. USER(手動編集)
      2. TABLE_CONSTRAINTS
      3. QUERY_HISTORY
      4. AGENT(LLM の提案)
    • LLM の鮮度: AGENT ソースから派生した関係は動的です。以降のスキャンで関係が推奨されなくなった場合は削除されます。

エントリリンクを更新する

エントリリンクを表示して変更するには、次の手順を行います。

  1. エントリリンクを特定します。

    関係を更新する前に、特定のエントリを含むすべてのエントリリンクを一覧表示して、リソース名を見つけます。

    gcurl -X GET "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/@bigquery/entryLinks?filter=entry_references.name=\"TABLE_ENTRY_NAME\""
    

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

    • PROJECT_ID: プロジェクトの ID Google Cloud
    • LOCATION: データスキャンが トリガーされるリージョン
    • TABLE_ENTRY_NAME:BigQuery テーブル エントリの完全なリソース名(例: bigquery.googleapis.com/projects/my-project/datasets/my_dataset/tables/my_table
  2. エントリリンクを更新します。

    ターゲット エントリリンクの schema-join アスペクトを変更するには、PATCH メソッドを使用します。

    gcurl -X PATCH "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/@bigquery/entryLinks/ENTRYLINK_ID?aspectKeys=dataplex-types.global.schema-join" \
    -d '{
      "aspects": {
        "dataplex-types.global.schema-join": {
          "data": {
            "joins": [
              {
                "source": { "name": "PROJECT_ID.DATASET_ID.SOURCE_TABLE", "fields": ["SOURCE_FIELD"] },
                "target": { "name": "PROJECT_ID.DATASET_ID.TARGET_TABLE", "fields": ["TARGET_FIELD"] },
                "type": "JOIN",
                "inferenceSource": "USER"
              }
            ],
            "userManaged": false
          }
        }
      }
    }'
    

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

    • ENTRYLINK_ID: 前の手順で取得したエントリリンクの ID
    • DATASET_ID: BigQuery データセットの ID
    • SOURCE_TABLE: ソーステーブルの名前
    • SOURCE_FIELD: ソーステーブルの 結合に使用される列名
    • TARGET_TABLE: ターゲット テーブルの名前
    • TARGET_FIELD: ターゲット テーブルの 結合に使用される列名

次のステップ