Rechercher et afficher des éléments de données avec Data Catalog

Ce document explique comment utiliser Data Catalog pour rechercher des éléments de données.

Vous pouvez rechercher les éléments de données suivants :

  • Ensembles de données associés à Analytics Hub
  • Ensembles de données, tables, vues et modèles BigQuery
  • Instances, clusters et tables Bigtable (y compris les détails des familles de colonnes)
  • Modèles de tag, groupes d'entrées et groupes d'entrées Data Catalog entrées personnalisées
  • Lacs, zones, tables et fichiers Dataplex
  • Services, bases de données et tables Dataproc Metastore
  • Flux de données Pub/Sub
  • Les instances, bases de données, tables et tables Spanner et vues
  • Modèles, ensembles de données et ressources Vertex AI Feature Store
  • Les éléments présents dans les silos de données d'entreprise Data Catalog

Portée de la recherche

Les résultats de recherche peuvent varier en fonction de vos autorisations. La portée des résultats de recherche Data Catalog dépend de votre rôle.

Vous pouvez examiner les différents types Rôle et autorisations IAM disponibles pour Data Catalog.

Par exemple, si vous disposez d'un accès en lecture aux métadonnées BigQuery s'affiche dans vos résultats de recherche Data Catalog résultats. La liste suivante décrit les autorisations minimales requises :

  • Pour rechercher une table, vous devez disposer de l'autorisation bigquery.tables.get pour ce tableau.

  • Pour rechercher un ensemble de données, vous devez disposer de l'autorisation bigquery.datasets.get pour cet ensemble de données.

  • Pour rechercher des métadonnées pour un ensemble de données ou une table, vous devez disposer du rôle roles/bigquery.metadataViewer.

  • Pour rechercher toutes les ressources d'un projet ou d'une organisation, vous devez disposer de l'autorisation datacatalog.catalogs.searchAll. Elle fonctionne pour toutes les ressources, indépendamment du système source.

Si vous avez accès à une table BigQuery, mais pas à l'ensemble de données contenant cette table, celle-ci apparaîtra toujours comme prévu dans la recherche de Data Catalog. La même logique d'accès s'applique à tous les systèmes compatibles, tels que Pub/Sub et Data Catalog.

Les requêtes de recherche Data Catalog ne garantissent pas un rappel complet. Les résultats correspondant à votre requête peuvent ne pas être renvoyés, même sur les pages de résultats suivantes. En outre, les résultats renvoyés (et non renvoyés) peuvent varier si vous répétez des requêtes de recherche.

Si vous rencontrez des problèmes de rappel et que vous n'avez pas besoin d'extraire dans un ordre spécifique, envisagez de définir le paramètre orderBy sur default lors de l'appel de la méthode catalog.search.

Utilisez l'option admin_search.

L'utilisation de l'indicateur admin_search dans la requête de recherche garantit un rappel complet. La recherche administrateur nécessite que l'autorisation datacatalog.catalogs.searchAll soit définie sur tous les projets et organisations du champ de recherche. Lorsque vous utilisez admin_search, seul default orderBy est autorisé.

Tables segmentées par date

Data Catalog agrège les tables segmentées par date en une seule entrée logique. Cette entrée possède le même schéma que le segment de table avec la date la plus récente, et contient des informations agrégées sur le nombre total de segments. L'entrée dérive son niveau d'accès de l'ensemble de données auquel il appartient. La recherche Data Catalog n'affiche ces entrées logiques que si l'utilisateur a accès à l'ensemble de données qui les contient. Les tables segmentées par date individuelles ne sont pas visibles dans la recherche Data Catalog, même si elles sont présentes dans Data Catalog et qu'un tag peut leur être ajouté.

Filtres

Les filtres vous permettent d'affiner les résultats de recherche. Tous les filtres sont regroupés en sections :

  • Champ d'application pour limiter la recherche aux éléments favoris uniquement
  • Les systèmes tels que BigQuery, Pub/Sub, Dataplex, Dataproc Metastore, les systèmes personnalisés, Vertex AI et Data Catalog lui-même. Le système Data Catalog contient des ensembles de fichiers et des entrées personnalisées.
  • Les lacs et zones proviennent de Dataplex.
  • Types de données : flux de données, ensembles de données, lacs, zones, ensembles de fichiers, modèles, tables, vues, services, bases de données et types personnalisés
  • L'onglet Projets répertorie tous les projets disponibles.
  • La section Tags répertorie tous les modèles de balise (et leurs champs individuels) disponibles.
  • Les ensembles de données proviennent de BigQuery et de Vertex AI.
  • Les ensembles de données publics sont des données publiques de BigQuery.

Vous pouvez combiner les filtres de plusieurs sections pour trouver des assets qui correspondent au minimum une condition pour chaque section sélectionnée. Les filtres sélectionnés dans une même section sont évalués à l'aide de l'opérateur logique "OU". Par exemple, pour la combinaison de filtres suivante :

Panneau du filtre des valeurs de tag avec plusieurs sections sélectionnées.

Data Catalog recherche:

  • Ensembles de données BigQuery tagués avec le modèle MyTemplate1.

  • Ensembles de données BigQuery tagués avec le modèle MyTemplate2.

  • Tables BigQuery taguées avec le modèle MyTemplate1.

  • Tables BigQuery taguées avec le modèle MyTemplate2.

Filtrer par valeur de tag

Les filtres Tags vous permettent de rechercher des éléments tagués à l'aide d'un modèle spécifique. Vous pouvez utiliser le menu Personnaliser pour affiner davantage les résultats et filtrer selon des valeurs de tag spécifiques. Les conditions de filtre des valeurs de tag dépendent du type de données de ce champ de tag. Par exemple, pour les champs de date et d'heure (date et heure) et de nombre, vous pouvez spécifier une date ou une plage spécifique.

Visibilité des filtres

Les filtres affichés dans chaque section dépendent de la requête actuellement saisie dans le champ de recherche. L'ensemble des résultats de recherche peut inclure des entrées qui correspondent à la requête actuelle, mais il est possible que les filtres qui y correspondent s'affichent dans le panneau Filtres.

Rechercher des éléments de données

Console

Console

  1. Pour lancer une requête de recherche Dataplex dans la console Google Cloud, accédez à la page Recherche Dataplex.

    Accéder à page de "Recherche" de Dataplex

  2. Pour Choisir une plate-forme de recherche, sélectionnez Data Catalog comme mode de recherche.

  3. Dans le champ de recherche, saisissez votre requête ou utilisez le panneau Filtres pour affiner les paramètres de recherche.

Vous pouvez ajouter manuellement les filtres suivants :

  • Pour ajouter un filtre de projet, dans Projets, cliquez sur le bouton AJOUTER UN PROJET, recherchez un projet spécifique, sélectionnez-le, puis cliquez sur OUVRIR.
  • Pour ajouter un filtre de modèle de tag, dans Tags, cliquez sur la liste déroulante Ajouter des modèles de tag, recherchez un modèle spécifique, sélectionnez-le, puis cliquez sur OK.

Vous pouvez en outre :

  • Cochez la case Inclure les ensembles de données publics pour rechercher des éléments de données disponibles publiquement dans Google Cloud en plus des éléments disponibles.

Exemple de recherche

Par exemple, pour rechercher la table trips que vous avez configurée dans Configurer les modèles de balise, les balises, les vues d'ensemble et les responsables des données:

  1. Saisissez trips dans le champ de recherche, puis cliquez sur Rechercher.
  2. Sélectionnez BigQuery dans la section Systèmes pour exclure les éléments de données portant le même nom et qui appartiennent à d'autres systèmes.
  3. Sélectionnez l'ID de votre projet dans la section Projets pour exclure les éléments de données d'autres projets. Si votre projet n'apparaît pas dans cette section, Cliquez sur AJOUTER UN PROJET et sélectionnez-le dans la boîte de dialogue.
  4. Sélectionnez Modèle de tag de démonstration dans la section Modèles de tag pour voir si un tag qui utilise ce modèle est associé à la table trips. Si ce modèle n'apparaît pas dans la section, cliquez sur la liste déroulante Ajouter des tags, recherchez-le et sélectionnez-le, puis cliquez sur OK.

Avec tous les filtres sélectionnés, les résultats de recherche ne contiennent qu'un seul filtre entrée : la table BigQuery trips de votre projet avec une balise associée qui utilise Demo Tag Template.

Vous pouvez également effectuer les opérations suivantes :

  1. Filtrez votre recherche en ajoutant un(e) keyword:value à vos termes de recherche dans le champ de recherche:

    Mot cléDescription
    name: Correspond au nom de l'élément de données
    column: Correspond au nom de la colonne ou de la colonne imbriquée
    description: Correspond à la description du tableau

  2. Effectuez une recherche par tag en ajoutant l'une des balises suivantes préfixes de mot clé à vos termes de recherche dans le champ de recherche:

    TagDescription
    tag:project-name.tag_template_name Correspond au nom du tag
    tag:project-name.tag_template_name.key Correspond à la clé du tag
    tag:project-name.tag_template_name.key:value Correspond à la paire key:string value du tag

Conseils sur les expressions de recherche

  • Placez votre expression de recherche entre guillemets ("search terms") si elle contient des espaces.

  • Vous pouvez faire précéder un mot clé de la chaîne "NOT". (en majuscules) pour correspondre aux valeurs négation du filtre keyword:term. Vous pouvez également utiliser les opérateurs booléens "AND" et "OR" (obligatoirement en MAJUSCULES) pour combiner des expressions de recherche.

    Par exemple : NOT column:term liste toutes les colonnes, sauf celles qui correspondent au terme spécifié. Pour obtenir une liste de mots clés et d'autres termes que vous pouvez utiliser dans une l'expression de recherche Data Catalog, consultez la page Syntaxe de recherche Data Catalog

Java

Avant d'essayer cet exemple, suivez les instructions de configuration de Java dans le Démarrage rapide de Data Catalog avec bibliothèques clientes. Pour en savoir plus, consultez les API Java Data Catalog documentation de référence.

Pour vous authentifier auprès de Data Catalog, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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

Avant d'essayer cet exemple, suivez les instructions de configuration de Node.js dans le Démarrage rapide de Data Catalog avec bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Catalog Node.js.

Pour vous authentifier auprès de Data Catalog, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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

Avant d'essayer cet exemple, suivez les instructions de configuration de Python dans le Démarrage rapide de Data Catalog avec bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Catalog Python.

Pour vous authentifier auprès de Data Catalog, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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)

API REST et ligne de commande

REST

Si vous n'avez pas accès aux bibliothèques clientes cloud pour votre langage ou si vous souhaitez tester l'API à l'aide de requêtes REST, consultez les exemples suivants et la documentation API REST de Data Catalog.

1. Rechercher dans le catalogue

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • organization-id: ID de l'organisation GCP
  • project-id : ID du projet GCP

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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"
    }
  ]
}

Afficher les détails de la table

Dans Cloud Console, vous pouvez utiliser Data Catalog pour afficher les détails des tables.

  1. Accédez à la page de recherche de Dataplex.

    Accéder à Data Catalog

  2. Pour Choisir une plate-forme de recherche, sélectionnez Data Catalog comme mode de recherche.

  3. Dans le champ de recherche, saisissez le nom d'un ensemble de données contenant une table.

    Par exemple, si vous avez terminé le guide de démarrage rapide, vous pouvez rechercher demo-dataset et sélectionner la table trips.

  4. Cliquez sur le tableau.

    La page Détails de la table BigQuery s'ouvre.

Les détails du tableau incluent les sections suivantes :

  • Détails de la table BigQuery. Inclut des informations telles que l'heure de création, l'heure de la dernière modification, l'heure d'expiration, les URL de ressources, les étiquettes, etc.

  • Tags : Répertorie les balises appliquées. Vous pouvez modifier les balises à partir de cette page et afficher le modèle de balise. Cliquez sur l'icône Actions.

  • Tags de colonne et de schéma Liste le schéma appliqué et ses valeurs.

Ajoutez vos entrées préférées à vos favoris et recherchez-les

Si vous parcourez fréquemment les mêmes éléments de données, vous pouvez inclure leurs entrées dans une liste personnalisée en leur attribuant des étoiles. Pour ce faire dans l'UI Dataplex:

  1. Accédez à la page de recherche de Dataplex.

    Accéder à Data Catalog

  2. Dans Choisir une plate-forme de recherche, sélectionnez Data Catalog comme mode de recherche.

  3. Recherchez votre élément, puis ajoutez une étoile à son entrée de deux manières :

    • Cliquez sur l'icône  à côté de l'entrée dans les résultats de recherche.
    • Cliquez sur le nom de l'entrée pour ouvrir sa page d'informations, puis sur l'icône Bouton STAR sur la barre d'action en haut.

Vous pouvez ajouter jusqu'à 200 entrées à vos favoris.

Les entrées suivies apparaissent dans la liste Entrées favorites de la page de recherche avant vous saisissez une requête de recherche dans la barre de recherche. Cette liste n'est visible que par vous.

Pour rechercher uniquement les entrées avec une étoile, sélectionnez l'option Portée > Étoile dans le panneau Filtres.

Vous pouvez également utiliser les méthodes correspondantes l'API Data Catalog pour ajouter supprimer des entrées des favoris. Lorsque vous recherchez des composants, utilisez le paramètre starredOnly dans l'objet scope. Consultez la méthode catalog.search.