Os feeds de mudanças de metadados do Knowledge Catalog (antigo Dataplex Universal Catalog) permitem que você receba notificações quase em tempo real pelo Pub/Sub quando os metadados são criados, atualizados ou excluídos. É possível criar, visualizar, listar, atualizar e excluir esses feeds e consumir mensagens de notificação para acionar fluxos de trabalho downstream orientados por eventos.
Para mais informações, consulte Sobre feeds de alterações de metadados.
Antes de começar
Conheça o Pub/Sub e a API Dataplex.
-
Ative as APIs Dataplex e Pub/Sub, 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. Crie um tópico do Pub/Sub para receber notificações. Para mais informações, consulte Criar um tópico.
Instale
gcloud. Verifique se o alias curto degcloudestá definido.Defina um alias de
gcurl. Isso cria um atalho que inclui seu token de autenticação e define o tipo de conteúdo JSON para solicitações de API:alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'Defina a variável
DATAPLEX_API.DATAPLEX_API="dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION"Substitua:
PROJECT_ID: o ID do projeto em que a API Dataplex está ativadaLOCATION: o local em que o job é executado, por exemplo,us-central1,europe-west3ouasia-south1.
Papéis e permissões necessárias
Para configurar feeds de mudanças de metadados, verifique se você e a conta de serviço do Knowledge Catalog têm os papéis e as permissões do IAM necessários.
Funções e permissões do usuário
Para receber as permissões necessárias para exportar metadados e acessar mensagens de feeds de alteração de metadados, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto ou na organização:
-
Exportar metadados:
Exportador de grupo de entrada do Dataplex (
roles/dataplex.entryGroupExporter) -
Acessar mensagens de feeds de alteração de metadados:
Assinante do Pub/Sub (
roles/pubsub.subscriber)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para exportar metadados e acessar mensagens de feeds de alterações de metadados. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para exportar metadados e acessar mensagens de feeds de alteração de metadados:
-
Exportar metadados:
-
dataplex.metadataFeeds.createno projeto -
dataplex.entryGroups.exportno recurso que define o escopo do feed (organização, projeto ou grupo de entradas) -
resourcemanager.projects.getno projeto -
resourcemanager.projects.listno projeto
-
-
Acesse as mensagens dos feeds de alteração de metadados:
-
pubsub.subscriptions.consumena assinatura -
pubsub.topics.attachSubscriptionsobre o assunto
-
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Papéis e permissões da conta de serviço do Knowledge Catalog
Para garantir que a conta de serviço do Knowledge Catalog tenha a permissão necessária para publicar mensagens de feeds de alteração de metadados, peça ao administrador para conceder o papel do IAM de Publicador do Pub/Sub (roles/pubsub.publisher) e de leitor do Pub/Sub (roles/pubsub.viewer) à conta de serviço do Knowledge Catalog no tópico do Pub/Sub.
Esse papel predefinido contém as permissões pubsub.topics.publish e pubsub.topics.get, que são necessárias para publicar mensagens de feeds de alteração de metadados.
O administrador também pode conceder essa permissão à conta de serviço do Knowledge Catalog com papéis personalizados ou outros papéis predefinidos.
Conceder permissões à conta de serviço do Knowledge Catalog
O agente de serviço no Knowledge Catalog é criado quando você ativa a API Dataplex. É possível identificar o agente de serviço pelo ID de e-mail:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
Aqui, PROJECT_NUMBER é o número do projeto em que você ativou a API Dataplex.
A conta de serviço do Knowledge Catalog
precisa publicar mensagens no tópico do Pub/Sub
e recuperar os metadados do tópico.
Para conceder essas permissões, atribua à conta de serviço o papel de Publicador do Pub/Sub (roles/pubsub.publisher) e o papel de Leitor do Pub/Sub (roles/pubsub.viewer) no tópico do Pub/Sub:
gcloud
Execute o comando gcloud pubsub topics add-iam-policy-binding:
gcloud pubsub topics add-iam-policy-binding TOPIC_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \
--role="roles/pubsub.publisher"
gcloud pubsub topics add-iam-policy-binding TOPIC_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \
--role="roles/pubsub.viewer"
Substitua:
TOPIC_ID: o ID do tópico do Pub/Sub em que as mensagens do feed de mudanças de metadados são publicadas.PROJECT_NUMBER: o número do projeto do Knowledge Catalog em que a conta de serviço está localizada.
Console
No console do Google Cloud , acesse a página Tópicos do Pub/Sub.
Selecione o tópico que você está usando para notificações de feed de metadados e, se necessário, clique em Mostrar painel de informações.
Na guia Permissões, clique em Adicionar principal.
No campo Novos principais, insira a conta de serviço do Knowledge Catalog:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com.No campo Atribuir papéis, selecione Publicador do Pub/Sub.
Clique em Adicionar outro papel e selecione Leitor do Pub/Sub.
Clique em Salvar.
Criar um feed de alterações de metadados
Para controlar quais mudanças geram notificações, configure um feed de mudanças de metadados para monitorar recursos específicos. Para fazer isso, especifique um escopo, como toda a organização, projetos específicos ou grupos de entrada específicos. Enquanto o escopo permite definir quais recursos monitorar, você pode usar filtros para refinar ainda mais quando o Knowledge Catalog envia notificações.
Para mais informações, consulte Feed de alterações de metadados.
C#
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog C#.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Go.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Java.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Node.js
Antes de testar este exemplo, siga as instruções de configuração do Node.js no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Node.js.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Python.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Para criar um feed de alterações de metadados, use o método projects.locations.metadataFeeds.create.
Escopo da organização
Execute o comando a seguir para criar um feed de alterações de metadados que monitora toda a organização:
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"organizationLevel": true
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
Substitua:
PROJECT_ID_PUBSUB: o ID do projeto em que o tópico do Pub/Sub está localizado, por exemplo,example-project.TOPIC_ID: o ID do tópico do Pub/Sub em que as mensagens do feed de mudanças de metadados são publicadas, por exemplo,example-topic.FEED_ID: o ID do feed de alterações de metadados que você quer criar, por exemplo,example-feed.
Escopo do projeto
Execute o comando a seguir para criar um feed de alterações de metadados que monitora projetos específicos:
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"projects": [
"projects/PROJECT_ID_1",
"projects/PROJECT_ID_2"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
Substitua:
PROJECT_ID_PUBSUB: o ID do projeto em que o tópico do Pub/Sub está localizado, por exemplo,example-project.TOPIC_ID: o ID do tópico do Pub/Sub em que as mensagens do feed de mudanças de metadados são publicadas, por exemplo,example-topic.FEED_ID: o ID do feed de alterações de metadados que você quer criar, por exemplo,example-feed.
Escopo do grupo de entrada
Execute o comando a seguir para criar um feed de alterações de metadados que monitora grupos de entrada específicos:
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"entryGroups": [
"projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID_1",
"projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID_2"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
Substitua:
PROJECT_ID_PUBSUB: o ID do projeto em que o tópico do Pub/Sub está localizado, por exemplo,example-project.LOCATION: o local em que você quer criar o feed, por exemplo,us-central1.ENTRY_GROUP_ID: o ID do grupo de entrada a ser monitorado, por exemplo,example-entry-group.TOPIC_ID: o ID do tópico do Pub/Sub em que as mensagens do feed de mudanças de metadados são publicadas, por exemplo,example-topic.FEED_ID: o ID do feed de alterações de metadados que você quer criar, por exemplo,example-feed.
Com filtros
Execute o comando a seguir para criar um feed de alterações de metadados com filtros (filtrando por tipo de entrada):
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"projects": [
"projects/PROJECT_ID_1",
"projects/PROJECT_ID_2"
]
},
"filter": {
"entryTypes": [
"projects/PROJECT_ID/locations/global/entryTypes/bigquery-table"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
Substitua:
PROJECT_ID_PUBSUB: o ID do projeto em que o tópico do Pub/Sub está localizado, por exemplo,example-project.TOPIC_ID: o ID do tópico do Pub/Sub em que as mensagens do feed de mudanças de metadados são publicadas, por exemplo,example-topic.FEED_ID: o ID do feed de alterações de metadados que você quer criar, por exemplo,example-feed.
Resposta:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.dataplex.v1.OperationMetadata",
"createTime": "2023-10-02T15:01:23Z",
"target": "projects/PROJECT_ID/locations/LOCATION/metadataFeeds/FEED_ID",
"verb": "create",
"apiVersion": "v1"
},
"done": false
}
Ver um feed de alterações de metadados
É possível ver os detalhes de um feed de mudanças de metadados.
C#
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog C#.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Go.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Java.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Node.js
Antes de testar este exemplo, siga as instruções de configuração do Node.js no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Node.js.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Python.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Para visualizar um feed de alterações de metadados, use o método projects.locations.metadataFeeds.get.
Execute este comando:
gcurl "https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
Substitua:
FEED_ID: o ID do feed de alterações de metadados que você quer visualizar, por exemplo,example-feed.
Listar feeds de mudanças de metadados
É possível listar os feeds de alteração de metadados em um projeto e local.
C#
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog C#.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Go.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Java.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Node.js
Antes de testar este exemplo, siga as instruções de configuração do Node.js no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Node.js.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Python.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Para listar feeds de alterações de metadados, use o método projects.locations.metadataFeeds.list.
Execute este comando:
gcurl "https://${DATAPLEX_API}/metadataFeeds"
Atualizar um feed de alterações de metadados
É possível atualizar o escopo ou os filtros de um feed de alterações de metadados.
C#
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog C#.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Go.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Java.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Node.js
Antes de testar este exemplo, siga as instruções de configuração do Node.js no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Node.js.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Python.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Para atualizar um feed de alterações de metadados, use o método projects.locations.metadataFeeds.patch.
Execute o comando a seguir para atualizar o feed de alterações de metadados e remover os filtros de tipo de entrada:
gcurl -X PATCH -d "$(cat <<EOF
{
"filter": {
"entryTypes": []
}
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds/FEED_ID?updateMask=filter"
Substitua:
FEED_ID: o ID do feed de alterações de metadados que você quer atualizar, por exemplo,example-feed.
Excluir um feed de alterações de metadados
É possível excluir um feed de alterações de metadados se você não precisar mais receber notificações.
A exclusão de um feed de alterações de metadados impede que ele publique novas alterações de metadados no tópico do Pub/Sub. No entanto, ele não exclui o tópico ou a assinatura associada ao feed. É preciso excluí-los manualmente se não forem mais necessários.
Antes de excluir o feed ou a assinatura, verifique se os aplicativos de assinante processaram todas as mensagens pendentes na assinatura do Pub/Sub.
C#
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog C#.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Go.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Java.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Node.js
Antes de testar este exemplo, siga as instruções de configuração do Node.js no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Node.js.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Python.
Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Para excluir um feed de alterações de metadados, use o método projects.locations.metadataFeeds.delete.
Execute este comando:
gcurl -X DELETE \
"https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
Substitua:
FEED_ID: o ID do feed de alterações de metadados que você quer excluir, por exemplo,example-feed.
Consumir mensagens de notificação
Depois de configurar um feed de alterações de metadados, o Knowledge Catalog publica mensagens no tópico do Pub/Sub especificado quando ocorrem alterações de metadados. Para consumir essas mensagens, crie uma assinatura do Pub/Sub para o tópico.
Por exemplo, é possível criar uma assinatura por pull e usar a Google Cloud CLI para visualizar mensagens:
Crie uma assinatura:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_IDSubstitua:
SUBSCRIPTION_ID: o ID da assinatura que você quer criar.TOPIC_ID: o ID do tópico do Pub/Sub em que as mensagens do feed de mudanças de metadados são publicadas.
Receba mensagens da assinatura:
gcloud pubsub subscriptions pull SUBSCRIPTION_ID --auto-ack --limit=10Substitua:
SUBSCRIPTION_ID: o ID da assinatura de onde você quer extrair mensagens.
Para mais informações sobre como processar mensagens do Pub/Sub, consulte Receber mensagens de uma assinatura por pull. Para informações sobre o formato da mensagem, consulte Payload de dados.
A seguir
- Leia a Visão geral dos feeds de alteração de metadados.
- Saiba mais sobre o IAM e o controle de acesso do Knowledge Catalog.
- Resolver problemas de feeds de alteração de metadados.