Pesquisar e visualizar recursos de dados com o Data Catalog

Neste documento, explicamos como usar o Data Catalog para realizar uma pesquisa de recursos de dados.

Os recursos de dados que você pode pesquisar incluem:

  • Conjuntos de dados vinculados do Analytics Hub
  • Conjuntos de dados, tabelas, visualizações e modelos do BigQuery
  • Instâncias, clusters e tabelas do Bigtable (incluindo detalhes do grupo de colunas)
  • modelos de tags do Data Catalog, grupos de entrada e entradas personalizadas
  • Lakes, zonas, tabelas e conjuntos de arquivos do Dataplex
  • serviços do Dataproc Metastore, bancos de dados e tabelas
  • Fluxos de dados do Pub/Sub
  • Instâncias, bancos de dados, tabelas do Spanner e visualizações.
  • Modelos da Vertex AI, conjuntos de dados e recursos do Vertex AI Feature Store
  • Os recursos em silos de dados corporativos conectados Data Catalog

Escopo de pesquisa

Você pode ter resultados de pesquisa diferentes com base nas suas permissões. O escopo dos resultados da pesquisa do Data Catalog é definido de acordo com o papel.

Você pode analisar os diferentes tipos de Permissões e papéis do IAM disponíveis para o Data Catalog.

Por exemplo, se você tiver acesso de leitura de metadados do BigQuery a um objeto, ele aparece na sua pesquisa do Data Catalog resultados. A lista a seguir descreve as permissões mínimas necessárias:

  • Para pesquisar uma tabela, você precisa da permissão bigquery.tables.get para dessa tabela.

  • Para pesquisar um conjunto de dados, você precisa da permissão bigquery.datasets.get para esse conjunto de dados.

  • Para pesquisar metadados de um conjunto de dados ou de uma tabela, você precisa do papel roles/bigquery.metadataViewer.

  • Para pesquisar todos os recursos em um projeto ou organização, você precisa da permissão datacatalog.catalogs.searchAll. Funciona para todos os recursos, seja qual for o sistema de origem.

Se você tiver acesso a uma tabela do BigQuery, mas não ao conjunto de dados que contém a tabela, ela ainda é exibida conforme esperado no Pesquisa no Data Catalog. A mesma lógica de acesso se aplica sistemas com suporte, como Pub/Sub e Data Catalog, por conta própria.

As consultas de pesquisa do Data Catalog não garantem o recall completo. É possível que os resultados correspondentes à consulta não sejam retornados, mesmo em páginas de resultados subsequentes. Além disso, os resultados retornados (e não retornados) poderão variar se você repetir as consultas de pesquisa.

Se você estiver com problemas de recall e não tiver que buscar o resultados em qualquer ordem específica, defina o parâmetro orderBy como default ao chamar o método catalog.search.

Use a sinalização admin_search.

O uso da flag admin_search na solicitação de pesquisa garante o recall completo. A pesquisa do administrador exige a permissão datacatalog.catalogs.searchAll para ser definidos em todos os projetos e organizações no escopo da pesquisa. Ao usar admin_search, apenas default orderBy é permitido.

Tabelas fragmentadas por data

O Data Catalog agrega tabelas fragmentadas por data em uma única entrada lógica. Essa entrada tem o mesmo esquema que o fragmento da tabela com a data mais recente e contém informações agregadas sobre o número total de fragmentos. A entrada deriva o nível de acesso dela usando o conjunto de dados a que ela pertence. A pesquisa do Data Catalog mostrará essas entradas lógicas somente se o usuário tiver acesso ao conjunto de dados que as contém. Fragmentação individual por data não são visíveis na pesquisa do Data Catalog, mesmo que estão presentes no Data Catalog e podem ser marcadas.

Filtros

Os filtros permitem restringir os resultados da pesquisa. Todos os filtros são agrupados em seções:

  • Escopo para limitar a pesquisa apenas aos itens marcados com estrela.
  • Sistemas, como BigQuery, Pub/Sub, Dataplex e Dataproc Metastore , personalizado Vertex AI e o próprio Data Catalog. O sistema do Data Catalog contém conjuntos de arquivos e entradas personalizadas.
  • Lagos e zonas vêm do Dataplex.
  • Tipos de dados, como streams, conjuntos de dados, lakes, zonas, conjuntos de arquivos, modelos, tabelas, visualizações, serviços, bancos de dados e tipos personalizados.
  • Projetos lista todos os projetos disponíveis para você.
  • Tags lista todos os modelos de tag (e os respectivos campos individuais) disponíveis para você.
  • Os conjuntos de dados são provenientes do BigQuery e da Vertex AI.
  • Conjuntos de dados públicos são dados disponíveis publicamente do BigQuery.

É possível combinar filtros de várias seções para encontrar recursos que correspondam a pelo menos uma condição de cada seção selecionada. Vários filtros selecionados em de uma única seção são avaliadas com o método "OR" operador lógico. Por exemplo: considerando a seguinte combinação de filtros:

Painel de filtro do valor da tag com várias seções selecionadas.

O Data Catalog procura:

  • Conjuntos de dados do BigQuery marcados com o modelo MyTemplate1.

  • Conjuntos de dados do BigQuery marcados com o modelo MyTemplate2.

  • Tabelas do BigQuery marcadas com o modelo MyTemplate1.

  • Tabelas do BigQuery marcadas com o modelo MyTemplate2.

Filtrar por valor da tag

Os filtros Tags permitem consultar recursos marcados usando um modelo específico. Você pode usar o menu Personalizar para refinar ainda mais os resultados e filtrar por valores de tag específicos. As condições de filtro dos valores de tag dependem do tipo de dados desse campo. Por exemplo, para os campos de data e hora e de número, é possível especificar uma data ou intervalo específico.

Visibilidade dos filtros

Os filtros exibidos em cada seção dependem da consulta atual na Caixa de pesquisa. Todo o conjunto de resultados da pesquisa pode incluir entradas que correspondem à consulta atual, mas os filtros que correspondem a essas entradas podem não será exibido no painel Filtros.

Como pesquisar recursos de dados

Console

Console

  1. Para iniciar uma consulta de pesquisa do Dataplex no console do Google Cloud, acesse a página Pesquisa do Dataplex.

    Acessar a Pesquisa do Dataplex

  2. Em Escolher plataforma de pesquisa, selecione Data Catalog como o modo de pesquisa.

  3. No campo de pesquisa, digite sua consulta ou use o painel Filtros para refinar os parâmetros.

É possível adicionar manualmente os seguintes filtros:

  • Em Projetos, filtre um projeto clicando no botão ADICIONAR PROJETO, procure um projeto específico, selecione-o e clique em ABRIR.
  • Em Tags, um modelo de tag filtra clicando no menu suspenso Adicionar mais modelos de tag, pesquisando um modelo específico, selecionando-o e clicando em OK.

Também é possível:

  • Marque Incluir conjuntos de dados públicos para pesquisar recursos de dados publicamente disponíveis no Google Cloud, além dos recursos disponíveis para você.

Exemplo de pesquisa

Por exemplo, para pesquisar a tabela trips que você configurou em Configurar modelos de tag, tags, visões gerais e administradores de dados:

  1. Digite trips no campo de pesquisa e clique em Pesquisar.
  2. Selecione BigQuery na seção Sistemas para excluir recursos de dados com com o mesmo nome que pertencem a outros sistemas.
  3. Selecione o ID do projeto na seção Projetos para excluir recursos de dados de outros projetos. Caso seu projeto não apareça nessa seção, Clique em ADICIONAR PROJETO e selecione-o na janela de diálogo.
  4. Selecione o Modelo de tag de demonstração na seção Modelos de tag para confira se uma tag que usa esse modelo está anexada à tabela trips. Se este modelo não for exibido na seção, clique no botão Adicionar mais tags local, localize e selecione-o e clique em OK.

Com todos os filtros selecionados, os resultados da pesquisa contêm apenas um entrada: a tabela trips do BigQuery no seu projeto com uma tag anexada que usa o Demo Tag Template.

Além disso, há outras possibilidades:

  1. Filtre sua pesquisa adicionando um keyword:value aos termos de pesquisa no campo de pesquisa:

    Palavra-chaveDescrição
    name: Corresponder a um nome de recurso de dados
    column: Nome da coluna correspondente ou da coluna aninhada
    description: Corresponder à descrição de uma tabela

  2. Faça uma pesquisa adicionando uma das seguintes tags: prefixos de palavra-chave aos termos de pesquisa no campo de pesquisa:

    TagDescrição
    tag:project-name.tag_template_name Corresponde ao nome da tag.
    tag:project-name.tag_template_name.key Corresponder a uma chave de tag
    tag:project-name.tag_template_name.key:value Par de key:string value tag de correspondência

Dicas sobre a expressão de pesquisa

  • Coloque sua expressão de pesquisa entre aspas ("search terms") se ela contém espaços.

  • É possível usar "NOT" antes de uma palavra-chave (todas em LETRAS MAIÚSCULAS) para corresponder ao negação do filtro keyword:term. Também é possível usar os operadores booleanos "AND" e "OR", em letras maiúsculas, para combinar expressões de pesquisa.

    Por exemplo:NOT column:term lista todas as colunas, exceto as que correspondem ao termo especificado. Para obter uma lista de palavras-chave e outros termos que você pode usar em um a expressão de pesquisa do Data Catalog. Consulte Sintaxe de pesquisa do Data Catalog.

Java

Antes de testar este exemplo, siga as instruções de configuração do Java na O guia de início rápido do Data Catalog usando bibliotecas de cliente. Para mais informações, consulte a API Data Catalog Java documentação de referência.

Para autenticar no Data Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

import com.google.cloud.datacatalog.v1.DataCatalogClient;
import com.google.cloud.datacatalog.v1.DataCatalogClient.SearchCatalogPagedResponse;
import com.google.cloud.datacatalog.v1.SearchCatalogRequest;
import com.google.cloud.datacatalog.v1.SearchCatalogRequest.Scope;
import com.google.cloud.datacatalog.v1.SearchCatalogResult;
import java.io.IOException;

// Sample to search catalog
public class SearchAssets {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "my-project-id";
    String query = "type=dataset";
    searchCatalog(projectId, query);
  }

  public static void searchCatalog(String projectId, String query) throws IOException {
    // Create a scope object setting search boundaries to the given organization.
    // Scope scope = Scope.newBuilder().addIncludeOrgIds(orgId).build();

    // Alternatively, search using project scopes.
    Scope scope = Scope.newBuilder().addIncludeProjectIds(projectId).build();

    // 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()) {
      // Search the catalog.
      SearchCatalogRequest searchCatalogRequest =
          SearchCatalogRequest.newBuilder().setScope(scope).setQuery(query).build();
      SearchCatalogPagedResponse response = dataCatalogClient.searchCatalog(searchCatalogRequest);

      System.out.println("Search results:");
      for (SearchCatalogResult result : response.iterateAll()) {
        System.out.println(result);
      }
    }
  }
}

Node.js

Antes de testar este exemplo, siga as instruções de configuração do Node.js na O guia de início rápido do Data Catalog usando bibliotecas de cliente. Para mais informações, consulte a API Data Catalog Node.js documentação de referência.

Para autenticar no Data Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

// Import the Google Cloud client library.
const {DataCatalogClient} = require('@google-cloud/datacatalog').v1;
const datacatalog = new DataCatalogClient();

async function searchAssets() {
  // Search data assets.

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const projectId = 'my_project'; // Google Cloud Platform project

  // Set custom query.
  const query = 'type=lake';

  // Create request.
  const scope = {
    includeProjectIds: [projectId],
    // Alternatively, search using Google Cloud Organization scopes.
    // includeOrgIds: [organizationId],
  };

  const request = {
    scope: scope,
    query: query,
  };

  const [result] = await datacatalog.searchCatalog(request);

  console.log(`Found ${result.length} datasets in project ${projectId}.`);
  console.log('Datasets:');
  result.forEach(dataset => {
    console.log(dataset.relativeResourceName);
  });
}
searchAssets();

Python

Antes de testar este exemplo, siga as instruções de configuração do Python na O guia de início rápido do Data Catalog usando bibliotecas de cliente. Para mais informações, consulte a API Data Catalog Python documentação de referência.

Para autenticar no Data Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

from google.cloud import datacatalog_v1

datacatalog = datacatalog_v1.DataCatalogClient()

# TODO: Set these values before running the sample.
project_id = "project_id"

# Set custom query.
search_string = "type=dataset"
scope = datacatalog_v1.types.SearchCatalogRequest.Scope()
scope.include_project_ids.append(project_id)

# Alternatively, search using organization scopes.
# scope.include_org_ids.append("my_organization_id")

search_results = datacatalog.search_catalog(scope=scope, query=search_string)

print("Results in project:")
for result in search_results:
    print(result)

REST e LINHA DE CMD

REST

Se você não tiver acesso às bibliotecas do Cloud Client para seu idioma ou desejar testar a API usando solicitações REST, consulte os exemplos a seguir e consulte a documentação da API REST.

1. Pesquisar no catálogo

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • organization-id: ID da organização do GCP
  • project-id: ID de projeto do GCP.

Método HTTP e URL:

POST https://datacatalog.googleapis.com/v1/catalog:search

Corpo JSON da solicitação:

{
  "query":"trips",
  "scope":{
    "includeOrgIds":[
      "organization-id"
    ]
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "results":[
    {
      "searchResultType":"ENTRY",
      "searchResultSubtype":"entry.table",
"relativeResourceName":"projects/project-id/locations/US/entryGroups/@bigquery/entries/entry1-id",
      "linkedResource":"//bigquery.googleapis.com/projects/project-id/datasets/demo_dataset/tables/taxi_trips"
    },
    {
      "searchResultType":"ENTRY",
      "searchResultSubtype":"entry.table",
      "relativeResourceName":"projects/project-id/locations/US/entryGroups/@bigquery/entries/entry2-id",
      "linkedResource":"//bigquery.googleapis.com/projects/project-id/datasets/demo_dataset/tables/tlc_yellow_trips_2018"
    }
  ]
}

Ver detalhes da tabela

No console do Cloud, é possível usar o Data Catalog para visualizar os detalhes da tabela.

  1. Acesse a página de pesquisa do Dataplex.

    Acessar o Data Catalog

  2. Em Escolher plataforma de pesquisa, selecione Data Catalog como o modo de pesquisa.

  3. Na caixa de pesquisa, insira o nome de um conjunto de dados que tenha uma tabela.

    Por exemplo, se você concluiu o Guia de início rápido, pode pesquisar demo-dataset e selecionar a tabela trips.

  4. Clique na tabela.

    A página Detalhes da tabela do BigQuery é aberta.

Os detalhes da tabela incluem as seguintes seções:

  • Detalhes da tabela do BigQuery. Inclui informações como a hora da criação, a hora da última modificação, a hora de expiração, URLs de recursos, rótulos etc.

  • Tags. Lista as tags aplicadas.É possível editar as tags a partir dessa página e visualizar o modelo de tag. Clique no botão Ações.

  • Tags de coluna e esquema. Lista o esquema aplicado e os valores correspondentes.

Marque com estrela e pesquise suas entradas favoritas

Se você navega com frequência pelos mesmos recursos de dados, inclua as entradas deles no em uma lista personalizada, marcando-os com estrelas. Para fazer isso na interface do Dataplex:

  1. Acesse a página de pesquisa do Dataplex.

    Acessar o Data Catalog

  2. Em Escolher plataforma de pesquisa, selecione Data Catalog como o modo de pesquisa.

  3. Encontre seu recurso e marque com estrela a entrada dele de uma das duas maneiras:

    • Clique no ícone ao lado do entrada nos resultados da pesquisa.
    • Clique no nome da entrada para abrir a página de detalhes e clique no ícone Botão de STAR no barra de ações na parte superior.

É possível marcar até 200 entradas com estrelas.

As entradas com estrela aparecem na lista Entradas com estrela na página de pesquisa antes de quando você digita uma consulta na barra de pesquisa. Essa lista só está visível para você.

Para procurar apenas entradas com estrela, selecione o Escopo > Opção Com estrela ativada no painel Filtros.

Você também pode usar os métodos correspondentes de API Data Catalog para marcar com estrela e remover estrela das entradas. Ao pesquisar recursos, use o parâmetro starredOnly na objeto scope. Consulte método catalog.search.