Rechercher 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 tags, groupes d'entrées et entrées personnalisées Data Catalog
  • Lacs, zones, tables et fichiers Dataplex
  • Services, bases de données et tables Dataproc Metastore
  • Flux de données Pub/Sub
  • Instances, bases de données, tables et vues Spanner
  • Modèles, ensembles de données et ressources Vertex AI Feature Store
  • Éléments de silos de données d'entreprise connectés à 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 consulter les différents types de rôles et d'autorisations IAM disponibles pour Data Catalog. Par exemple, si vous disposez d'un accès en lecture aux métadonnées BigQuery pour un objet, cet objet s'affiche dans les résultats de recherche de Data Catalog.

La liste suivante décrit les autorisations minimales requises pour effectuer une recherche:

  • Pour rechercher une table, vous devez disposer de l'autorisation bigquery.tables.get pour celle-ci.

  • 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 IAM roles/bigquery.metadataViewer.

  • Pour rechercher toutes les ressources d'un projet ou d'une organisation, vous devez disposer de l'autorisation datacatalog.catalogs.searchAll. Il 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 de 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, si vous répétez des requêtes de recherche, les résultats renvoyés (et non renvoyés) peuvent varier.

Si vous rencontrez des problèmes de rappel et que vous n'avez pas besoin d'extraire les résultats dans un ordre spécifique, envisagez de définir le paramètre orderBy sur default lorsque vous appelez 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 : permet de 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.
  • Les types de données, tels que les flux de données, les ensembles de données, les lacs, les zones, les ensembles de fichiers, les modèles, les tables, les vues, les services, les bases de données et les 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 BigQuery accessibles au public.

Vous pouvez combiner les filtres de plusieurs sections pour trouver les éléments qui correspondent à au moins une condition de 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 OR. Prenons l'exemple de la combinaison de filtres suivante:

Exemple montrant comment combiner les filtres de plusieurs sections.
Volet de filtre de valeur de balise avec plusieurs sections sélectionnées.

Data Catalog recherche les éléments suivants:

  • 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 d'interroger les é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 par valeurs de balise spécifiques. Les conditions de filtrage de la valeur de balise dépendent du type de données de ce champ de balise. Par exemple, pour les champs de date et d'heure, vous pouvez spécifier une date spécifique ou une plage.

Visibilité des filtres

Les filtres affichés dans chaque section dépendent de la requête actuelle dans la zone de recherche Rechercher. L'ensemble des résultats de recherche peut inclure des entrées correspondant à la requête en cours, mais les filtres correspondant à ces entrées peuvent ne pas s'afficher dans le panneau Filtres.

Rechercher des éléments de données

Console

Console

  1. Dans la console Google Cloud, accédez à la page Recherche de 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 volet Filtres pour affiner les paramètres de recherche.

    Vous pouvez ajouter manuellement les filtres suivants :

    • Dans Projets, ajoutez un filtre de projets. Cliquez sur Ajouter un projet, recherchez et sélectionnez un projet spécifique, puis cliquez sur Ouvrir.
    • Dans Tags (Tags), ajoutez un filtre de modèle de tag. Cliquez sur le menu Ajouter des modèles de tag, recherchez et sélectionnez un modèle spécifique, puis cliquez sur OK.

    Pour rechercher des éléments de données disponibles publiquement dans Google Cloud en plus des éléments disponibles, sélectionnez Inclure les ensembles de données publics.

Vous pouvez également effectuer les opérations suivantes :

  • Filtrez la recherche en ajoutant keyword:value aux termes de votre 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

  • Effectuez une recherche par tag en ajoutant l'un des préfixes de mot clé de tag suivants à 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é par "NOT" (obligatoirement en MAJUSCULES) pour faire correspondre la négation logique 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 la liste des mots clés et autres termes à utiliser dans une expression de recherche de Data Catalog, consultez la section Syntaxe de recherche dans Data Catalog.

Exemple de recherche

Imaginons que vous souhaitiez rechercher la table trips que vous avez configurée dans Taguer une table BigQuery à l'aide de Data Catalog:

  1. Dans le champ de recherche, saisissez trips, puis cliquez sur Rechercher.
  2. Dans le volet Filtres, sélectionnez les éléments suivants:

    • Dans la section Systèmes, sélectionnez BigQuery pour exclure les éléments de données portant le même nom et qui appartiennent à d'autres systèmes.
    • Dans la section Projects (Projets), sélectionnez l'ID de votre projet pour exclure les éléments de données d'autres projets. Si votre projet ne s'affiche pas, cliquez sur Ajouter un projet et sélectionnez-le.
    • Dans la section Tags, sélectionnez Modèle de tag de démonstration pour vérifier si un tag utilisant ce modèle est associé à la table trips. Si ce modèle n'apparaît pas, cliquez sur Ajouter des modèles de tag, recherchez et sélectionnez le modèle de tag, puis cliquez sur OK.

Une fois tous les filtres sélectionnés, les résultats de recherche ne contiennent qu'une seule entrée : la table trips BigQuery de votre projet avec un tag associé utilisant le modèle Demo Tag Template.

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de Data Catalog à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Java de Data Catalog.

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 pour Node.js du guide de démarrage rapide de Data Catalog à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Node.js de Data Catalog.

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 pour Python du guide de démarrage rapide de Data Catalog à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Python de Data Catalog.

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

Utilisez Data Catalog pour afficher les détails de la table.

  1. Dans la console Google Cloud, accédez à la page Recherche de Dataplex.

    Accéder à la recherche dans 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 suivi le guide de démarrage rapide Taguer une table BigQuery à l'aide de Data Catalog, vous pouvez rechercher demo-dataset et sélectionner la table trips.

  4. Cliquez sur le tableau.

    La page des 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 des ressources et les libellés.

  • Tags : Liste 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 Répertorie le schéma appliqué et ses valeurs.

Ajouter une étoile à vos entrées préférées et les rechercher

Si vous consultez fréquemment les mêmes composants de données, vous pouvez inclure leurs entrées dans une liste personnalisée en les marquant d'étoiles.

  1. Dans la console Google Cloud, accédez à la page Recherche de Dataplex.

    Accéder à la recherche dans Data Catalog

  2. Pour 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  à 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 STAR dans la barre d'action en haut de l'écran.

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

Les entrées avec un astérisque apparaissent dans la liste Entrées avec un astérisque sur la page de recherche avant que vous ne saisissiez une requête de recherche dans la barre de recherche. Cette liste n'est visible que par vous.

Pour rechercher uniquement des entrées suivies, dans le panneau Filtres, dans la section Champ d'application, sélectionnez Suivi.

Vous pouvez également utiliser les méthodes correspondantes de l'API Data Catalog pour ajouter et supprimer des étoiles aux entrées. Lorsque vous recherchez des composants, utilisez le paramètre starredOnly dans l'objet scope. Pour en savoir plus, consultez la méthode catalog.search.

Étape suivante