Resolver problemas de linhagem de dados

Nesta página, mostramos como resolver problemas com a linhagem de dados do Data Catalog.

Tipos de projeto

Como os recursos de dados podem residir em diferentes projetos, veja aqui um resumo de possíveis projetos e seus nomes de ativos.

Projeto de armazenamento do BigQuery

Esse projeto armazena seus recursos de dados do BigQuery. É possível encontrá-lo nos detalhes do recurso como parte de Table ID, antes do primeiro ponto.

Na IU do BigQuery, o nome do projeto de armazenamento é mostrado no campo "ID da tabela", antes do primeiro ponto no nome da tabela totalmente qualificado.
Figura 1. O nome de um projeto de armazenamento do BigQuery.

Projeto de computação

Esse projeto armazena os metadados de linhagem de dados. Para o BigQuery, é aqui que você executa um job. Se você executar um job na UI, o nome do projeto de computação vai estar no seletor de projetos:

A interface do BigQuery mostra um projeto de computação chamado docs-compute na página em que você executa consultas SQL.
Figura 2. O nome de um projeto de computação que executa jobs do BigQuery.

Ao enviar solicitações para a API BigQuery, especifique o projeto de computação no URL, por exemplo:

POST /bigquery/v2/projects/docs-compute/jobs HTTP/1.1
Host: bigquery.googleapis.com
User-Agent: Go-http-client/1.1
Authorization: <REDACTED 1031 BYTES>
Accept-Encoding: gzip
{
  "configuration": {
    "query": {
      "useLegacySql": false,
      "query": "CREATE OR REPLACE TABLE `docs-target.dataset.target-002` AS SELECT * FROM `docs-source.dataset.source-002`;"
    }
  },
  "jobReference": {
    "projectId": "docs-compute",
    "jobId": "docs-compute-job-id",
    "location": "us",
  }
}

Projeto ativo

Este é o projeto de que você está visualizando a linhagem de dados. O console do Google Cloud mostra o projeto ativo no seletor de projetos. Se você estiver usando a API, o projeto ativo será aquele em que você está fazendo chamadas de API.

A IU do BigQuery mostra a linhagem de dados de um
    conjunto de dados chamado source-001, que está em um projeto chamado docs-source.
Figura 3. o projeto ativo no console do Google Cloud;

A linhagem de dados do BigQuery não é exibida

O problema a seguir ocorre após a execução de um job do BigQuery. Nesse caso, o problema pode ser causado por três cenários:

  • A API Data Lineage está desativada no projeto ativo ou no projeto de computação.
  • Você não tem o Leitor da linhagem de dados (roles/datalineage.viewer) no projeto ativo ou no de compute.
  • A linhagem de dados ainda não chegou. Dependendo do volume e da complexidade dos dados processados, pode levar de 30 minutos a 24 horas padrão para que a linhagem de dados seja exibida.

Se a mensagem "Buscar linhagem falhou devido à ausência de permissões" for exibida na parte inferior da página, você não terá permissões no projeto ativo. Caso contrário, você não terá permissões no projeto de computação.

Uma captura de tela que mostra um gráfico de linhagem vazio.
Figura 4. Exemplo de linhagem não mostrado na interface do BigQuery.

Para resolver esse problema, primeiro verifique se a API Data Lineage está ativada no projeto de computação. Depois de ativar a API, você precisa executar um job para ver a linhagem de dados. Dependendo do volume e da complexidade dos dados que estão sendo processados, pode levar de 30 minutos a 24 horas para a linhagem de dados ser exibida.

Em seguida, verifique se a API Data Lineage está ativada para o projeto ativo. Depois de ativar a API, se você tiver as permissões necessárias (veja abaixo), a linhagem será exibida.

Quando a API Data Lineage for ativada, conceda o Leitor da linhagem de dados (roles/datalineage.viewer) nos projetos ativo e de compute.

Os metadados do processo do BigQuery não são mostrados

Descrição do problema

O problema a seguir ocorre quando você abre o painel de detalhes da tabela, que não mostra todos os detalhes, como a instrução SQL ou a propriedade Process type. Isso acontece mesmo que a linhagem de dados seja exibida corretamente.

Isso pode acontecer quando você não tem permissões para ver os metadados no projeto de computação.

Exemplo:

  • Tabela de origem do BigQuery: docs-source.dataset.source-001
  • Tabela de destino do BigQuery: docs-target.dataset.target-001
  • Linhagem de dados entre docs-source.dataset.source-001 e docs-target.dataset.target-001 no projeto de computação docs-compute
  • Você tem o papel Leitor da linhagem de dados para projetos docs-compute ativos e de compute.

Quando você clica nos detalhes do processo do BigQuery, a seguinte mensagem é exibida:

You don't have permission to view BigQuery process metadata in project X.

No console do Google Cloud:

Na IU do BigQuery, na guia &quot;Linhagem&quot;, o painel &quot;Detalhes&quot; mostra
    uma mensagem de erro.
Figura 5. Exemplo de detalhes do processo do BigQuery que não aparecem na interface do BigQuery.

Para resolver esse problema, conceda ao usuário a permissão bigquery.jobs.get (por exemplo, incluída no papel Leitor de recursos do BigQuery) no projeto do Compute.

Os detalhes da tabela do BigQuery não estão sendo mostrados

O problema a seguir ocorre quando você abre o painel de detalhes da tabela, que mostra apenas a propriedade "Nome totalmente qualificado". Isso acontece mesmo que a linhagem de dados seja exibida corretamente. Isso pode acontecer quando você não tem todas as permissões necessárias nos projetos de armazenamento da tabela.

Exemplo:

  • tabela do BigQuery docs-source.dataset.source-001,
  • tabela do BigQuery docs-target.dataset.target-001,
  • linhagem de dados entre docs-source.dataset.source-001 e docs-target.dataset.target-001 com o projeto de computação docs-compute,
  • Usuário que tem o papel de Leitor da linhagem de dados para os projetos docs-compute ativos e de compute.

Nesse caso, ao clicar nos detalhes do nó do BigQuery, o usuário vê uma mensagem Entry with this fully qualified name is not available in the Data Catalog.

Captura de tela que mostra um painel de tabela vazio.
Figura 6. Exemplo de detalhes da tabela do BigQuery que não aparecem na interface do BigQuery.

Para resolver esse problema, conceda ao usuário as permissões bigquery.tables.get (por exemplo, incluídas no papel Leitor de dados do BigQuery) no projeto de armazenamento.