创建切面类型

创建切面类型。

深入探索

如需查看包含此代码示例的详细文档,请参阅以下内容:

代码示例

Java

在尝试此示例之前,请按照《Dataplex 快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Dataplex Java API 参考文档

如需向 Dataplex 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证

import com.google.cloud.dataplex.v1.AspectType;
import com.google.cloud.dataplex.v1.CatalogServiceClient;
import com.google.cloud.dataplex.v1.LocationName;
import java.util.List;

public class CreateAspectType {

  public static void main(String[] args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    // Available locations: https://cloud.google.com/dataplex/docs/locations
    String location = "MY_LOCATION";
    String aspectTypeId = "MY_ASPECT_TYPE_ID";

    AspectType.MetadataTemplate aspectField =
        AspectType.MetadataTemplate.newBuilder()
            // The name must follow regex ^(([a-zA-Z]{1})([\\w\\-_]{0,62}))$
            // That means name must only contain alphanumeric character or dashes or underscores,
            // start with an alphabet, and must be less than 63 characters.
            .setName("name_of_the_field")
            // Metadata Template is recursive structure,
            // primitive types such as "string" or "integer" indicate leaf node,
            // complex types such as "record" or "array" would require nested Metadata Template
            .setType("string")
            .setIndex(1)
            .setAnnotations(
                AspectType.MetadataTemplate.Annotations.newBuilder()
                    .setDescription("description of the field")
                    .build())
            .setConstraints(
                AspectType.MetadataTemplate.Constraints.newBuilder()
                    // Specifies if field will be required in Aspect Type.
                    .setRequired(true)
                    .build())
            .build();
    List<AspectType.MetadataTemplate> aspectFields = List.of(aspectField);
    AspectType createdAspectType =
        createAspectType(projectId, location, aspectTypeId, aspectFields);
    System.out.println("Successfully created aspect type: " + createdAspectType.getName());
  }

  // Method to create Aspect Type located in projectId, location and with aspectTypeId and
  // aspectFields specifying schema of the Aspect Type
  public static AspectType createAspectType(
      String projectId,
      String location,
      String aspectTypeId,
      List<AspectType.MetadataTemplate> aspectFields)
      throws Exception {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (CatalogServiceClient client = CatalogServiceClient.create()) {
      LocationName locationName = LocationName.of(projectId, location);
      AspectType aspectType =
          AspectType.newBuilder()
              .setDescription("description of the aspect type")
              .setMetadataTemplate(
                  AspectType.MetadataTemplate.newBuilder()
                      // The name must follow regex ^(([a-zA-Z]{1})([\\w\\-_]{0,62}))$
                      // That means name must only contain alphanumeric character or dashes or
                      // underscores, start with an alphabet, and must be less than 63 characters.
                      .setName("name_of_the_template")
                      .setType("record")
                      // Aspect Type fields, that themselves are Metadata Templates
                      .addAllRecordFields(aspectFields)
                      .build())
              .build();
      return client.createAspectTypeAsync(locationName, aspectType, aspectTypeId).get();
    }
  }
}

Python

在尝试此示例之前,请按照《Dataplex 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Dataplex Python API 参考文档

如需向 Dataplex 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证

from typing import List

from google.cloud import dataplex_v1


# Method to create Aspect Type located in project_id, location and with aspect_type_id and
# aspect_fields specifying schema of the Aspect Type
def create_aspect_type(
    project_id: str,
    location: str,
    aspect_type_id: str,
    aspect_fields: List[dataplex_v1.AspectType.MetadataTemplate],
) -> dataplex_v1.AspectType:
    """Method to create Aspect Type located in project_id, location and with aspect_type_id and
    aspect_fields specifying schema of the Aspect Type"""

    # Initialize client that will be used to send requests across threads. This
    # client only needs to be created once, and can be reused for multiple requests.
    # After completing all of your requests, call the "__exit__()" method to safely
    # clean up any remaining background resources. Alternatively, use the client as
    # a context manager.
    with dataplex_v1.CatalogServiceClient() as client:
        # The resource name of the Aspect Type location
        parent = f"projects/{project_id}/locations/{location}"
        aspect_type = dataplex_v1.AspectType(
            description="description of the aspect type",
            metadata_template=dataplex_v1.AspectType.MetadataTemplate(
                # The name must follow regex ^(([a-zA-Z]{1})([\\w\\-_]{0,62}))$
                # That means name must only contain alphanumeric character or dashes or underscores,
                # start with an alphabet, and must be less than 63 characters.
                name="name_of_the_template",
                type="record",
                # Aspect Type fields, that themselves are Metadata Templates.
                record_fields=aspect_fields,
            ),
        )
        create_operation = client.create_aspect_type(
            parent=parent, aspect_type=aspect_type, aspect_type_id=aspect_type_id
        )
        return create_operation.result(60)


if __name__ == "__main__":
    # TODO(developer): Replace these variables before running the sample.
    project_id = "MY_PROJECT_ID"
    # Available locations: https://cloud.google.com/dataplex/docs/locations
    location = "MY_LOCATION"
    aspect_type_id = "MY_ASPECT_TYPE_ID"
    aspect_field = dataplex_v1.AspectType.MetadataTemplate(
        # The name must follow regex ^(([a-zA-Z]{1})([\\w\\-_]{0,62}))$
        # That means name must only contain alphanumeric character or dashes or underscores,
        # start with an alphabet, and must be less than 63 characters.
        name="name_of_the_field",
        # Metadata Template is recursive structure,
        # primitive types such as "string" or "integer" indicate leaf node,
        # complex types such as "record" or "array" would require nested Metadata Template
        type="string",
        index=1,
        annotations=dataplex_v1.AspectType.MetadataTemplate.Annotations(
            description="description of the field"
        ),
        constraints=dataplex_v1.AspectType.MetadataTemplate.Constraints(
            # Specifies if field will be required in Aspect Type.
            required=True
        ),
    )
    aspect_fields = [aspect_field]

    created_aspect_type = create_aspect_type(
        project_id, location, aspect_type_id, aspect_fields
    )
    print(f"Successfully created aspect type: {created_aspect_type.name}")

后续步骤

如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅Google Cloud 示例浏览器