Um pipeline de conectividade gerenciada no Workflows permite extrair e importar metadados de fontes de dados personalizadas de terceiros para o Knowledge Catalog (antigo Dataplex Universal Catalog). É possível executar o pipeline sob demanda ou de forma recorrente para manter o catálogo sincronizado, de modo que você possa descobrir, pesquisar e controlar seus recursos externos.
Para mais informações sobre a conectividade gerenciada, consulte Visão geral da conectividade gerenciada.
Antes de começar
Antes de importar metadados, conclua as tarefas desta seção.
Criar um conector
Um conector extrai os metadados da fonte de dados e gera um arquivo para importação no Knowledge Catalog. O conector é uma imagem do Artifact Registry que pode ser executada no Serviço Gerenciado para Apache Spark.
Crie um conector personalizado que extraia metadados da sua fonte de terceiros.
Para ver um exemplo de conector que pode ser usado como modelo de referência para criar seu próprio conector, consulte Desenvolver um conector personalizado para importação de metadados.
Configurar recursos do Google Cloud
-
Ative as APIs Workflows, Dataproc, Cloud Storage, Dataplex, Secret Manager, Artifact Registry e Cloud Scheduler, se ainda não estiverem ativadas.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.Se você não planeja executar o pipeline de acordo com uma programação, não é necessário ativar a API Cloud Scheduler.
Crie secrets no Secret Manager para armazenar as credenciais da sua fonte de dados de terceiros.
Configure sua rede de nuvem privada virtual (VPC) para executar cargas de trabalho do Managed Service para Apache Spark.
Crie um bucket do Cloud Storage para armazenar os arquivos de importação de metadados.
Crie os seguintes recursos do Knowledge Catalog:
Crie tipos de aspecto personalizados para as entradas que você quer importar.
Crie tipos de entrada personalizados para as entradas que você quer importar.
Funções exigidas
Uma conta de serviço representa a identidade de um fluxo de trabalho e determina as permissões que ele tem e quais recursos do Google Cloud ele pode acessar. Você precisa de uma conta de serviço para o Workflows (para executar o pipeline) e para o Serviço Gerenciado para Apache Spark (para executar o conector).
É possível usar a conta de serviço padrão do Compute Engine
(PROJECT_NUMBER-compute@developer.gserviceaccount.com) ou criar sua própria conta de serviço
(ou contas) para executar o pipeline de conectividade gerenciada.
Console
No console do Google Cloud , acesse a página IAM.
Selecione o projeto para o qual você quer importar os metadados.
Clique em Conceder acesso e insira o endereço de e-mail da conta de serviço.
Atribua os seguintes papéis à conta de serviço:
- Gravador de registros
- Proprietário de grupos de entradas do Dataplex
- Proprietário do job de metadados do Dataplex
- Editor de catálogo do Dataplex
- Editor do Dataproc
- Worker do Dataproc
- Acessador de secrets do Secret Manager: no secret que armazena as credenciais da fonte de dados.
- Usuário de objetos do Storage: no bucket do Cloud Storage
- Leitor do Artifact Registry: no repositório do Artifact Registry que contém a imagem do conector.
- Usuário da conta de serviço: se você usa contas de serviço diferentes, conceda à conta de serviço que executa o Workflows esse papel na conta de serviço que executa os jobs em lote do Serviço Gerenciado para Apache Spark.
- Invocador de fluxos de trabalho: se você quiser programar o pipeline
Salve as alterações.
gcloud
Conceda papéis à conta de serviço. Execute os comandos a seguir:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/logging.logWriter gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.entryGroupOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.metadataJobOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.catalogEditor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.editor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.workerSubstitua:
-
PROJECT_ID: o nome do projeto de destino do Google Cloud para o qual os metadados serão importados. SERVICE_ACCOUNT_ID: a conta de serviço, comomy-service-account@my-project.iam.gserviceaccount.com.
-
Conceda à conta de serviço os seguintes papéis no nível do recurso:
gcloud secrets add-iam-policy-binding SECRET_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/secretmanager.secretaccessor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/storage.objectUser \ --condition=resource.name.startsWith('projects/_/buckets/BUCKET_ID') gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=REPOSITORY_LOCATION \ --member=SERVICE_ACCOUNT_ID} \ --role=roles/artifactregistry.readerSubstitua:
SECRET_ID: o ID do secret que armazena as credenciais da fonte de dados. Ele usa o formatoprojects/PROJECT_ID/secrets/SECRET_ID.BUCKET_ID: o nome do bucket do Cloud Storage.REPOSITORY: o repositório do Artifact Registry que contém a imagem do conector.REPOSITORY_LOCATION: o local do Google Cloud em que o repositório está hospedado.
Conceda à conta de serviço que executa o Workflows o papel
roles/iam.serviceAccountUserna conta de serviço que executa os jobs em lote do Serviço Gerenciado para Apache Spark. É necessário conceder esse papel mesmo que você use a mesma conta de serviço para o Workflows e o Serviço Gerenciado para Apache Spark.gcloud iam service-accounts add-iam-policy-binding \ serviceAccount:SERVICE_ACCOUNT_ID \ --member='SERVICE_ACCOUNT_ID' \ --role='roles/iam.serviceAccountUser'Se você usar contas de serviço diferentes, o valor da flag
--memberserá a conta de serviço que executa os jobs em lote do Serviço Gerenciado para Apache Spark.Se você quiser programar o pipeline, conceda à conta de serviço o seguinte papel:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="SERVICE_ACCOUNT_ID" \ --role=roles/workflows.invoker
Importar metadados
Para importar metadados, crie e execute um fluxo de trabalho que execute o pipeline de conectividade gerenciada. Esse pipeline extrai metadados da fonte de dados personalizada, cria os grupos de entrada necessários e importa os metadados para o Knowledge Catalog. Também é possível criar uma programação para executar o pipeline.
Console
Crie o fluxo de trabalho. Forneça as seguintes informações:
- Conta de serviço: a conta de serviço que você configurou na seção Papéis necessários deste documento.
Criptografia: selecione Google-managed encryption key.
Definir fluxo de trabalho: forneça o seguinte arquivo de definição:
Para executar o pipeline sob demanda, execute o fluxo de trabalho.
Forneça os seguintes argumentos de ambiente de execução:
Substitua:
-
PROJECT_ID: o nome do projeto de destino do Google Cloud para o qual os metadados serão importados. -
LOCATION_ID: o local de destino Google Cloud em que o Serviço Gerenciado para Apache Spark e os jobs de importação de metadados serão executados e para onde os metadados serão importados. -
ENTRY_GROUP_ID: o ID do grupo de entrada para o qual os metadados serão importados. O ID do grupo de entrada pode conter letras minúsculas, números e hífens.O nome completo do recurso desse grupo de entrada é
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID. -
CREATE_ENTRY_GROUP_BOOLEAN: se você quiser que o pipeline crie o grupo de entrada, caso ele ainda não exista no projeto, defina esse valor comotrue. -
BUCKET_ID: o nome do bucket do Cloud Storage para armazenar o arquivo de importação de metadados gerado pelo conector. Cada execução de fluxo de trabalho cria uma nova pasta. -
SERVICE_ACCOUNT_ID: a conta de serviço que você configurou na seção Papéis necessários deste documento. A conta de serviço executa o conector no Serviço Gerenciado para Apache Spark. -
ADDITIONAL_CONNECTOR_ARGUMENTS: uma lista de argumentos adicionais a serem transmitidos ao conector. Para ver exemplos, consulte Desenvolver um conector personalizado para importação de metadados. Coloque cada argumento entre aspas duplas e separe-os com vírgulas. -
CONTAINER_IMAGE: a imagem do contêiner personalizada do conector hospedado no Artifact Registry. -
ENTRY_TYPES: uma lista de tipos de entrada que estão no escopo da importação, no formatoprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID. OLOCATION_IDprecisa ser o mesmo Google Cloud local em que você importa metadados ouglobal. -
ASPECT_TYPES: uma lista de tipos de aspecto que estão no escopo da importação, no formatoprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID. OLOCATION_IDprecisa ser o mesmo Google Cloud local em que você importa metadados ouglobal. -
Opcional: para o argumento
NETWORK_TAGS, forneça uma lista de tags de rede. -
Opcional: para o argumento
NETWORK_URI, forneça o URI da rede VPC que se conecta à fonte de dados. Se você fornecer uma rede, omita o argumento de sub-rede. -
Opcional: para o argumento
SUBNETWORK_URI, forneça o URI da sub-rede que se conecta à fonte de dados. Se você fornecer uma sub-rede, omita o argumento de rede.
Dependendo da quantidade de metadados importados, o pipeline pode levar vários minutos ou mais para ser executado. Para mais informações sobre como visualizar o progresso, consulte Acessar resultados da execução do fluxo de trabalho.
Depois que o pipeline terminar de ser executado, você poderá pesquisar os metadados importados no Knowledge Catalog.
-
Opcional: se você quiser executar o pipeline de acordo com uma programação, crie uma programação usando o Cloud Scheduler. Forneça as seguintes informações:
- Frequência: uma expressão Unix-cron que define a programação para executar o pipeline.
- Argumento do fluxo de trabalho: os argumentos de ambiente de execução para o conector, conforme descrito na etapa anterior.
- Conta de serviço: a conta de serviço. A conta de serviço gerencia o programador.
gcloud
Salve a seguinte definição de carga de trabalho como um arquivo YAML:
Defina as variáveis do Bash, crie o fluxo de trabalho e, se quiser, crie uma programação para executar o pipeline:
Substitua:
-
PROJECT_ID: o nome do projeto de destino do Google Cloud para o qual os metadados serão importados. -
LOCATION_ID: o local de destino do Google Cloud em que o Serviço Gerenciado para Apache Spark e os jobs de importação de metadados serão executados e os metadados serão importados. -
SERVICE_ACCOUNT_ID: a conta de serviço que você configurou na seção Papéis necessários deste documento. WORKFLOW_DEFINITION_FILE: o caminho para o arquivo YAML de definição do fluxo de trabalho.WORKFLOW_NAME: o nome do fluxo de trabalho.WORKFLOW_ARGUMENTS: os argumentos de ambiente de execução a serem transmitidos para o conector. Os argumentos estão no formato JSON:No Cloud Scheduler, as aspas duplas dentro da string entre aspas são escapadas usando barras invertidas (\). Por exemplo:
--message-body="{\"argument\": \"{\\\"key\\\": \\\"value\\\"}\"}".Substitua:
-
ENTRY_GROUP_ID: o ID do grupo de entrada para o qual os metadados serão importados. O ID do grupo de entrada pode conter letras minúsculas, números e hífens.O nome completo do recurso desse grupo de entrada é
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID. -
CREATE_ENTRY_GROUP_BOOLEAN: se você quiser que o pipeline crie o grupo de entrada, caso ele ainda não exista no projeto, defina esse valor comotrue. -
BUCKET_ID: o nome do bucket do Cloud Storage para armazenar o arquivo de importação de metadados gerado pelo conector. Cada execução de fluxo de trabalho cria uma nova pasta. -
ADDITIONAL_CONNECTOR_ARGUMENTS: uma lista de argumentos adicionais a serem transmitidos ao conector. Para ver exemplos, consulte Desenvolver um conector personalizado para importação de metadados. -
CONTAINER_IMAGE: a imagem de contêiner personalizada do conector hospedado no Artifact Registry. -
ENTRY_TYPES: uma lista de tipos de entrada que estão no escopo da importação, no formatoprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID. OLOCATION_IDprecisa ser o mesmo Google Cloud local em que você importa metadados ouglobal. -
ASPECT_TYPES: uma lista de tipos de aspecto que estão no escopo da importação, no formatoprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID. OLOCATION_IDprecisa ser o mesmo Google Cloud local em que você importa metadados ouglobal. -
Opcional: para o argumento
NETWORK_TAGS, forneça uma lista de tags de rede. -
Opcional: para o argumento
NETWORK_URI, forneça o URI da rede VPC que se conecta à fonte de dados. Se você fornecer uma rede, omita o argumento de sub-rede. -
Opcional: para o argumento
SUBNETWORK_URI, forneça o URI da sub-rede que se conecta à fonte de dados. Se você fornecer uma sub-rede, omita o argumento de rede.
-
CRON_SCHEDULE_EXPRESSION: uma expressão cron que define a programação para executar o pipeline. Por exemplo, para executar a programação à meia-noite todos os dias, use a expressão0 0 * * *.
-
Para executar o pipeline sob demanda, execute o fluxo de trabalho:
Os argumentos do fluxo de trabalho estão no formato JSON, mas não têm escape.
Dependendo da quantidade de metadados que você importar, o fluxo de trabalho pode levar vários minutos ou mais para ser executado. Para mais informações sobre como ver o progresso, consulte Acessar resultados da execução do fluxo de trabalho.
Depois que o pipeline terminar de ser executado, você poderá pesquisar os metadados importados no Knowledge Catalog.
Terraform
Clone o repositório
cloud-dataplex.O repositório inclui os seguintes arquivos do Terraform:
main.tf: define os recursos do Google Cloud a serem criados.variables.tf: declara as variáveis.byo-connector.tfvars: define as variáveis do pipeline de conectividade gerenciada.
Edite o arquivo
.tfvarspara substituir os marcadores de posição pelas informações do conector.Substitua:
-
PROJECT_ID: o nome do projeto de destino do Google Cloud para o qual os metadados serão importados. -
LOCATION_ID: o local de destino do Google Cloud em que o Serviço Gerenciado para Apache Spark e os jobs de importação de metadados serão executados e os metadados serão importados. -
SERVICE_ACCOUNT_ID: a conta de serviço que você configurou na seção Papéis necessários deste documento. -
CRON_SCHEDULE_EXPRESSION: uma expressão cron que define a programação para executar o pipeline. Por exemplo, para executar a programação à meia-noite todos os dias, use a expressão0 0 * * *. -
ENTRY_GROUP_ID: o ID do grupo de entrada para o qual os metadados serão importados. O ID do grupo de entrada pode conter letras minúsculas, números e hífens.O nome completo do recurso desse grupo de entrada é
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID. -
CREATE_ENTRY_GROUP_BOOLEAN: se você quiser que o pipeline crie o grupo de entrada, caso ele ainda não exista no projeto, defina esse valor comotrue. -
BUCKET_ID: o nome do bucket do Cloud Storage para armazenar o arquivo de importação de metadados gerado pelo conector. Cada execução de fluxo de trabalho cria uma nova pasta. -
ADDITIONAL_CONNECTOR_ARGUMENTS: uma lista de argumentos adicionais a serem transmitidos ao conector. Para ver exemplos, consulte Desenvolver um conector personalizado para importação de metadados. Coloque cada argumento entre aspas duplas e separe-os com vírgulas. -
CONTAINER_IMAGE: a imagem do contêiner personalizada do conector hospedado no Artifact Registry. -
ENTRY_TYPES: uma lista de tipos de entrada que estão no escopo da importação, no formatoprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID. OLOCATION_IDprecisa ser o mesmo Google Cloud local em que você importa metadados ouglobal. -
ASPECT_TYPES: uma lista de tipos de aspecto que estão no escopo da importação, no formatoprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID. OLOCATION_IDprecisa ser o mesmo Google Cloud local em que você importa metadados ouglobal. -
Opcional: para o argumento
NETWORK_TAGS, forneça uma lista de tags de rede. -
Opcional: para o argumento
NETWORK_URI, forneça o URI da rede VPC que se conecta à fonte de dados. Se você fornecer uma rede, omita o argumento de sub-rede. -
Opcional: para o argumento
SUBNETWORK_URI, forneça o URI da sub-rede que se conecta à fonte de dados. Se você fornecer uma sub-rede, omita o argumento de rede.
-
Inicialize o Terraform:
terraform initValide o Terraform com o arquivo
.tfvars:terraform plan --var-file=CONNECTOR_VARIABLES_FILE.tfvarsSubstitua
CONNECTOR_VARIABLES_FILEpelo nome do arquivo de definições de variáveis.Implante o Terraform com o arquivo
.tfvars:terraform apply --var-file=CONNECTOR_VARIABLES_FILE.tfvarsO Terraform cria um fluxo de trabalho e um job do Cloud Scheduler no projeto especificado. O Workflows executa o pipeline na programação que você especificar.
Dependendo da quantidade de metadados que você importar, o fluxo de trabalho pode levar vários minutos ou mais para ser executado. Para mais informações sobre como ver o progresso, consulte Acessar resultados da execução do fluxo de trabalho.
Depois que o pipeline terminar de ser executado, você poderá pesquisar os metadados importados no Knowledge Catalog.
Ver registros do job
Use o Cloud Logging para ver os registros de um pipeline de conectividade gerenciado. O payload do registro inclui um link para os registros do job em lote do Serviço Gerenciado para Apache Spark e do job de importação de metadados, conforme relevante. Para mais informações, consulte Ver registros de fluxo de trabalho.
Solução de problemas
Use as seguintes sugestões de solução de problemas:
- Configure o nível de registro do job de importação para que o job de metadados use a geração de registros no nível de depuração, em vez da geração de registros no nível de informações.
- Analise os registros do job em lote do Serviço Gerenciado para Apache Spark (para execuções do conector) e do job de importação de metadados. Para mais informações, consulte Consultar registros do Serviço Gerenciado para Apache Spark e Consultar registros de jobs de metadados.
- Se uma entrada não puder ser importada usando o pipeline e a mensagem de erro não fornecer informações suficientes, tente criar uma entrada personalizada com os mesmos detalhes em um grupo de entradas de teste. Para mais informações, consulte Criar uma entrada personalizada.
A seguir
- Sobre o gerenciamento de metadados no Knowledge Catalog
- Desenvolver um conector personalizado para importação de metadados