Pesquisar e visualizar recursos de dados com o Data Catalog

Neste documento, explicamos como você pode usar o Data Catalog para fazer uma pesquisa de recursos de dados, como:

  • Conjuntos de dados, tabelas, visualizações e modelos do BigQuery.
  • Fluxos de dados do Pub/Sub.
  • Modelos de tag do Data Catalog, grupos de entrada e entradas personalizadas.
  • Lakes, zonas, tabelas e conjuntos de arquivos do Dataplex.
  • Recursos em silos de dados corporativos conectados ao Data Catalog
  • (Visualização pública): serviços, bancos de dados e tabelas do metastore do Dataproc
  • (Visualização pública): conjuntos de dados vinculados do Analytics Hub.

Escopo de pesquisa

Talvez você veja resultados de pesquisa diferentes com base nas suas permissões. O escopo dos resultados da pesquisa do Data Catalog é definido de acordo com sua função.

Revise os diferentes tipos de papel e permissões do IAM disponíveis para o Data Catalog.

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

  • Para pesquisar uma tabela, é necessário ter a permissão bigquery.tables.get para ela.

  • Para pesquisar um conjunto de dados, é preciso ter a permissão bigquery.tables.get.

  • Para pesquisar metadados de um conjunto de dados ou tabela, é necessário ter o papel roles/bigquery.metadataViewer.

Se você tiver acesso a uma tabela do BigQuery, mas não ao conjunto de dados que a contém, ela ainda aparecerá como esperado na pesquisa do Data Catalog. A mesma lógica de acesso se aplica a todos os sistemas compatíveis, como o Pub/Sub e o Data Catalog.

As consultas de pesquisa do Data Catalog não garantem um 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 precisar buscar os resultados em qualquer ordem específica, considere configurar o parâmetro orderBy como default ao chamar o método catalog.search.

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. Tabelas específicas fragmentads por data não ficarão visíveis na pesquisa do Data Catalog, mesmo que estejam presentes no Data Catalog e possam receber tags.

Como pesquisar recursos de dados

Console

Console

  1. Para iniciar uma consulta de pesquisa do Data Catalog, acesse a página Pesquisa no Console do Google Cloud.

    Acessar a Pesquisa do Data Catalog

  2. Quando você clica em Pesquisar ou faz uma seleção nos painéis Explorar recursos de dados e Dicas de pesquisa na página inicial do Data Catalog, a página Pesquisa é aberta.

    Se você fizer uma seleção nos painéis da página inicial, ela será transferida para a expressão da caixa de pesquisa a fim de qualificar a pesquisa.

  3. Você também pode filtrar os resultados de pesquisa selecionando no painel Filtros à esquerda.

Filtros

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

  • Sistemas, como BigQuery, Pub/Sub, Dataplex, Dataproc Metastore, sistemas personalizados e o próprio Data Catalog

  • Tipos de dados, como fluxos de dados, 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ê.

  • Modelos de tag lista todos os modelos disponíveis.

  • Os conjuntos de dados são provenientes do BigQuery.

A seção Modelos de tag mostra modelos de tag. Você pode usar filtros para pesquisar modelos de tag relevantes. Um modelo selecionado filtra os recursos de dados com tags que usam o modelo escolhido. Se nenhuma entrada tiver essas tags, todos os resultados da pesquisa serão excluídos, mesmo que a consulta de pesquisa original possa corresponder a algumas entradas.

Todos os conjuntos de filtros, exceto os modelos de tag, são atualizados dependendo da alteração da consulta de pesquisa. Os filtros são preenchidos usando uma amostra dos resultados da pesquisa atuais. Portanto, todo o conjunto de resultados da pesquisa pode incluir entradas que correspondem à consulta atual, mas os filtros que correspondem a elas talvez não sejam exibidos no painel Filtros.

É 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 Modelos de tag, clique em uma opção no filtro suspenso Adicionar mais modelos de tag, pesquise um modelo específico, selecione-o e clique em OK.

Além disso, você pode:

  • Marque Incluir conjuntos de dados públicos para pesquisar os recursos de dados disponíveis publicamente no Google Cloud, além dos recursos disponíveis para você.
  • Volte à experiência de pesquisa antiga clicando no botão correspondente no canto superior direito. A experiência antiga oferece uma filtragem mais simples.

Exemplo de pesquisa

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

  1. Digite trips na caixa de pesquisa e clique em Pesquisar.
  2. Selecione BigQuery na seção Sistemas para excluir recursos de dados 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. Se o projeto não for exibido na seção, clique em ADICIONAR PROJETO e selecione-o na janela de diálogo.
  4. Selecione a opção Modelo de tag de demonstração na seção Modelos de tag para ver se uma tag que usa esse modelo está anexada à tabela "quos;trips". Se esse modelo não for exibido na seção, clique na lista suspensa Adicionar mais tags, encontre-a e selecione-a. Em seguida, clique em OK.

Com todos os filtros selecionados, os resultados da pesquisa contêm apenas uma entrada: a tabela "quot;trips" do BigQuery no projeto com uma tag anexada que usa o "modelo de tag de demonstração".

Além disso, há outras possibilidades:

  1. Filtre a pesquisa adicionando keyword:value aos termos de pesquisa na caixa de pesquisa:

    KeywordDescriçã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. Você pode fazer uma pesquisa por tag adicionando um dos seguintes prefixos de palavra-chave aos termos 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 a expressão de pesquisa entre aspas ("search terms") se ela contiver espaços.

  • É possível preceder uma palavra-chave com "NOT" (com todas as letras maiúsculas) para corresponder à negação lógica do filtro keyword:term. Também é possível usar os operadores booleanos "quot;AND" e "OR" (requer letras maiúsculas) para combinar expressões de pesquisa.

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

Java

Antes de testar essa amostra, siga as instruções de configuração para Java no Guia de início rápido do Data Catalog: como usar as bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Data Catalog em Java.

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 essa amostra, siga as instruções de configuração para Node.js no Guia de início rápido do Data Catalog: como usar as bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Data Catalog em Node.js.

// 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=dataset';

  // 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 essa amostra, siga as instruções de configuração para Python no Guia de início rápido do Data Catalog: como usar as bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Data Catalog em Python.

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 e linha de comando

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 qualquer um dos dados da solicitação, faça as seguintes substituições:

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 ver os detalhes da tabela.

  1. Acesse a página "Data Catalog".

    Acessar o Data Catalog

  2. Na caixa de pesquisa, insira o nome de um conjunto de dados com uma tabela.

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

  3. Clique na tabela.

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

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

  • Detalhes da tabela do BigQuery. Inclui informações como horário da criação, hora da última modificação, data de validade, URLs de recursos, etiquetas etc.

  • Tags. Lista as tags aplicadas.Você pode editar as tags nesta página e visualizar o modelo de tag. Clique no ícone Ações.

  • Tags de esquema e colunas. Lista o esquema aplicado e os valores dele.

Marque suas entradas favoritas com estrela e pesquise-as

Se você navega com frequência os mesmos recursos de dados, pode incluir as entradas deles em uma lista personalizada marcando-os com estrelas. Para fazer isso na IU do Data Catalog, faça o seguinte:

  1. Acesse o Data Catalog no Console do Google Cloud e pesquise um recurso.
  2. Marcar a entrada com uma estrela de duas maneiras:

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

Você pode marcar com estrela até 200 entradas.

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

Para pesquisar apenas entradas com estrela, selecione a opção Scope > Favoritos no painel Filtros.

Também é possível usar os métodos correspondentes da API Data Catalog para marcar com estrelas e remover estrelas das entradas. Ao pesquisar recursos, use o parâmetro starredOnly no objeto scope. Consulte método catalog.search.