データ プロダクトを作成する

このドキュメントは、Knowledge Catalog(以前の Dataplex Universal Catalog)でデータ プロダクトを作成して構成するデータ プロダクト オーナーを対象としています。これらのリソースを定義するときは、ID が Knowledge Catalog のリソース命名ガイドラインに準拠していることを確認してください。

データ プロダクトのアーキテクチャと主なコンセプトの詳細については、データ プロダクトについてをご覧ください。

始める前に

データ プロダクトを作成する前に、次の前提条件を満たしてください。

Gemini を有効にする

データ アセットで Gemini を構成することは省略可能ですが、最初のデータ プロダクトを作成する前に強く推奨される手順です。

デフォルトでは、データ プロダクトを作成するには、アセットのビジネスの説明、技術的な定義、オンボーディング ドキュメントを手動で入力する必要があります。Gemini 統合を有効にすると、Knowledge Catalog は AI アシスタンスを活用して、スキーマとデータ スキャン結果を自動的に分析し、次のものを生成します。

  • ビジネス ドキュメント: データ プロダクトとその個々のデータアセットのドキュメント テンプレートとわかりやすい説明を生成します。
  • 分析情報とサンプルクエリ: アセットのスキーマ レイアウトに基づいてすぐに使用できるサンプルクエリを作成し、データ利用者は承認されるとすぐにプロダクトのクエリを開始できます。

Gemini を有効にしない場合は、このセクションをスキップできます。ただし、作成時にすべてのアセットのメタデータとクエリ テンプレートを手動で指定する必要があります。

Gemini in BigQuery を有効にする方法について詳しくは、Gemini in BigQuery を設定するをご覧ください。

API を有効にする

Dataplex API と BigQuery API を有効にします。

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

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

API を有効にする

データアセットを作成する

データアセット(BigQuery データセット、テーブル、ビューなど)が作成され、データが入力されていることを確認します。

データアセットの作成の詳細については、次のドキュメントをご覧ください。

ID を構成する

データ プロダクトで構成する Google グループまたはサービス アカウントを特定または作成します。

必要なロール

このセクションでは、次の主要セクションに必要な最小限の IAM ロールについて説明します。

  • データ プロダクト オーナー: データ プロダクトと関連するアセットを作成、構成、管理するユーザー

  • データ プロダクト コンシューマー: 公開されたデータ プロダクトを検索、表示、アクセスをリクエストするユーザー

データ プロダクト オーナーに必要なロール

データ プロダクトの作成と管理に必要な権限を取得するため、プロジェクトの次の IAM ロールを付与するように管理者へ依頼してください。

  • データ プロダクトの権限の作成、更新、削除、管理、アクセス リクエストの承認または拒否を行うための完全な権限: Dataplex データ プロダクト管理者 roles/dataplex.dataProductsAdmin
  • 権限を更新して管理し、データ プロダクトのアクセス リクエストを承認または拒否する: Dataplex データ プロダクト編集者 roles/dataplex.dataProductsEditor
  • メタデータ アスペクト(schemaoverviewcontactsqueries など)を追加する: Dataplex エントリと EntryLink オーナー roles/dataplex.entryOwner
  • アセットを検索して追加する: Dataplex Catalog 閲覧者 roles/dataplex.catalogViewer
  • システム アスペクト タイプ(overviewcontactcontractqueries など)を編集する: Dataplex Catalog 編集者 roles/dataplex.catalogEditor
  • 自動化されたドキュメントと分析情報の生成のために、分析情報データスキャンを作成または取得する: Dataplex DataScan 管理者 roles/dataplex.dataScanAdmin

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

これらの事前定義ロールには、データ プロダクトの作成と管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

データ プロダクトの作成と管理には、次の権限が必要です。

  • データ プロダクトを作成する: dataplex.dataProducts.create
  • プロジェクト内のデータ プロダクトを一覧表示します。 dataplex.dataProducts.list
  • データ プロダクトを取得または表示する: dataplex.dataProducts.get
  • 既存のデータ プロダクトを編集します。 dataplex.dataProducts.update
  • データ プロダクトを削除する: dataplex.dataProducts.delete
  • データ プロダクトへのアクセス リクエストを承認する: dataplex.dataProducts.approve
  • Knowledge Catalog を使用してデータ プロダクトを検索する:
    • dataplex.dataProducts.get
    • dataplex.projects.search
  • データ プロダクトのアクセス リクエストを作成する: dataplex.dataProducts.get
  • データアセットを作成する: dataplex.dataAssets.create
  • データ プロダクト内のデータアセットを一覧表示します。 dataplex.dataAssets.list
  • データアセットを取得する: dataplex.dataAssets.get
  • 既存のデータアセットを編集します。 dataplex.dataAssets.update
  • データアセットを削除する: dataplex.dataAssets.delete
  • データスキャンを作成する: dataplex.datascans.create
  • すべてのデータスキャンを一覧表示します。 dataplex.datascans.list
  • データスキャンを取得する: dataplex.datascans.get
  • データスキャンを実行する: dataplex.datascans.run
  • overview システム アスペクト タイプを編集します。 dataplex.entryGroups.useOverviewAspect
  • refresh cadence システム アスペクト タイプを編集します。 dataplex.entryGroups.useRefreshCadenceAspect
  • queries システム アスペクト タイプを編集します。 dataplex.entryGroups.useQueriesAspect

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

データ プロダクト コンシューマーに必要なロール

データ プロダクト コンシューマーがデータ プロダクトを検索、表示、アクセスをリクエストできるようにするには、データ プロダクト オーナーとして、データ プロダクトが検出可能であることを確認する必要があります。これを行うには、データ プロダクト コンシューマーにデータ プロダクトに対する次の IAM ロールを付与します。

  • データ プロダクトを検索してアクセスをリクエストする: Dataplex データ プロダクト コンシューマー(dataplex.dataProductsConsumer)と Dataplex Catalog 閲覧者(roles/dataplex.catalogViewer
  • データ プロダクトの定義とメタデータを表示する読み取り専用アクセス権: Dataplex データ プロダクト閲覧者(dataplex.dataProductsViewer

データ プロダクトを作成して構成する

データ プロダクトの作成には、次の大まかなタスクが含まれます。

  1. データ プロダクトを作成する

    この必須の初期ステップでは、一意のデータ プロダクト名、説明、データ プロダクトが作成されるリージョン、連絡先などのコアの詳細を定義する必要があります。

  2. 省略可: アセットを追加する

    このフェーズでは、データ プロダクトに含めるアセットを選択します。重要な制約として、アセットはデータ プロダクト自体と同じリージョンに存在する必要があります。一度に追加できるアセットは 10 個までです。データ プロダクト 1 つあたりの最大アセット数は 50 個です。

    サポートされているアセットの一覧については、サポートされているアセットをご覧ください。

  3. 省略可: アクセス グループとアセットの権限を構成する

    このオプションのフェーズでは、アクセス グループを作成してアクセス制御を簡素化します。これらのアクセス グループは、基盤となる Google グループとサービス アカウントのユーザー フレンドリーなエイリアス(AnalystReader など)として機能します。次に、特定の IAM ロールを選択して、特定のアセットのアクセス グループにマッピングすることで、権限を割り当てます。

  4. 省略可: 契約とアスペクトの詳細を追加する

    このフェーズでは、メタデータ フレームワークを関連付けて、ガバナンスとデータの検出可能性を高めます。契約を追加して、データ更新のケイデンスを正式に伝達できます。更新頻度、タイミング、差異のしきい値などのパラメータを指定します。カスタム アスペクトを関連付けて、データ プロダクトの追加のビジネス メタデータまたはテクニカル メタデータを提供することもできます。

  5. 省略可: 詳細情報を追加する

    この最終フェーズでは、ユーザー オンボーディング ガイド、ビジネス定義、サンプルクエリなどのリッチテキスト ドキュメントを追加して、承認されたらすぐにデータ プロダクトを操作できるようにします。

データ プロダクトを作成して構成するには、次のセクションの手順を完了します。

データ プロダクトを作成する

コンソール

  1. Google Cloud コンソールで、Knowledge Catalog の [データ プロダクト] ページに移動します。

    [データ プロダクト] に移動

  2. [作成] をクリックします。

  3. [データ プロダクトを作成] ペインで、次の詳細を入力します。

    • データ プロダクト名: データ プロダクトの一意の名前を入力します。
    • データ プロダクト ID: 自動生成される一意の識別子です。この欄は編集可能です。
    • プロジェクト ID: データ プロダクトが作成されるプロジェクトの一意の識別子です。プロジェクトを参照して選択します。
    • リージョン: データ プロダクトが作成されるリージョンまたはマルチリージョンを選択します。
    • データ プロダクト アイコン: データ プロダクトを視覚的に識別するためのアイコンを参照して選択します。これは省略可能です。
    • 説明: データ プロダクトの簡単な説明を入力します。
    • 連絡先: ガバナンスと承認のワークフローの連絡先情報を入力します。

      • データ プロダクト オーナーのメールアドレス: データ プロダクト オーナーのメールアドレスを入力します。
      • データ プロダクト承認者のメールアドレス: アクセス権のリクエストや変更の承認を担当する指定された承認者のメールアドレスを入力します。
    • ラベル: Key-Value ラベルを追加して、リソースを整理します。これは省略可能です。

  4. [データ プロダクトを作成] をクリックします。

Terraform

データ プロダクトを作成するには、google_dataplex_data_product リソースと IAM リソースを使用します。

resource "google_dataplex_data_product" "default" {
  project         = "PROJECT_ID"
  location        = "LOCATION"
  data_product_id = "DATA_PRODUCT_ID"
  display_name    = "DISPLAY_NAME"
  description     = "DESCRIPTION"
  owner_emails    = ["EMAIL_IDs"]

  # Optional: Configures designated approvers for access requests
  access_approval_config {
    approver_emails = ["APPROVER_EMAIL_IDs"]
  }

  # Optional: Base64-encoded icon (Max 3.0MiB)
  icon = "ICON_BASE64_STRING"
}

resource "google_dataplex_data_product_iam_member" "consumer_binding" {
  project         = "PROJECT_ID"
  location        = "LOCATION"
  data_product_id = "DATA_PRODUCT_ID"
  role            = "roles/dataplex.dataProductsConsumer"
  member          = "MEMBER"
}

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

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • LOCATION: データ プロダクトを作成するリージョン。
  • DATA_PRODUCT_ID: データ プロダクトの一意の ID。
  • DISPLAY_NAME: データ プロダクトのわかりやすい名前。
  • DESCRIPTION: データプロダクトの簡単な説明。
  • EMAIL_IDs: データ プロダクトのオーナーのメールアドレスのカンマ区切りリスト(例: ["user1@example.com", "user2@example.com"])。
  • APPROVER_EMAIL_IDs: このデータ プロダクトのアクセス リクエストまたは変更の承認を担当する指定された承認者のメールアドレスのカンマ区切りリスト。
  • ICON_BASE64_STRING: データ プロダクトを表す、Base64 でエンコードされた未加工の画像データ。最大サイズは 3.0 MiB です。データ URL スキームの接頭辞は含めないでください。
  • MEMBER: コンシューマー ロールを受け取るユーザー、サービス アカウント、グループ(例: group:all-analysts@example.com)。

C#

C#

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

using Google.Api.Gax.ResourceNames;
using Google.Cloud.Dataplex.V1;
using Google.LongRunning;

public sealed partial class GeneratedDataProductServiceClientSnippets
{
    /// <summary>Snippet for CreateDataProduct</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void CreateDataProductRequestObject()
    {
        // Create client
        DataProductServiceClient dataProductServiceClient = DataProductServiceClient.Create();
        // Initialize request argument(s)
        CreateDataProductRequest request = new CreateDataProductRequest
        {
            ParentAsLocationName = LocationName.FromProjectLocation("[PROJECT]", "[LOCATION]"),
            DataProductId = "",
            DataProduct = new DataProduct(),
            ValidateOnly = false,
        };
        // Make the request
        Operation<DataProduct, OperationMetadata> response = dataProductServiceClient.CreateDataProduct(request);

        // Poll until the returned long-running operation is complete
        Operation<DataProduct, OperationMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        DataProduct result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<DataProduct, OperationMetadata> retrievedResponse = dataProductServiceClient.PollOnceCreateDataProduct(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            DataProduct retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Go

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewDataProductClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.CreateDataProductRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#CreateDataProductRequest.
	}
	op, err := c.CreateDataProduct(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Java

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dataplex.v1.CreateDataProductRequest;
import com.google.cloud.dataplex.v1.DataProduct;
import com.google.cloud.dataplex.v1.DataProductServiceClient;
import com.google.cloud.dataplex.v1.LocationName;

public class SyncCreateDataProduct {

  public static void main(String[] args) throws Exception {
    syncCreateDataProduct();
  }

  public static void syncCreateDataProduct() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataProductServiceClient dataProductServiceClient = DataProductServiceClient.create()) {
      CreateDataProductRequest request =
          CreateDataProductRequest.newBuilder()
              .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
              .setDataProductId("dataProductId1437828576")
              .setDataProduct(DataProduct.newBuilder().build())
              .setValidateOnly(true)
              .build();
      DataProduct response = dataProductServiceClient.createDataProductAsync(request).get();
    }
  }
}

Node.js

Node.js

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Node.js の設定手順を行ってください。詳細については、Knowledge Catalog Node.js API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. The parent resource where this data product will be created.
 *  Format: projects/{project_id_or_number}/locations/{location_id}
 */
// const parent = 'abc123'
/**
 *  Optional. The ID of the data product to create.
 *  The ID must conform to RFC-1034 and contain only lower-case letters (a-z),
 *  numbers (0-9), or hyphens, with the first character a letter, the last a
 *  letter or a number, and a 63 character maximum. Characters outside of
 *  ASCII are not permitted.
 *  Valid format regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`
 *  If not provided, a system generated ID will be used.
 */
// const dataProductId = 'abc123'
/**
 *  Required. The data product to create.
 */
// const dataProduct = {}
/**
 *  Optional. Validates the request without actually creating the data product.
 *  Default: false.
 */
// const validateOnly = true

// Imports the Dataplex library
const {DataProductServiceClient} = require('@google-cloud/dataplex').v1;

// Instantiates a client
const dataplexClient = new DataProductServiceClient();

async function callCreateDataProduct() {
  // Construct request
  const request = {
    parent,
    dataProduct,
  };

  // Run request
  const [operation] = await dataplexClient.createDataProduct(request);
  const [response] = await operation.promise();
  console.log(response);
}

callCreateDataProduct();

Python

Python

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_create_data_product():
    # Create a client
    client = dataplex_v1.DataProductServiceClient()

    # Initialize request argument(s)
    data_product = dataplex_v1.DataProduct()
    data_product.display_name = "display_name_value"
    data_product.owner_emails = ["owner_emails_value1", "owner_emails_value2"]

    request = dataplex_v1.CreateDataProductRequest(
        parent="parent_value",
        data_product=data_product,
    )

    # Make the request
    operation = client.create_data_product(request=request)

    print("Waiting for operation to complete...")

    response = operation.result()

    # Handle the response
    print(response)

REST

データ プロダクトを作成するには、dataProducts.create メソッドを使用します。

たとえば、次の POST リクエストを送信します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{"display_name": "DISPLAY_NAME", "owner_emails": ["EMAIL_IDs"], "access_approval_config": { "approver_emails": ["APPROVER_EMAIL_IDs"]} }' \
https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataProducts?data_product_id=DATA_PRODUCT_ID

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

  • DISPLAY_NAME: データ プロダクトのわかりやすい名前
  • EMAIL_IDs: データ プロダクト オーナーのカンマ区切りメールアドレス
  • APPROVER_EMAIL_IDs: アクセス リクエストまたは変更の承認を担当する指定された承認者のメールアドレスのカンマ区切りリスト。
  • PROJECT_ID: Google Cloudの ID
  • LOCATION: データ プロダクトを作成するリージョン
  • DATA_PRODUCT_ID: データ プロダクトの一意の ID

省略可: アセットを追加する

BigQuery のテーブル、ビュー、データセット、モデルなど、さまざまなデータアセットをデータ プロダクトに追加できます。サポートされているアセットの一覧については、サポートされているアセットをご覧ください。

コンソール

  1. [アセットを追加] ペインで、[+追加] をクリックします。

  2. データ プロダクトに追加するアセットを検索して選択します。選択するアセットは、データ プロダクトと同じリージョンに存在する必要があります。

    必要な権限が付与されている場合は、アセットをクリックしてアセットのメタデータを表示できます。

  3. 検索結果を絞り込むには、[フィルタ] を使用します。

  4. アセットを選択したら、[追加] をクリックします。

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

Terraform

データ プロダクトにデータアセットを追加するには、google_dataplex_data_product_data_asset リソースを使用します。

resource "google_dataplex_data_product_data_asset" "example_asset" {
project         = "PROJECT_ID"
location        = "LOCATION"
data_product_id = "DATA_PRODUCT_ID"
data_asset_id   = "DATA_ASSET_ID"
resource        = "RESOURCE_NAME"
}

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

  • PROJECT_ID: Google Cloud プロジェクトの ID
  • LOCATION: データ プロダクトが存在するリージョン
  • DATA_PRODUCT_ID: データ プロダクトの ID
  • DATA_ASSET_ID: データ プロダクト内のこのデータアセットの一意の ID
  • RESOURCE_NAME: データアセットの完全なリソース名(例: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID

C#

C#

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

using Google.Cloud.Dataplex.V1;
using Google.LongRunning;

public sealed partial class GeneratedDataProductServiceClientSnippets
{
    /// <summary>Snippet for CreateDataAsset</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void CreateDataAssetRequestObject()
    {
        // Create client
        DataProductServiceClient dataProductServiceClient = DataProductServiceClient.Create();
        // Initialize request argument(s)
        CreateDataAssetRequest request = new CreateDataAssetRequest
        {
            ParentAsDataProductName = DataProductName.FromProjectLocationDataProduct("[PROJECT]", "[LOCATION]", "[DATA_PRODUCT]"),
            DataAssetId = "",
            DataAsset = new DataAsset(),
            ValidateOnly = false,
        };
        // Make the request
        Operation<DataAsset, OperationMetadata> response = dataProductServiceClient.CreateDataAsset(request);

        // Poll until the returned long-running operation is complete
        Operation<DataAsset, OperationMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        DataAsset result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<DataAsset, OperationMetadata> retrievedResponse = dataProductServiceClient.PollOnceCreateDataAsset(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            DataAsset retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Go

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewDataProductClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.CreateDataAssetRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#CreateDataAssetRequest.
	}
	op, err := c.CreateDataAsset(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Java

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dataplex.v1.CreateDataAssetRequest;
import com.google.cloud.dataplex.v1.DataAsset;
import com.google.cloud.dataplex.v1.DataProductName;
import com.google.cloud.dataplex.v1.DataProductServiceClient;

public class SyncCreateDataAsset {

  public static void main(String[] args) throws Exception {
    syncCreateDataAsset();
  }

  public static void syncCreateDataAsset() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataProductServiceClient dataProductServiceClient = DataProductServiceClient.create()) {
      CreateDataAssetRequest request =
          CreateDataAssetRequest.newBuilder()
              .setParent(DataProductName.of("[PROJECT]", "[LOCATION]", "[DATA_PRODUCT]").toString())
              .setDataAssetId("dataAssetId2108984609")
              .setDataAsset(DataAsset.newBuilder().build())
              .setValidateOnly(true)
              .build();
      DataAsset response = dataProductServiceClient.createDataAssetAsync(request).get();
    }
  }
}

Node.js

Node.js

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Node.js の設定手順を行ってください。詳細については、Knowledge Catalog Node.js API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. The parent resource where this data asset will be created.
 *  Format:
 *  projects/{project_id_or_number}/locations/{location_id}/dataProducts/{data_product_id}
 */
// const parent = 'abc123'
/**
 *  Optional. The ID of the data asset to create.
 *  The ID must conform to RFC-1034 and contain only lower-case letters (a-z),
 *  numbers (0-9), or hyphens, with the first character a letter, the last a
 *  letter or a number, and a 63 character maximum. Characters outside of
 *  ASCII are not permitted.
 *  Valid format regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`
 *  If not provided, a system generated ID will be used.
 */
// const dataAssetId = 'abc123'
/**
 *  Required. The data asset to create.
 */
// const dataAsset = {}
/**
 *  Optional. Validates the request without actually creating the data asset.
 *  Defaults to false.
 */
// const validateOnly = true

// Imports the Dataplex library
const {DataProductServiceClient} = require('@google-cloud/dataplex').v1;

// Instantiates a client
const dataplexClient = new DataProductServiceClient();

async function callCreateDataAsset() {
  // Construct request
  const request = {
    parent,
    dataAsset,
  };

  // Run request
  const [operation] = await dataplexClient.createDataAsset(request);
  const [response] = await operation.promise();
  console.log(response);
}

callCreateDataAsset();

Python

Python

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_create_data_asset():
    # Create a client
    client = dataplex_v1.DataProductServiceClient()

    # Initialize request argument(s)
    data_asset = dataplex_v1.DataAsset()
    data_asset.resource = "resource_value"

    request = dataplex_v1.CreateDataAssetRequest(
        parent="parent_value",
        data_asset=data_asset,
    )

    # Make the request
    operation = client.create_data_asset(request=request)

    print("Waiting for operation to complete...")

    response = operation.result()

    # Handle the response
    print(response)

REST

データ プロダクトにデータアセットを追加するには、dataAssets.create メソッドを使用します。

たとえば、次の POST リクエストを送信します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{"resource": "RESOURCE_NAME"}' \
https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataProducts/DATA_PRODUCT_ID/dataAssets?data_asset_id=DATA_ASSET_ID

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

  • RESOURCE_NAME: データアセットの完全なリソース名(例: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID
  • PROJECT_ID: Google Cloud プロジェクトの ID
  • LOCATION: データ プロダクトが存在するリージョン
  • DATA_PRODUCT_ID: データ プロダクトの ID
  • DATA_ASSET_ID: データ プロダクト内のこのデータアセットの一意の ID

省略可: アクセス グループとアセットの権限を構成する

[アクセス グループとアセットの権限を構成する] ペインで、アクセス グループを作成し、アセットに権限を割り当てることができます。

アクセス グループの構成

コンソール

  1. [アクセス グループを追加] をクリックします。

  2. [アクセス グループ名] フィールドに、アクセス グループの名前を入力します。例: Analyst

  3. [アクセス グループの説明] フィールドに、アクセス グループの説明を入力します。

  4. [アクセス グループ ID] フィールドに、このアクセス グループに割り当てる Google グループのメールアドレスを入力します。

    自分自身のアクセス権をリクエストするデータ プロダクト コンシューマーは、マッピングされた Google グループのメンバーとして追加されます。

    Google グループの作成の詳細については、 Google Cloud コンソールで Google グループを作成、管理するをご覧ください。

  5. [アクセス グループのサービス アカウント] フィールドに、このアクセス グループに割り当てるサービス アカウントのメールアドレスを入力します。

    サービス アカウントへのアクセスをリクエストするデータ プロダクト コンシューマーには、アクセス グループにマッピングされたデータ プロデューサーのサービス アカウントを借用するためのサービス アカウント トークン作成者(roles/iam.serviceAccountTokenCreator)IAM ロールが付与されます。

    サービス アカウントの作成の詳細については、サービス アカウントを作成するをご覧ください。

  6. [完了] をクリックします。

  7. 別のアクセス グループを追加するには、[アクセス グループを追加] をクリックして、手順を繰り返します。

    データ プロダクトごとに最大 3 つのアクセス グループを追加できます。

  8. [保存] をクリックします。

Terraform

データ プロダクトのアクセス グループを定義するには、google_dataplex_data_product リソース内の access_groups ネストされたブロックを使用します。

たとえば、次の構成を使用します。

resource "google_dataplex_data_product" "example_data_product" {
  project         = "PROJECT_ID"
  location        = "LOCATION"
  data_product_id = "DATA_PRODUCT_ID"
  display_name    = "DISPLAY_NAME"
  owner_emails    = ["EMAIL_IDs"]

  access_groups {
    id           = "analyst" # Internal identifier for configuration
    group_id     = "analyst" # Unique identifier of the access group, should be same as the 'id'
    display_name = "Business Analyst"
    description  = "Access group for regional analysts"
    principal {
      google_group = "analyst-team@example.com"
    }

# Service account principal
  access_groups {
    id           = "scientist"
    group_id     = "scientist"
    display_name = "Data Scientist"
    principal {
      service_account = "SERVICE_ACCOUNT_EMAIL_ADDRESS"
    }
  }
}

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

  • PROJECT_ID: Google Cloud プロジェクトの ID
  • LOCATION: データ プロダクトが存在するリージョン
  • DATA_PRODUCT_ID: データ プロダクトの一意の ID
  • DISPLAY_NAME: データ プロダクトのわかりやすい名前
  • EMAIL_IDs: データ プロダクト オーナーのメールアドレスのカンマ区切りリスト(例: ["user1@example.com", "user2@example.com"]
  • SERVICE_ACCOUNT_EMAIL_ADDRESS: サービス アカウントのメールアドレス

C#

C#

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

using Google.Cloud.Dataplex.V1;
using Google.LongRunning;
using Google.Protobuf.WellKnownTypes;

public sealed partial class GeneratedDataProductServiceClientSnippets
{
    /// <summary>Snippet for UpdateDataProduct</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void UpdateDataProductRequestObject()
    {
        // Create client
        DataProductServiceClient dataProductServiceClient = DataProductServiceClient.Create();
        // Initialize request argument(s)
        UpdateDataProductRequest request = new UpdateDataProductRequest
        {
            DataProduct = new DataProduct(),
            UpdateMask = new FieldMask(),
            ValidateOnly = false,
        };
        // Make the request
        Operation<DataProduct, OperationMetadata> response = dataProductServiceClient.UpdateDataProduct(request);

        // Poll until the returned long-running operation is complete
        Operation<DataProduct, OperationMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        DataProduct result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<DataProduct, OperationMetadata> retrievedResponse = dataProductServiceClient.PollOnceUpdateDataProduct(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            DataProduct retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Go

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewDataProductClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.UpdateDataProductRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#UpdateDataProductRequest.
	}
	op, err := c.UpdateDataProduct(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Java

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dataplex.v1.DataProduct;
import com.google.cloud.dataplex.v1.DataProductServiceClient;
import com.google.cloud.dataplex.v1.UpdateDataProductRequest;
import com.google.protobuf.FieldMask;

public class SyncUpdateDataProduct {

  public static void main(String[] args) throws Exception {
    syncUpdateDataProduct();
  }

  public static void syncUpdateDataProduct() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataProductServiceClient dataProductServiceClient = DataProductServiceClient.create()) {
      UpdateDataProductRequest request =
          UpdateDataProductRequest.newBuilder()
              .setDataProduct(DataProduct.newBuilder().build())
              .setUpdateMask(FieldMask.newBuilder().build())
              .setValidateOnly(true)
              .build();
      DataProduct response = dataProductServiceClient.updateDataProductAsync(request).get();
    }
  }
}

Node.js

Node.js

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Node.js の設定手順を行ってください。詳細については、Knowledge Catalog Node.js API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. The data product to update.
 *  The data product's `name` field is used to identify the data product to
 *  update.
 */
// const dataProduct = {}
/**
 *  Optional. The list of fields to update.
 *  If this is empty or not set, then all the fields will be updated.
 */
// const updateMask = {}
/**
 *  Optional. Validates the request without actually updating the data product.
 *  Default: false.
 */
// const validateOnly = true

// Imports the Dataplex library
const {DataProductServiceClient} = require('@google-cloud/dataplex').v1;

// Instantiates a client
const dataplexClient = new DataProductServiceClient();

async function callUpdateDataProduct() {
  // Construct request
  const request = {
    dataProduct,
  };

  // Run request
  const [operation] = await dataplexClient.updateDataProduct(request);
  const [response] = await operation.promise();
  console.log(response);
}

callUpdateDataProduct();

Python

Python

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_update_data_product():
    # Create a client
    client = dataplex_v1.DataProductServiceClient()

    # Initialize request argument(s)
    data_product = dataplex_v1.DataProduct()
    data_product.display_name = "display_name_value"
    data_product.owner_emails = ["owner_emails_value1", "owner_emails_value2"]

    request = dataplex_v1.UpdateDataProductRequest(
        data_product=data_product,
    )

    # Make the request
    operation = client.update_data_product(request=request)

    print("Waiting for operation to complete...")

    response = operation.result()

    # Handle the response
    print(response)

REST

データ プロダクトのアクセス グループを構成するには、dataProducts.patch メソッドを使用します。

たとえば、次の PATCH リクエストを送信します。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{"access_groups": ACCESS_GROUPS_MAP}' \
https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataProducts/DATA_PRODUCT_ID?update_mask="access_groups"

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

  • ACCESS_GROUPS_MAP: 各キーがアクセス グループ ID で、値が AccessGroup オブジェクトであるマップを表す JSON オブジェクト。次に例を示します。

    {
    "analyst": {
      "id": "analyst",
      "display_name": "Analyst access group",
      "description": "Access group for analysts",
      "principal":
        {
          "google_group": "analyst-team@example.com",
          "service_account": "analyst-svc@"
        }
    }
    
  • PROJECT_ID: Google Cloudの ID

  • LOCATION: データ プロダクトが存在するリージョン

  • DATA_PRODUCT_ID: データ プロダクトの ID

アセットの権限を構成する

アクセス グループを構成したら、データ プロダクト内のアセットの権限を構成できます。

コンソール

  1. [アセットの権限] セクションで、権限を構成するアセットを選択します。一度に選択して権限を構成できるアセットは 10 個までです。

  2. [権限を構成] をクリックします。

  3. [アクセス グループを選択] フィールドで、アクセス グループを選択します。

  4. [IAM ロールを割り当てる] フィールドで、アクセス グループに割り当てる IAM ロールを選択します。

    たとえば、アセットが Sales という名前の BigQuery テーブルで、Analyst アクセス グループを選択し、このアクセス グループに BigQuery Metadata Viewer ロールを割り当てた場合、Analyst アクセス グループに属するデータ プロダクトのコンシューマーは、Sales テーブルに対する BigQuery Metadata Viewer 権限を持ちます。

    アセットには複数のロールを追加できます。

  5. [構成] をクリックします。アセットに割り当てられている権限が表示されます。

  6. 他のアセットの権限を構成するには、上記の手順を繰り返します。

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

Terraform

google_dataplex_data_product_data_asset リソースの access_group_configs ブロックを使用して、特定のアセットのアクセス グループに IAM ロールを割り当てます。

たとえば、次の構成を使用します。

resource "google_dataplex_data_product_data_asset" "example_data_asset" {
project         = "PROJECT_ID"
location        = "LOCATION"
data_product_id = "DATA_PRODUCT_ID"
data_asset_id   = "DATA_ASSET_ID"
resource        = "RESOURCE_NAME"

access_group_configs {
  access_group = "analyst" # Must match the 'id' defined in google_dataplex_data_product
  iam_roles    = ["roles/bigquery.dataViewer"]
}
}

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

  • PROJECT_ID: Google Cloud プロジェクトの ID
  • LOCATION: データ プロダクトが存在するリージョン
  • DATA_PRODUCT_ID: データ プロダクトの ID
  • DATA_ASSET_ID: データ プロダクト内のこのデータアセットの一意の ID
  • RESOURCE_NAME: データアセットの完全なリソース名(例: //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID

C#

C#

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

using Google.Cloud.Dataplex.V1;
using Google.LongRunning;
using Google.Protobuf.WellKnownTypes;

public sealed partial class GeneratedDataProductServiceClientSnippets
{
    /// <summary>Snippet for UpdateDataAsset</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void UpdateDataAssetRequestObject()
    {
        // Create client
        DataProductServiceClient dataProductServiceClient = DataProductServiceClient.Create();
        // Initialize request argument(s)
        UpdateDataAssetRequest request = new UpdateDataAssetRequest
        {
            DataAsset = new DataAsset(),
            UpdateMask = new FieldMask(),
            ValidateOnly = false,
        };
        // Make the request
        Operation<DataAsset, OperationMetadata> response = dataProductServiceClient.UpdateDataAsset(request);

        // Poll until the returned long-running operation is complete
        Operation<DataAsset, OperationMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        DataAsset result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<DataAsset, OperationMetadata> retrievedResponse = dataProductServiceClient.PollOnceUpdateDataAsset(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            DataAsset retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Go

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewDataProductClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.UpdateDataAssetRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#UpdateDataAssetRequest.
	}
	op, err := c.UpdateDataAsset(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Java

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dataplex.v1.DataAsset;
import com.google.cloud.dataplex.v1.DataProductServiceClient;
import com.google.cloud.dataplex.v1.UpdateDataAssetRequest;
import com.google.protobuf.FieldMask;

public class SyncUpdateDataAsset {

  public static void main(String[] args) throws Exception {
    syncUpdateDataAsset();
  }

  public static void syncUpdateDataAsset() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataProductServiceClient dataProductServiceClient = DataProductServiceClient.create()) {
      UpdateDataAssetRequest request =
          UpdateDataAssetRequest.newBuilder()
              .setDataAsset(DataAsset.newBuilder().build())
              .setUpdateMask(FieldMask.newBuilder().build())
              .setValidateOnly(true)
              .build();
      DataAsset response = dataProductServiceClient.updateDataAssetAsync(request).get();
    }
  }
}

Node.js

Node.js

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Node.js の設定手順を行ってください。詳細については、Knowledge Catalog Node.js API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. The data asset to update.
 *  The data asset's `name` field is used to identify the data asset to update.
 */
// const dataAsset = {}
/**
 *  Optional. The list of fields to update.
 *  If this is empty or not set, then all the fields will be updated.
 */
// const updateMask = {}
/**
 *  Optional. Validates the request without actually updating the data asset.
 *  Defaults to false.
 */
// const validateOnly = true

// Imports the Dataplex library
const {DataProductServiceClient} = require('@google-cloud/dataplex').v1;

// Instantiates a client
const dataplexClient = new DataProductServiceClient();

async function callUpdateDataAsset() {
  // Construct request
  const request = {
    dataAsset,
  };

  // Run request
  const [operation] = await dataplexClient.updateDataAsset(request);
  const [response] = await operation.promise();
  console.log(response);
}

callUpdateDataAsset();

Python

Python

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_update_data_asset():
    # Create a client
    client = dataplex_v1.DataProductServiceClient()

    # Initialize request argument(s)
    data_asset = dataplex_v1.DataAsset()
    data_asset.resource = "resource_value"

    request = dataplex_v1.UpdateDataAssetRequest(
        data_asset=data_asset,
    )

    # Make the request
    operation = client.update_data_asset(request=request)

    print("Waiting for operation to complete...")

    response = operation.result()

    # Handle the response
    print(response)

REST

データ プロダクト内のアセットの権限を構成するには、dataAssets.patch メソッドを使用します。

たとえば、次の PATCH リクエストを送信します。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{"access_group_configs": ACCESS_GROUP_CONFIGS_MAP}' \
https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataProducts/DATA_PRODUCT_ID/dataAssets/DATA_ASSET_ID?update_mask="access_group_configs"

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

  • ACCESS_GROUP_CONFIGS_MAP: 各キーがアクセス グループ ID で、値が AccessGroupConfig オブジェクトであるマップを表す JSON オブジェクト。次に例を示します。

    {
    "analyst": {
      iam_roles: ["roles/bigquery.dataViewer"]
      }
    }
    
  • PROJECT_ID: Google Cloudの ID

  • LOCATION: データ プロダクトが存在するリージョン

  • DATA_PRODUCT_ID: データ プロダクトの ID

  • DATA_ASSET_ID: 権限を構成するアセットの ID

省略可: 契約とアスペクトの詳細を追加する

データ プロダクトの契約とアスペクトを追加できます。

契約を追加する

データ プロデューサーとコンシューマー間の信頼の基盤を確立するには、データ プロダクトに契約を関連付けることができます。更新時間やしきい値などのパラメータを指定することで、データがいつ更新されるか、特定のビジネス要件を満たしているかどうかを理解するために必要なコンテキストをユーザーに提供できます。

コンソール

  1. [契約とアスペクトの詳細を追加] ペインで、[契約を追加] をクリックします。

  2. [契約を選択] フィールドで、[Refresh cadence] を選択します。

  3. [頻度] フィールドで、データが更新または配信される頻度について合意したスケジュールを選択し、データ プロデューサーからデータ コンシューマーへの予測可能なフローを確保します。例: Weekly

  4. [更新時間] フィールドに、データがソースで更新されてから利用可能になるまでの最大許容時間を入力します。例: 23:00 PST

  5. [しきい値(分単位)] フィールドに、データ配信の許容可能な遅延の測定可能な上限を分単位で入力します。たとえば、30 と入力すると、しきい値が 30 分に設定されます。

  6. 省略可: [Cron のスケジュール] フィールドに、データ生成と配信のスケジュールを定義する cron 式を MINUTE HOUR DAY_OF_MONTH MONTH DAY_OF_WEEK 形式で入力します。

    指定できる値は次のとおりです。

    • MINUTE: 0-59
    • HOUR: 0-23
    • DAY_OF_MONTH: 1-31
    • MONTH: 1-31 または JAN-DEC
    • DAY_OF_WEEK: 0-6 または SUN-SAT

    たとえば、0 8 * * 1-5 は平日の午前 8 時(月曜日から金曜日)に実行されます。

  7. [保存] をクリックします。

REST

契約は、データ プロダクトのアスペクトとしてモデル化されます。データ プロダクトの Refresh Cadence 契約を追加するには、entries.patch メソッドを使用します。

たとえば、次の PATCH リクエストを送信します。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d \
'{
  "aspects": {
    "dataplex-types.global.refresh-cadence": {
      "aspectType": "projects/dataplex-types/locations/global/aspectTypes/refresh-cadence",
      "data": {
        "frequency": "REFRESH_FREQUENCY"
      }
    }
  }
}' \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/@dataplex/entries/projects/DATA_PRODUCT_PROJECT_NUMBER/locations/DATA_PRODUCT_LOCATION/dataProducts/DATA_PRODUCT_ID?updateMask=aspects"

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

  • REFRESH_FREQUENCY: データが更新または配信される頻度について合意したスケジュール。データ プロデューサーからデータ コンシューマーへの予測可能なフローを確保します。例: Weekly
  • PROJECT_ID: API 呼び出しが行われている Google Cloud プロジェクトの ID
  • LOCATION: 呼び出す Knowledge Catalog サービス エンドポイントのリージョン(例: us-central1
  • DATA_PRODUCT_PROJECT_NUMBER: データ プロダクト リソースが配置されているプロジェクト番号
  • DATA_PRODUCT_LOCATION: データ プロダクト リソースのロケーション
  • DATA_PRODUCT_ID: データ プロダクトの ID

Terraform

契約は、データ プロダクトのアスペクトとしてモデル化されます。契約を管理するには、基盤となる Knowledge Catalog エントリを管理する必要があります。Terraform は既存のアスペクトを自動的に検出しないため、最初に google_dataplex_entry をインポートする必要があります。

エントリをインポートするには、次のコマンドを使用します。

terraform import google_dataplex_entry.data_product_metadata "projects/DATA_PRODUCT_PROJECT_NUMBER/locations/LOCATION/entryGroups/@dataplex/entries/projects/DATA_PRODUCT_PROJECT_NUMBER/locations/LOCATION/dataProducts/DATA_PRODUCT_ID"

Terraform 構成:

resource "google_dataplex_entry" "data_product_metadata" {
project        = "DATA_PRODUCT_PROJECT_NUMBER"
location       = "LOCATION"
entry_group_id = "@dataplex"
entry_id       = "projects/DATA_PRODUCT_PROJECT_NUMBER/locations/LOCATION/dataProducts/DATA_PRODUCT_ID"
entry_type     = "projects/655216118709/locations/global/entryTypes/data-product"

aspects {
  aspect_key = "655216118709.global.refresh-cadence"
  aspect {
    data = jsonencode({
      frequency = "REFRESH_FREQUENCY"
    })
  }
}
}

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

  • DATA_PRODUCT_PROJECT_NUMBER: データ プロダクト リソースが配置されているプロジェクト番号
  • LOCATION: 呼び出す Knowledge Catalog サービス エンドポイントのリージョン(例: us-central1
  • DATA_PRODUCT_ID: データ プロダクトの ID
  • REFRESH_FREQUENCY: データが更新または配信される頻度について合意したスケジュール。データ プロデューサーからデータ コンシューマーへの予測可能なフローを確保します。例: Weekly

インポート プロセスの一般的な情報については、Terraform インポートのドキュメントをご覧ください。

アスペクトを追加

アスペクトを使用して、構造化された再利用可能なメタデータでデータ プロダクトを拡充します。これらのテンプレートは、データ プロデューサーがデータ プロダクトの品質と適合性を伝えるための標準化された方法を提供し、ガバナンスを改善して、消費者がプロダクトがビジネスニーズを満たしているかどうかを判断できるようにします。

データ プロダクトにアスペクトを追加する手順は次のとおりです。

コンソール

  1. [契約とアスペクトの詳細を追加] ペインで、[+ アスペクトを追加] をクリックします。

  2. [アスペクト タイプを選択] フィールドで、リストからアスペクト タイプを検索して選択します。例: Geo context

  3. [保存] をクリックします。

REST

データ プロダクトのアスペクトを追加するには、entries.patch メソッドを使用します。

たとえば、次の PATCH リクエストを送信します。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d \
'{
  "aspects": {
    "ASPECT_PROJECT_ID.ASPECT_LOCATION.ASPECT_NAME": {
      "aspectType": "projects/ASPECT_PROJECT_ID/locations/ASPECT_LOCATION/aspectTypes/ASPECT_NAME",
      "data": {}
    }
  }
}' \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/@dataplex/entries/projects/DATA_PRODUCT_PROJECT_NUMBER/locations/DATA_PRODUCT_LOCATION/dataProducts/DATA_PRODUCT_ID?updateMask=aspects"

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

  • ASPECT_PROJECT_ID: アスペクトが作成される Google Cloudプロジェクトの ID
  • ASPECT_LOCATION: アスペクトが作成される Knowledge Catalog サービス エンドポイントのリージョン(例: us-central1
  • ASPECT_NAME: データ プロダクトにアタッチするアスペクトの名前
  • PROJECT_ID: API 呼び出しが行われている Google Cloud プロジェクトの ID
  • LOCATION: 呼び出す Knowledge Catalog サービス エンドポイントのリージョン(例: us-central1
  • DATA_PRODUCT_PROJECT_NUMBER: データ プロダクト リソースが配置されているプロジェクト番号
  • DATA_PRODUCT_LOCATION: データ プロダクト リソースのロケーション
  • DATA_PRODUCT_ID: データ プロダクトの ID

Terraform

アスペクトを管理するには、基盤となる Knowledge Catalog エントリを管理する必要があります。Terraform は既存のアスペクトを自動的に検出しないため、最初に google_dataplex_entry をインポートする必要があります。

エントリをインポートするには、次のコマンドを使用します。

terraform import google_dataplex_entry.data_product_metadata "projects/DATA_PRODUCT_PROJECT_NUMBER/locations/LOCATION/entryGroups/@dataplex/entries/projects/DATA_PRODUCT_PROJECT_NUMBER/locations/LOCATION/dataProducts/DATA_PRODUCT_ID"

Terraform 構成:

resource "google_dataplex_entry" "data_product_metadata" {
project        = "DATA_PRODUCT_PROJECT_NUMBER"
location       = "LOCATION"
entry_group_id = "@dataplex"
entry_id       = "projects/DATA_PRODUCT_PROJECT_NUMBER/locations/LOCATION/dataProducts/DATA_PRODUCT_ID"
entry_type     = "projects/655216118709/locations/global/entryTypes/data-product"

aspects {
  aspect_key = "ASPECT_PROJECT_NUMBER.ASPECT_LOCATION.ASPECT_NAME"
  aspect {
    data = {}
  }
}
}

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

  • DATA_PRODUCT_PROJECT_NUMBER: データ プロダクト リソースが配置されているプロジェクト番号
  • LOCATION: 呼び出す Knowledge Catalog サービス エンドポイントのリージョン(例: us-central1
  • DATA_PRODUCT_ID: データ プロダクトの ID
  • ASPECT_PROJECT_NUMBER: アスペクトが作成される Google Cloud プロジェクト番号
  • ASPECT_LOCATION: アスペクトが作成される Knowledge Catalog サービス エンドポイントのリージョン(例: us-central1
  • ASPECT_NAME: データ プロダクトにアタッチするアスペクトの名前

インポート プロセスの一般的な情報については、Terraform インポートのドキュメントをご覧ください。

省略可: 詳細情報を追加する

データ プロダクトにドキュメントとサンプルクエリを追加して、重要なコンテキスト、ビジネス ロジックの説明、ユーザーガイドを提供できます。Knowledge Catalog では、ドキュメントは overview システム アスペクトで管理されます。

このドキュメントは手動で作成することも、Knowledge Catalog のデータ分析情報を使用して自動的に生成することもできます。

ドキュメントとサンプルクエリを手動で追加する

コンソール

データ プロダクトのドキュメントを追加する手順は次のとおりです。

  1. [追加の詳細を追加] ペインで、[ドキュメント] の横にある [編集] をクリックします。

  2. リッチテキスト エディタでコンテンツを入力します。

  3. [保存] をクリックします。

データ プロダクトにサンプルクエリを追加する手順は次のとおりです。

  1. [追加の詳細を追加] ペインの [クエリの推奨事項] セクションで、 [クエリを追加] をクリックします。

  2. サンプルクエリを入力します。

  3. [保存] をクリックします。

新しく作成したデータ プロダクトが、Knowledge Catalog の [データ プロダクト] ページに表示されます。

REST

ドキュメントは、データ プロダクトのアスペクトとしてモデル化されます。ドキュメントを追加するには、entries.patch メソッドを使用します。

たとえば、次の PATCH リクエストを送信します。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d \
'{
  "aspects": {
    "dataplex-types.global.overview": {
      "aspectType": "projects/dataplex-types/locations/global/aspectTypes/overview",
      "data": {
        "content": "DOCUMENTATION"
      }
    }
  }
}' \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/@dataplex/entries/projects/DATA_PRODUCT_PROJECT_NUMBER/locations/DATA_PRODUCT_LOCATION/dataProducts/DATA_PRODUCT_ID?updateMask=aspects"

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

  • PROJECT_ID: API 呼び出しが行われている Google Cloud プロジェクトの ID
  • LOCATION: 呼び出す Knowledge Catalog サービス エンドポイントのリージョン(例: us-central1
  • DATA_PRODUCT_PROJECT_NUMBER: データ プロダクト リソースが配置されているプロジェクト番号
  • DATA_PRODUCT_LOCATION: データ プロダクト リソースのロケーション
  • DATA_PRODUCT_ID: データ プロダクトの ID
  • DOCUMENTATION: データ プロダクトに添付するコンテンツ

Terraform

ドキュメントは、データ プロダクトのアスペクトとしてモデル化されます。ドキュメントを管理するには、基盤となる Knowledge Catalog エントリを管理する必要があります。Terraform は既存のアスペクトを自動的に検出しないため、最初に google_dataplex_entry をインポートする必要があります。

エントリをインポートするには、次のコマンドを使用します。

terraform import google_dataplex_entry.data_product_metadata "projects/DATA_PRODUCT_PROJECT_NUMBER/locations/LOCATION/entryGroups/@dataplex/entries/projects/DATA_PRODUCT_PROJECT_NUMBER/locations/LOCATION/dataProducts/DATA_PRODUCT_ID"

Terraform 構成:

resource "google_dataplex_entry" "data_product_metadata" {
project        = "DATA_PRODUCT_PROJECT_NUMBER"
location       = "LOCATION"
entry_group_id = "@dataplex"
entry_id       = "projects/DATA_PRODUCT_PROJECT_NUMBER/locations/LOCATION/dataProducts/DATA_PRODUCT_ID"
entry_type     = "projects/655216118709/locations/global/entryTypes/data-product"

aspects {
  aspect_key = "655216118709.global.overview"
  aspect {
    data = jsonencode({
      content = "DOCUMENTATION"
    })
  }
}
}

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

  • DATA_PRODUCT_PROJECT_NUMBER: データ プロダクト リソースが配置されているプロジェクト番号
  • LOCATION: 呼び出す Knowledge Catalog サービス エンドポイントのリージョン(例: us-central1
  • DATA_PRODUCT_ID: データ プロダクトの ID
  • DOCUMENTATION: データ プロダクトに添付するコンテンツ

インポート プロセスの一般的な情報については、Terraform インポートのドキュメントをご覧ください。

データ分析情報を使用して自動化されたドキュメントとサンプルクエリを生成する

Gemini を使用してドキュメントとサンプルクエリを生成する前に、次の前提条件を満たしてください。

  1. データ プロダクトを作成するプロジェクトで、Gemini for Google Cloud API を有効にします。

  2. 分析情報固有のユーザーロールを付与する: データ プロダクト プロジェクトに対する次のロールと権限を ID に付与するよう管理者に依頼します。

    • データ分析情報を生成して管理する: データ プロダクトが存在するプロジェクトに対する Dataplex DataScan 編集者(roles/dataplex.dataScanEditor)または Dataplex DataScan 管理者(roles/dataplex.dataScanAdmin
    • 生成インサイトを表示する: データ プロダクトが存在するプロジェクトに対する Dataplex DataScan データ閲覧者(roles/dataplex.dataScanDataViewer
  3. プロジェクト間のサービス エージェントの権限を構成します。基盤となるデータアセットがデータ プロダクト プロジェクトとは異なる Google Cloud プロジェクトにある場合は、Knowledge Catalog サービス エージェント(P4SA)にこれらのアセットへのアクセス権を付与する必要があります。

    1. データ プロダクト プロジェクトのサービス エージェント識別子を生成または取得するには、次の Google Cloud CLI コマンドを実行します。

      gcloud beta services identity create --service=dataplex.googleapis.com --project=DATA_PRODUCT_PROJECT_ID
      

      DATA_PRODUCT_PROJECT_ID は、データ プロダクトが存在するGoogle Cloud プロジェクト ID に置き換えます。

    2. アセットが存在する外部プロジェクトごとに、データ プロダクト プロジェクトのサービス エージェントに次のロールを付与します。

      • 基盤となるテーブルとデータセットに対する BigQuery データ編集者(roles/bigquery.dataEditor

      • アセット プロジェクトに対する BigQuery Studio 管理者(roles/bigquery.studioAdmin

データ分析情報を使用してデータ プロダクトのドキュメントとサンプルクエリを生成する手順は次のとおりです。

  1. [追加の詳細を追加] ペインの [Gemini で分析情報を生成する] バーで、[生成] をクリックします。

    分析情報の生成プロセスが完了するまで数分待ちます。

  2. 生成されたコンテンツを確認するには、[表示] をクリックします。

  3. 生成されたコンテンツを評価します。

    • 内容が正しければ、[保存] をクリックします。これにより、リッチテキスト エディタに事前定義されたドキュメント テンプレートが入力され、分析情報セクションにサンプルクエリが追加されます。

    • コンテンツが期待どおりでない場合は、[破棄] をクリックします。

  4. [保存] をクリックして確定します。

次のステップ