テーブルへのタグ付けのクイックスタート

このクイックスタートでは、以下の操作を行います。

  1. BigQuery データセットを作成し、一般公開のタクシーデータをデータセットの新しいテーブルにコピーします。
  2. 異なるタイプの 4 つのタグフィールド(stringdoublebooleanenumerated)を定義するスキーマを使用してタグ テンプレートを作成します。
  3. テーブルのデータカタログ エントリを検索します。
  4. タグをテーブルに添付します。

始める前に

  1. プロジェクトを次のように設定します。

    1. Google アカウントにログインします。

      Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

    2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

      [プロジェクトの選択] ページに移動

    3. Data Catalog and BigQuery API を有効にします。

      API を有効にする

    4. Cloud SDK をインストールして初期化します。

  2. データセットを作成します。このクイックスタートに示すように、データセットのテーブルにタグを付けるには、データセットのオーナーである必要があります。

    1. Google Cloud Console で [BigQuery に移動] します。
    2. 左側のナビゲーション ペインでプロジェクト名をクリックし、続いて [データセットを作成] をクリックします。
    3. [データセットを作成] ダイアログで、次の操作を行います。
      • [Dataset ID] に「demo_dataset」と入力します。
      • [データのロケーション] については、デフォルトのロケーションを受け入れ、データセットの場所を US multi-region に設定します。
      • [Default data expiration] については、次のオプションのいずれかを選択します。
        • 無期限: (デフォルト)データセット内に作成されたテーブルが自動的に削除されることはありません。テーブルを削除する場合は、手動で削除する必要があります。
        • テーブル作成後の日数: データセットで作成されたテーブルは、作成時刻から指定された日数が経過すると削除されます。この値が適用されるのは、テーブルの作成時にテーブルの有効期限を設定しなかった場合です。データセットを作成
      • [データセットを作成] をクリックします。注: Google Cloud Console を使用してデータセットを作成するときに、説明やラベルを追加することはできません。データセットの作成後は、説明の追加ラベルの追加が可能です。
  3. 一般公開の New York Taxi テーブルを demo_dataset にコピーします。

    1. Google Cloud Console の BigQuery から、「bigquery-public-data」プロジェクトの下で、「new_york_taxi_trips」データセットを選択してから、tlc_yellow_trips_2017 などの「tlc_yellow_trips」テーブルのいずれかを選択します。[テーブルをコピー] をクリックして、[Table Details:trips] パネルを開きます。
    2. [テーブルのコピー] ダイアログの [コピー先] セクションで、プロジェクトと「demo_dataset」を選択します。[テーブル名] に「trips」を挿入して、[コピー] をクリックします。
    3. trips テーブルが demo_dataset にリストされていることを確認します。
      次のセクションでは、このテーブルに Data Catalog タグを追加します。

タグ テンプレートを作成し、タグをテーブルに添付する

Console

Google Cloud Console の Data Catalog UI からタグ テンプレートを作成できます。

  1. [タグ テンプレートを作成] を選択して、[テンプレートの作成] ページを開きます。テンプレート フォームに入力して、「デモ タグ テンプレート」を定義します。
    1. テンプレート ID: demo_tag_template
    2. テンプレートの表示名: Demo Tag Template
    3. プロジェクト: 該当プロジェクトを選択
  2. 次に、4 つのタグフィールド(以前はタグ「属性」と呼ばれていました)を作成します。 [フィールドを追加] をクリックして [新規フィールド] ダイアログを開きます。 下記の値を持つ 4 つのフィールドを作成します。「source」フィールドは必須タグフィールドを定義します。
      • フィールド ID: source
      • このフィールドを必須にする: Checked
      • フィールド表示名: Source of data asset
      • タイプ: String
      • [完了] をクリックします
      • フィールド ID: num_rows
      • このフィールドを必須にする: Not checked
      • フィールド表示名: Number of rows in the data asset
      • タイプ: Double
      • [完了] をクリックします
      • フィールド ID: has_pii
      • このフィールドを必須にする: Not checked
      • フィールド表示名: Has PII
      • タイプ: Boolean
      • [完了] をクリックします
      • フィールド ID: pii_type
      • このフィールドを必須にする: Not checked
      • フィールド表示名: PII type
      • タイプ: Enumerated
        次の3 つの値を追加します。
        1. メール
        2. 社会保障番号
        3. なし
      • [完了] をクリックします

    完成したタグ テンプレート フォームには、次の 4 つのタグフィールドがリストされます。

    [作成] をクリックします。Data Catalog の [タグ テンプレート] ページには、テンプレートの詳細とフィールドが表示されます。

  3. タグをデータセットのテーブルに添付するには、Data Catalog UI を開き、[検索] ボックスに「demo_dataset」と入力し、[検索] をクリックします。
  4. データセットにコピーした demo_dataset テーブルと trips テーブルが検索結果に表示されます。trips リンクをクリックしてください。
  5. [エンティティの詳細] ページが開きます。[タグを添付] をクリックします。
  6. [タグを添付] パネルで次の操作を行います。
    1. [タグを付ける対象の選択] で trips テーブルを選択し、[OK] をクリックします。
    2. [タグ テンプレートの選択] で、Demo Tag Template を検索して選択し、[OK] をクリックします。
    3. [タグ値を入力] で、各項目に次の値を入力します。
      • データアセットのソース: Copied from tlc_yellow_trips_2017
      • データアセット内の行数: 113496874
      • 個人情報(PII)あり: FALSE
      • PII タイプ: NONE

      [保存] をクリックします。 タグフィールドが、[BigQuery データセットの詳細] の下の [タグ] セクションに一覧表示されます。

gcloud

以下に示す gcloud data-catalog tag-templates create コマンドを実行して、次の 4 つのタグフィールド(「属性」とも呼ばれる)を含むタグ テンプレートを作成します。

  1. display_name: データアセットのソース
    id: ソース
    required: true
    type: string
  2. display_name: データアセットの行数
    id: num_rows
    required: false
    type: double
  3. display_name: PII あり
    id: has_pii
    required: false
    type: boolean
  4. display_name: PII タイプ
    id: pii_type
    required: false
    type: enum
    values:
    1. メール
    2. 社会保障番号
    3. なし
# -------------------------------
# Create a Tag Template.
# -------------------------------
gcloud data-catalog tag-templates create demo_template \
    --location=us-central1 \
    --display-name="Demo Tag Template" \
    --field=id=source,display-name="Source of data asset",type=string,required=TRUE \
    --field=id=num_rows,display-name="Number of rows in the data asset",type=double \
    --field=id=has_pii,display-name="Has PII",type=bool \
    --field=id=pii_type,display-name="PII type",type='enum(EMAIL|SOCIAL SECURITY NUMBER|NONE)'

# -------------------------------
# Lookup the Data Catalog entry for the table.
# -------------------------------
ENTRY_NAME=$(gcloud data-catalog entries lookup '//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET/tables/TABLE' --format="value(name)")

# -------------------------------
# Attach a Tag to the table.
# -------------------------------

# Create the Tag file.
cat > tag_file.json << EOF
  {
    "source": "BigQuery",
    "num_rows": 1000,
    "has_pii": true,
    "pii_type": "EMAIL"
  }
EOF

gcloud data-catalog tags create --entry=${ENTRY_NAME} \
    --tag-template=demo_template --tag-template-location=us-central1 --tag-file=tag_file.json

Python

  1. クライアント ライブラリのインストール
  2. アプリケーションのデフォルト認証情報を設定します。
  3. コードを実行します。
    # -------------------------------
    # Import required modules.
    # -------------------------------
    from google.cloud import datacatalog_v1
    
    # -------------------------------
    # Set your Google Cloud Platform project ID.
    # -------------------------------
    project_id = 'PROJECT'
    
    # -------------------------------
    # Currently, Data Catalog stores metadata in the
    # us-central1 region.
    # -------------------------------
    location = 'us-central1'
    
    # -------------------------------
    # Use Application Default Credentials to create a new
    # Data Catalog client. GOOGLE_APPLICATION_CREDENTIALS
    # environment variable must be set with the location
    # of a service account key file.
    # -------------------------------
    datacatalog_client = datacatalog_v1.DataCatalogClient()
    
    # -------------------------------
    # Create a Tag Template.
    # -------------------------------
    tag_template = datacatalog_v1.types.TagTemplate()
    
    tag_template.display_name = 'Demo Tag Template'
    
    tag_template.fields['source'] = datacatalog_v1.types.TagTemplateField()
    tag_template.fields['source'].display_name = 'Source of data asset'
    tag_template.fields['source'].type.primitive_type = datacatalog_v1.types.FieldType.PrimitiveType.STRING
    
    tag_template.fields['num_rows'] = datacatalog_v1.types.TagTemplateField()
    tag_template.fields['num_rows'].display_name = 'Number of rows in data asset'
    tag_template.fields['num_rows'].type.primitive_type = datacatalog_v1.types.FieldType.PrimitiveType.DOUBLE
    
    tag_template.fields['has_pii'] = datacatalog_v1.types.TagTemplateField()
    tag_template.fields['has_pii'].display_name = 'Has PII'
    tag_template.fields['has_pii'].type.primitive_type = datacatalog_v1.types.FieldType.PrimitiveType.BOOL
    
    tag_template.fields['pii_type'] = datacatalog_v1.types.TagTemplateField()
    tag_template.fields['pii_type'].display_name = 'PII type'
    
    for display_name in ['EMAIL', 'SOCIAL SECURITY NUMBER', 'NONE']:
        enum_value = datacatalog_v1.types.FieldType.EnumType.EnumValue(display_name = display_name)
        tag_template.fields['pii_type'].type.enum_type.allowed_values.append(enum_value)
    
    expected_template_name = datacatalog_v1.DataCatalogClient\
        .tag_template_path(project_id, location, 'example_tag_template')
    
    # Delete any pre-existing Template with the same name.
    try:
        datacatalog_client.delete_tag_template(name=expected_template_name, force=True)
        print('Deleted template: {}'.format(expected_template_name))
    except:
        print('Cannot delete template: {}'.format(expected_template_name))
    
    # Create the Tag Template.
    try:
        tag_template = datacatalog_client.create_tag_template(
            parent='projects/{}/locations/us-central1'.format(project_id),
            tag_template_id='example_tag_template',
            tag_template=tag_template)
        print('Created template: {}'.format(tag_template.name))
    except OSError as e:
        print('Cannot create template: {}'.format(expected_template_name))
        print('{}'.format(e))
    
    # -------------------------------
    # Lookup Data Catalog's Entry referring to the table.
    # -------------------------------
    resource_name = '//bigquery.googleapis.com/projects/{}' \
                    '/datasets/demo_dataset/tables/trips'.format(project_id)
    table_entry = datacatalog_client.lookup_entry(request={"linked_resource": resource_name})
    
    # -------------------------------
    # Attach a Tag to the table.
    # -------------------------------
    tag = datacatalog_v1.types.Tag()
    
    tag.template = tag_template.name
    tag.name="my_tag"
    
    tag.fields['source'] = datacatalog_v1.types.TagField()
    tag.fields['source'].string_value = 'Copied from tlc_yellow_trips_2018'
    
    tag.fields['num_rows'] = datacatalog_v1.types.TagField()
    tag.fields['num_rows'].double_value = 113496874
    
    tag.fields['has_pii'] = datacatalog_v1.types.TagField()
    tag.fields['has_pii'].bool_value = False
    
    tag.fields['pii_type'] = datacatalog_v1.types.TagField()
    tag.fields['pii_type'].enum_value.display_name = 'NONE'
    
    tag = datacatalog_client.create_tag(parent=table_entry.name, tag=tag)
    print('Created tag: {}'.format(tag.name))
    
    

Java

  1. クライアント ライブラリのインストール
  2. アプリケーションのデフォルト認証情報を設定します。
  3. コードを実行します。
    /*
    This application demonstrates how to perform core operations with the
    Data Catalog API.
    
    For more information, see the README.md and the official documentation at
    https://cloud.google.com/data-catalog/docs.
    */
    
    package com.example.datacatalog;
    
    import com.google.cloud.datacatalog.v1.CreateTagRequest;
    import com.google.cloud.datacatalog.v1.CreateTagTemplateRequest;
    import com.google.cloud.datacatalog.v1.DataCatalogClient;
    import com.google.cloud.datacatalog.v1.DeleteTagTemplateRequest;
    import com.google.cloud.datacatalog.v1.Entry;
    import com.google.cloud.datacatalog.v1.FieldType;
    import com.google.cloud.datacatalog.v1.FieldType.EnumType;
    import com.google.cloud.datacatalog.v1.FieldType.EnumType.EnumValue;
    import com.google.cloud.datacatalog.v1.FieldType.PrimitiveType;
    import com.google.cloud.datacatalog.v1.LocationName;
    import com.google.cloud.datacatalog.v1.LookupEntryRequest;
    import com.google.cloud.datacatalog.v1.Tag;
    import com.google.cloud.datacatalog.v1.TagField;
    import com.google.cloud.datacatalog.v1.TagTemplate;
    import com.google.cloud.datacatalog.v1.TagTemplateField;
    import com.google.cloud.datacatalog.v1.TagTemplateName;
    
    public class CreateTags {
    
      public static void createTags() {
        // TODO(developer): Replace these variables before running the sample.
        String projectId = "my-project";
        String tagTemplateId = "my_tag_template";
        createTags(projectId, tagTemplateId);
      }
    
      public static void createTags(String projectId, String tagTemplateId) {
        // Currently, Data Catalog stores metadata in the us-central1 region.
        String location = "us-central1";
    
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests. After completing all of your requests, call
        // the "close" method on the client to safely clean up any remaining background resources.
        try (DataCatalogClient dataCatalogClient = DataCatalogClient.create()) {
    
          // -------------------------------
          // Create a Tag Template.
          // -------------------------------
          TagTemplateField sourceField =
              TagTemplateField.newBuilder()
                  .setDisplayName("Source of data asset")
                  .setType(FieldType.newBuilder().setPrimitiveType(PrimitiveType.STRING).build())
                  .build();
    
          TagTemplateField numRowsField =
              TagTemplateField.newBuilder()
                  .setDisplayName("Number of rows in data asset")
                  .setType(FieldType.newBuilder().setPrimitiveType(PrimitiveType.DOUBLE).build())
                  .build();
    
          TagTemplateField hasPiiField =
              TagTemplateField.newBuilder()
                  .setDisplayName("Has PII")
                  .setType(FieldType.newBuilder().setPrimitiveType(PrimitiveType.BOOL).build())
                  .build();
    
          TagTemplateField piiTypeField =
              TagTemplateField.newBuilder()
                  .setDisplayName("PII type")
                  .setType(
                      FieldType.newBuilder()
                          .setEnumType(
                              EnumType.newBuilder()
                                  .addAllowedValues(
                                      EnumValue.newBuilder().setDisplayName("EMAIL").build())
                                  .addAllowedValues(
                                      EnumValue.newBuilder()
                                          .setDisplayName("SOCIAL SECURITY NUMBER")
                                          .build())
                                  .addAllowedValues(
                                      EnumValue.newBuilder().setDisplayName("NONE").build())
                                  .build())
                          .build())
                  .build();
    
          TagTemplate tagTemplate =
              TagTemplate.newBuilder()
                  .setDisplayName("Demo Tag Template")
                  .putFields("source", sourceField)
                  .putFields("num_rows", numRowsField)
                  .putFields("has_pii", hasPiiField)
                  .putFields("pii_type", piiTypeField)
                  .build();
    
          CreateTagTemplateRequest createTagTemplateRequest =
              CreateTagTemplateRequest.newBuilder()
                  .setParent(
                      LocationName.newBuilder()
                          .setProject(projectId)
                          .setLocation(location)
                          .build()
                          .toString())
                  .setTagTemplateId("demo_tag_template")
                  .setTagTemplate(tagTemplate)
                  .build();
    
          String expectedTemplateName =
              TagTemplateName.newBuilder()
                  .setProject(projectId)
                  .setLocation(location)
                  .setTagTemplate("demo_tag_template")
                  .build()
                  .toString();
    
          // Delete any pre-existing Template with the same name.
          try {
            dataCatalogClient.deleteTagTemplate(
                DeleteTagTemplateRequest.newBuilder()
                    .setName(expectedTemplateName)
                    .setForce(true)
                    .build());
    
            System.out.println(String.format("Deleted template: %s", expectedTemplateName));
          } catch (Exception e) {
            System.out.println(String.format("Cannot delete template: %s", expectedTemplateName));
          }
    
          // Create the Tag Template.
          tagTemplate = dataCatalogClient.createTagTemplate(createTagTemplateRequest);
          System.out.println(String.format("Template created with name: %s", tagTemplate.getName()));
    
          // -------------------------------
          // Lookup Data Catalog's Entry referring to the table.
          // -------------------------------
          String linkedResource =
              String.format(
                  "//bigquery.googleapis.com/projects/%s/datasets/demo_dataset/tables/trips",
                  projectId);
          LookupEntryRequest lookupEntryRequest =
              LookupEntryRequest.newBuilder().setLinkedResource(linkedResource).build();
          Entry tableEntry = dataCatalogClient.lookupEntry(lookupEntryRequest);
    
          // -------------------------------
          // Attach a Tag to the table.
          // -------------------------------
          TagField sourceValue =
              TagField.newBuilder().setStringValue("Copied from tlc_yellow_trips_2017").build();
          TagField numRowsValue = TagField.newBuilder().setDoubleValue(113496874).build();
          TagField hasPiiValue = TagField.newBuilder().setBoolValue(false).build();
          TagField piiTypeValue =
              TagField.newBuilder()
                  .setEnumValue(TagField.EnumValue.newBuilder().setDisplayName("NONE").build())
                  .build();
    
          Tag tag =
              Tag.newBuilder()
                  .setTemplate(tagTemplate.getName())
                  .putFields("source", sourceValue)
                  .putFields("num_rows", numRowsValue)
                  .putFields("has_pii", hasPiiValue)
                  .putFields("pii_type", piiTypeValue)
                  .build();
    
          CreateTagRequest createTagRequest =
              CreateTagRequest.newBuilder().setParent(tableEntry.getName()).setTag(tag).build();
    
          dataCatalogClient.createTag(createTagRequest);
    
        } catch (Exception e) {
          System.out.print("Error during CreateTags:\n" + e.toString());
        }
      }
    }
    

Node.js

  1. クライアント ライブラリのインストール
  2. アプリケーションのデフォルト認証情報を設定します。
  3. コードを実行します。
    async function main() {
        // -------------------------------
        // Import required modules.
        // -------------------------------
        const { DataCatalogClient } = require('@google-cloud/datacatalog').v1;
    
        // Common fields.
        let request;
        let responses;
    
        // -------------------------------
        // Set your Google Cloud Platform project ID.
        // -------------------------------
        const projectId = 'PROJECT_ID';
    
        // -------------------------------
        // Currently, Data Catalog stores metadata in the
        // us-central1 region.
        // -------------------------------
        const location = 'us-central1';
    
        // -------------------------------
        // Use Application Default Credentials to create a new
        // Data Catalog client. GOOGLE_APPLICATION_CREDENTIALS
        // environment variable must be set with the location
        // of a service account key file.
        // -------------------------------
        const datacatalog = new DataCatalogClient();
    
        // Create Fields.
        const fieldSource = {
            displayName: 'Source of data asset',
            type: {
                primitiveType: 'STRING',
            },
        };
    
        const fieldNumRows = {
            displayName: 'Number of rows in data asset',
            type: {
                primitiveType: 'DOUBLE',
            },
        };
    
        const fieldHasPII = {
            displayName: 'Has PII',
            type: {
                primitiveType: 'BOOL',
            },
        };
    
        const fieldPIIType = {
            displayName: 'PII type',
            type: {
                enumType: {
                    allowedValues: [
                        {
                            displayName: 'EMAIL',
                        },
                        {
                            displayName: 'SOCIAL SECURITY NUMBER',
                        },
                        {
                            displayName: 'NONE',
                        },
                    ],
                },
            },
        };
    
        // -------------------------------
        // Create Tag Template.
        // -------------------------------
        const tagTemplateId = 'demo_tag_template';
    
        const tagTemplate = {
            displayName: 'Demo Tag Template',
            fields: {
                source: fieldSource,
                num_rows: fieldNumRows,
                has_pii: fieldHasPII,
                pii_type: fieldPIIType,
            },
        };
    
        const tagTemplatePath = datacatalog.tagTemplatePath(
            projectId,
            location,
            tagTemplateId
        );
    
        // Delete any pre-existing Template with the same name.
        try {
            request = {
                name: tagTemplatePath,
                force: true,
            };
            await datacatalog.deleteTagTemplate(request);
            console.log(`Deleted template: ${tagTemplatePath}`);
        } catch (error) {
            console.log(`Cannot delete template: ${tagTemplatePath}`);
        }
    
        // Create the Tag Template request.
        const locationPath = datacatalog.locationPath(projectId, location);
    
        request = {
            parent: locationPath,
            tagTemplateId: tagTemplateId,
            tagTemplate: tagTemplate,
        };
    
        // Execute the request.
        responses = await datacatalog.createTagTemplate(request);
        const createdTagTemplate = responses[0];
        console.log(`Created template: ${createdTagTemplate.name}`);
    
        // -------------------------------
        // Lookup Data Catalog's Entry referring to the table.
        // -------------------------------
        responses = await datacatalog.lookupEntry({
            linkedResource: `//bigquery.googleapis.com/projects/` +
                `${projectId}/datasets/demo_dataset/tables/trips`,
        });
        const entry = responses[0];
        console.log(`Entry name: ${entry.name}`);
        console.log(`Entry type: ${entry.type}`);
        console.log(`Linked resource: ${entry.linkedResource}`);
    
        // -------------------------------
        // Attach a Tag to the table.
        // -------------------------------
        const tag = {
            name: entry.name,
            template: createdTagTemplate.name,
            fields: {
                source: {
                    stringValue: 'Copied from tlc_yellow_trips_2017',
                },
                num_rows: {
                    doubleValue: 113496874,
                },
                has_pii: {
                    boolValue: false,
                },
                pii_type: {
                    enumValue: {
                        displayName: 'NONE',
                    },
                },
            },
        };
    
        request = {
            parent: entry.name,
            tag: tag,
        };
    
        // Create the Tag.
        await datacatalog.createTag(request);
        console.log(`Tag created for entry: ${entry.name}`);
    }
    
    main();
    

REST とコマンドライン

ご使用の言語の Cloud クライアント ライブラリにアクセスしない場合、または REST リクエストを使用して API をテストする場合は、次の例を参照して、Data Catalog REST API のドキュメントをご覧ください。

1. タグ テンプレートを作成してください。

後述のリクエストのデータを使用する前に、次のように置き換えます。

  • project-id: GCP プロジェクト ID

HTTP メソッドと URL:

POST https://datacatalog.googleapis.com/v1/projects/project-id/locations/us-central1/tagTemplates?tagTemplateId=demo_tag_template

JSON 本文のリクエスト:

{
  "displayName":"Demo Tag Template",
  "fields":{
    "source":{
      "displayName":"Source of data asset",
      "isRequired": "true",
      "type":{
        "primitiveType":"STRING"
      }
    },
    "num_rows":{
      "displayName":"Number of rows in data asset",
      "isRequired": "false",
      "type":{
        "primitiveType":"DOUBLE"
      }
    },
    "has_pii":{
      "displayName":"Has PII",
      "isRequired": "false",
      "type":{
        "primitiveType":"BOOL"
      }
    },
    "pii_type":{
      "displayName":"PII type",
      "isRequired": "false",
      "type":{
        "enumType":{
          "allowedValues":[
            {
              "displayName":"EMAIL"
            },
            {
              "displayName":"SOCIAL SECURITY NUMBER"
            },
            {
              "displayName":"NONE"
            }
          ]
        }
      }
    }
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name":"projects/project-id/locations/us-central1/tagTemplates/demo_tag_template",
  "displayName":"Demo Tag Template",
  "fields":{
    "num_rows":{
      "displayName":"Number of rows in data asset",
      "isRequired": "false",
      "type":{
        "primitiveType":"DOUBLE"
      }
    },
    "has_pii":{
      "displayName":"Has PII",
      "isRequired": "false",
      "type":{
        "primitiveType":"BOOL"
      }
    },
    "pii_type":{
      "displayName":"PII type",
      "isRequired": "false",
      "type":{
        "enumType":{
          "allowedValues":[
            {
              "displayName":"EMAIL"
            },
            {
              "displayName":"NONE"
            },
            {
              "displayName":"SOCIAL SECURITY NUMBER"
            }
          ]
        }
      }
    },
    "source":{
      "displayName":"Source of data asset",
      "isRequired":"true",
      "type":{
        "primitiveType":"STRING"
      }
    }
  }
}

2. BigQuery テーブルの Data Catalog entry-id を検索します。

後述のリクエストのデータを使用する前に、次のように置き換えます。

  • project-id: GCP プロジェクト ID

HTTP メソッドと URL:

GET https://datacatalog.googleapis.com/v1/entries:lookup?linkedResource=//bigquery.googleapis.com/projects/project-id/datasets/demo_dataset/tables/trips

JSON 本文のリクエスト:

Request body is empty.

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/project-id/locations/US/entryGroups/@bigquery/entries/entry-id",
  "type": "TABLE",
  "schema": {
    "columns": [
      {
        "type": "STRING",
        "description": "A code indicating the TPEP provider that provided the record. 1= ",
        "mode": "REQUIRED",
        "column": "vendor_id"
      },
      ...
    ]
  },
  "sourceSystemTimestamps": {
    "createTime": "2019-01-25T01:45:29.959Z",
    "updateTime": "2019-03-19T23:20:26.540Z"
  },
  "linkedResource": "//bigquery.googleapis.com/projects/project-id/datasets/demo_dataset/tables/trips",
  "bigqueryTableSpec": {
    "tableSourceType": "BIGQUERY_TABLE"
  }
}

3. テンプレートからタグを作成し、BigQuery テーブルに添付します。

後述のリクエストのデータを使用する前に、次のように置き換えます。

  • project-id: GCP プロジェクト ID
  • entry-id: デモ データセットのトリップ テーブルの Data Catalog エントリ ID(前のステップの検索結果で返されます)。

HTTP メソッドと URL:

POST https://datacatalog.googleapis.com/v1/projects/project-id/locations/us-central1/entryGroups/@bigquery/entries/entry-id/tags?tagTemplateId=demo_tag_template

JSON 本文のリクエスト:

{
  "template":"projects/project-id/locations/us-central1/tagTemplates/demo_tag_template",
  "fields":{
    "source":{
      "stringValue":"Copied from tlc_yellow_trips_2017"
    },
    "num_rows":{
      "doubleValue":113496874
    },
    "has_pii":{
      "boolValue":false
    },
    "pii_type":{
      "enumValue":{
        "displayName":"NONE"
      }
    }
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name":"projects/project-id/locations/US/entryGroups/@bigquery/entries/entry-id/tags/tag-id",
  "template":"projects/project-id/locations/us-central1/tagTemplates/demo_tag_template",
  "fields":{
    "pii_type":{
      "displayName":"PII type",
      "enumValue":{
        "displayName":"NONE"
      }
    },
    "has_pii":{
      "displayName":"Has PII",
      "boolValue":false
    },
    "source":{
      "displayName":"Source of data asset",
      "stringValue":"Copied from tlc_yellow_trips_2017"
    },
    "num_rows":{
      "displayName":"Number of rows in data asset",
      "doubleValue":113496874
    }
  },
  "templateDisplayName":"Demo Tag Template"
}

クリーンアップ

このクイックスタートで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

プロジェクトの削除

課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除するには:

  1. Cloud Console で [リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

データセットの削除

  1. 必要に応じて、BigQuery ウェブ UI を開きます。

    BigQuery ウェブ UI に移動

  2. ナビゲーション パネルの [リソース] セクションで、作成した [demo_dataset] データセットをクリックします。

  3. 詳細パネルの右側で [データセットを削除] をクリックします。この操作を行うと、データセット、テーブル、すべてのデータが削除されます。

  4. [データセットの削除] ダイアログ ボックスでデータセットの名前(demo_dataset)を入力して、[削除] をクリックします。

タグ テンプレートの削除

  1. Google Cloud Console で Data Catalog UI を開きます。[タグ テンプレート] で [タグ テンプレートを管理] をクリックします。

  2. [デモ タグ テンプレート] をクリックします。

  3. [タグ テンプレート] ページで、[削除] をクリックして、デモ タグ テンプレートを削除します。

次のステップ