Busca recursos de datos con Data Catalog

En este documento, se describe cómo usar Data Catalog para buscar recursos de datos.

Puedes buscar los siguientes recursos de datos:

  • Conjuntos de datos vinculados de Analytics Hub
  • Tablas, vistas, modelos y conjuntos de datos de BigQuery
  • Instancias, clústeres y tablas de Bigtable (incluidos los detalles de familia de columnas)
  • Plantillas de etiquetas, grupos de entradas y entradas personalizadas de Data Catalog
  • Lakes, zonas, tablas y conjuntos de archivos de Dataplex
  • Servicios, base de datos y tablas de Dataproc Metastore
  • Flujos de datos de Pub/Sub
  • Instancias, bases de datos, tablas y vistas de Spanner
  • Modelos, conjuntos de datos y recursos de Vertex AI Feature Store de Vertex AI
  • Recursos en silos de datos empresariales conectados a Data Catalog

Alcance de la búsqueda

Es posible que tengas resultados de la búsqueda diferentes según tus permisos. El alcance de los resultados de la búsqueda de Data Catalog se define según tu rol.

Puedes revisar los diferentes tipos de roles y permisos de IAM disponibles para Data Catalog. Por ejemplo, si tienes acceso de lectura de metadatos de BigQuery a un objeto, ese objeto aparecerá en los resultados de la búsqueda de Data Catalog.

En la siguiente lista, se describen los permisos mínimos necesarios para realizar la búsqueda:

  • Para buscar una tabla, necesitas el permiso bigquery.tables.get para esa tabla.

  • Para buscar un conjunto de datos, necesitas el permiso bigquery.datasets.get para ese conjunto de datos.

  • Para buscar metadatos de un conjunto de datos o una tabla, necesitas el rol de IAM roles/bigquery.metadataViewer.

  • Para buscar todos los recursos de un proyecto o una organización, necesitas el permiso datacatalog.catalogs.searchAll. Funciona para todos los recursos independientemente del sistema de origen.

Si tienes acceso a una tabla de BigQuery, pero no al conjunto de datos que contiene esa tabla, la tabla seguirá apareciendo como se espera en la búsqueda de Data Catalog. La misma lógica de acceso se aplica a todos los sistemas compatibles, como Pub/Sub y Data Catalog.

Las consultas de búsqueda de Data Catalog no garantizan la recuperación completa. Es posible que no se muestren resultados que coincidan con tu búsqueda, incluso en páginas de resultados posteriores. Además, si repites las búsquedas, los resultados que se muestran (y no se muestran) pueden variar.

Si tienes problemas de recuperación y no tienes que recuperar los resultados en ningún orden específico, considera establecer el parámetro orderBy en default cuando llames al método catalog.search.

Usa la marca admin_search

El uso de la marca admin_search en la solicitud de búsqueda garantiza la recuperación completa. La búsqueda de administrador requiere que se configure el permiso datacatalog.catalogs.searchAll en todos los proyectos y organizaciones del alcance de la búsqueda. Cuando se usa admin_search, solo se permite default orderBy.

Tablas fragmentadas por fecha

Data Catalog agrega tablas fragmentadas por fecha en una entrada lógica única. Esta entrada tiene el mismo esquema que la fragmentación de la tabla con la fecha más reciente y contiene información agregada sobre la cantidad total de fragmentos. La entrada deriva su nivel de acceso al conjunto de datos al que pertenece. La búsqueda de Data Catalog solo muestra estas entradas lógicas si el usuario tiene acceso al conjunto de datos que las contiene. Las tablas compartidas por fecha individuales no son visibles en la búsqueda de Data Catalog, incluso si están presentes en Data Catalog y se pueden etiquetar.

Filtros

Los filtros te permiten acotar los resultados de la búsqueda. Todos los filtros se agrupan en secciones:

  • Alcance para limitar la búsqueda solo a los elementos destacados.
  • Sistemas, como BigQuery, Pub/Sub, Dataplex, Dataproc Metastore, sistemas personalizados, Vertex AI y el propio Data Catalog El sistema de Data Catalog contiene conjuntos de archivos y entradas personalizadas.
  • Los lakes y las zonas provienen de Dataplex.
  • Tipos de datos, como flujos de datos, conjuntos de datos, lakes, zonas, conjuntos de archivos, modelos, tablas, vistas, servicios, bases de datos y tipos personalizados.
  • En Projects, se muestran todos los proyectos disponibles para ti.
  • En Etiquetas, se muestran todas las plantillas de etiquetas (y sus campos individuales) disponibles para ti.
  • Los conjuntos de datos provienen de BigQuery y Vertex AI.
  • Los conjuntos de datos públicos son datos de BigQuery disponibles para el público.

Puedes combinar filtros de varias secciones para encontrar activos que coincidan con al menos una condición de cada sección seleccionada. Los varios filtros seleccionados dentro de una sola sección se evalúan con el operador lógico OR. Por ejemplo, considera la siguiente combinación de filtros:

Ejemplo que muestra cómo se pueden combinar los filtros de varias secciones.
Panel del filtro de valor de etiqueta con varias secciones seleccionadas.

Data Catalog busca lo siguiente:

  • Conjuntos de datos de BigQuery etiquetados con la plantilla MyTemplate1

  • Conjuntos de datos de BigQuery etiquetados con la plantilla MyTemplate2

  • Tablas de BigQuery etiquetadas con la plantilla MyTemplate1

  • Tablas de BigQuery etiquetadas con la plantilla MyTemplate2

Cómo filtrar por valor de la etiqueta

Los filtros de Etiquetas te permiten consultar recursos etiquetados con una plantilla específica. Puedes usar el menú Personalizar para definir mejor los resultados y filtrar por valores de etiquetas específicos. Las condiciones del filtro de valor de etiqueta dependen del tipo de datos de ese campo de etiqueta. Por ejemplo, para los campos de fecha y hora, puedes especificar una fecha específica o un rango.

Visibilidad de los filtros

Los filtros que se muestran en cada sección dependen de la consulta actual en el cuadro Búsqueda. Es posible que todo el conjunto de resultados de la búsqueda incluya entradas que coincidan con la consulta actual, pero es posible que los filtros que correspondan a esas entradas no se muestren en el panel Filtros.

Buscar recursos de datos

Console

Console

  1. En la consola de Google Cloud, ve a la página Búsqueda de Dataplex.

    Ir a Búsqueda de Dataplex

  2. En Elige una plataforma de búsqueda, selecciona Data Catalog como el modo de búsqueda.

  3. En el campo de búsqueda, ingresa tu consulta o usa el panel Filtros para definir mejor los parámetros de búsqueda.

    Puedes agregar manualmente los siguientes filtros:

    • En Projects, agrega un filtro de proyectos. Haz clic en Agregar proyecto, busca y selecciona un proyecto específico, y haz clic en Abrir.
    • En Etiquetas, agrega un filtro de plantilla de etiqueta. Haz clic en el menú Agregar más plantillas de etiquetas, busca y selecciona una plantilla específica, y haz clic en Aceptar.

    Para buscar recursos de datos disponibles de forma pública en Google Cloud, además de los recursos disponibles para ti, selecciona Incluir conjuntos de datos públicos.

Además, puedes hacer lo siguiente:

  • Para filtrar la búsqueda, agrega un keyword:value a los términos de búsqueda en el campo de búsqueda:

    Palabra claveDescripción
    name: Nombre del recurso de datos de coincidencia
    column: Nombre de columna de coincidencia o nombre de columna anidada
    description: Descripción de la tabla de coincidencias

  • Para realizar una búsqueda de etiquetas, agrega uno de los siguientes prefijos de palabra clave de la etiqueta a los términos de búsqueda en el campo de búsqueda:

    EtiquetaDescripción
    tag:project-name.tag_template_name Nombre de la etiqueta de coincidencia
    tag:project-name.tag_template_name.key Coincidir con una clave de etiqueta
    tag:project-name.tag_template_name.key:value Coincidir con el par de etiqueta key:string value

Sugerencias para las expresiones de búsqueda

  • Encierra tu expresión de búsqueda entre comillas (“search terms”) si contiene espacios.

  • Puedes preceder una palabra clave con "NO" (en MAYÚSCULAS obligatorias) para coincidir con la negación lógica del filtro keyword:term. También puedes usar los operadores booleanos “AND” y “OR” (en MAYÚSCULAS obligatorias) para combinar las expresiones de búsqueda.

    Por ejemplo, NOT column:term muestra todas las columnas excepto aquellas que coinciden con el término especificado. Para obtener una lista de palabras clave y otros términos que puedes usar en una expresión de búsqueda de Data Catalog, consulta Sintaxis de búsqueda de Data Catalog.

Ejemplo de búsqueda

Considera un ejemplo en el que deseas buscar la tabla trips que configuraste en Etiqueta una tabla de BigQuery con Data Catalog:

  1. En el campo de búsqueda, ingresa trips y haz clic en Buscar.
  2. En el panel Filtros, selecciona lo siguiente:

    • En la sección Sistemas, selecciona BigQuery para excluir los recursos de datos con el mismo nombre que pertenecen a otros sistemas.
    • En la sección Projects, selecciona el ID de tu proyecto para excluir los recursos de datos de otros proyectos. Si no se muestra tu proyecto, haz clic en Agregar proyecto y selecciónalo.
    • En la sección Etiquetas, selecciona Plantilla de etiqueta de demostración para verificar si una etiqueta que usa esta plantilla está adjunta a la tabla trips. Si no se muestra esta plantilla, haz clic en Agregar más plantillas de etiquetas, busca y selecciona la plantilla de etiquetas, y haz clic en Aceptar.

Con todos los filtros seleccionados, los resultados de la búsqueda contienen solo una entrada: la tabla trips de BigQuery en tu proyecto con una etiqueta adjunta que usa la plantilla Demo Tag Template.

Java

Antes de probar esta muestra, sigue las instrucciones de configuración para Java que se encuentran en la Guía de inicio rápido de Data Catalog sobre el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Java de Data Catalog.

Para autenticarte en Data Catalog, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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 probar esta muestra, sigue las instrucciones de configuración para Node.js que se encuentran en la Guía de inicio rápido de Data Catalog sobre el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Node.js de Data Catalog.

Para autenticarte en Data Catalog, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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 probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la Guía de inicio rápido de Data Catalog sobre el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Python de Data Catalog.

Para autenticarte en Data Catalog, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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)

LÍNEA DE REST Y CMD

REST

Si no tienes acceso a las bibliotecas cliente de Cloud en tu idioma o quieres probar la API con solicitudes de REST, consulta los siguientes ejemplos y la documentación de la API de REST de Data Catalog.

1. Buscar en el catálogo

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • organization-id: ID de la organización de GCP
  • project-id: ID del proyecto de GCP

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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 detalles de la tabla

Usa Data Catalog para ver los detalles de la tabla.

  1. En la consola de Google Cloud, ve a la página Búsqueda de Dataplex.

    Ir a la búsqueda de Data Catalog

  2. En Elige una plataforma de búsqueda, selecciona Data Catalog como el modo de búsqueda.

  3. En el cuadro de búsqueda, ingresa el nombre de un conjunto de datos que tenga una tabla.

    Por ejemplo, si completaste la guía de inicio rápido para etiquetar una tabla de BigQuery con Data Catalog, puedes buscar demo-dataset y seleccionar la tabla trips.

  4. Haz clic en la tabla.

    Se abrirá la página de detalles de la tabla de BigQuery.

Los detalles de la tabla incluyen las siguientes secciones:

  • Detalles de la tabla de BigQuery. Incluye información como la hora de creación, la hora de la última modificación, la hora de vencimiento, las URLs de los recursos y las etiquetas.

  • Etiquetas. Muestra una lista de las etiquetas aplicadas.Puedes editar las etiquetas desde esta página y ver la plantilla de etiquetas. Haz clic en el ícono Acciones.

  • Esquema y etiquetas de columnas. Muestra el esquema aplicado y sus valores.

Destaca tus entradas favoritas y búscalas

Si exploras con frecuencia los mismos recursos de datos, puedes marcarlos con estrellas para incluir sus entradas en una lista personalizada.

  1. En la consola de Google Cloud, ve a la página Búsqueda de Dataplex.

    Ir a la búsqueda de Data Catalog

  2. En Elige una plataforma de búsqueda, selecciona Data Catalog como el modo de búsqueda.

  3. Busca tu activo y, luego, marca su entrada de una de las siguientes maneras:

    • Haz clic en junto a la entrada en los resultados de la búsqueda.
    • Haz clic en el nombre de la entrada para abrir su página de detalles y haz clic en la STAR en la barra de acciones en la parte superior.

Puedes destacar hasta 200 entradas.

Las entradas destacadas aparecen en la lista Entradas destacadas de la página de búsqueda antes de que ingreses una búsqueda en la barra de búsqueda. Solo tú puedes ver esta lista.

Para buscar solo entradas favoritas, en el panel Filtros, en la sección Alcance, selecciona Favoritas.

También puedes usar los métodos correspondientes de la API de Data Catalog para marcar y desmarcar entradas. Cuando busques recursos, usa el parámetro starredOnly en el objeto scope. Para obtener más información, consulta el método catalog.search.

¿Qué sigue?