Syntaxe de recherche dans Data Catalog

Ce document décrit la syntaxe des requêtes de recherche dans Data Catalog. Avant de lire ce document, il est important que vous compreniez les concepts de Data Catalog, tels que la saisie de données, les balises et les modèles de tags, et d'autres types de métadonnées. Consultez la page Qu'est-ce que Data Catalog ?

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

Accéder à page de "Recherche" de Dataplex

Dans sa forme la plus simple, une requête de recherche Data Catalog comprend un seul prédicat. Ce prédicat peut correspondre à plusieurs métadonnées :

  • Sous-chaîne d'un nom, nom à afficher ou description d'un élément de données
  • Type exact d'un élément de données
  • Sous-chaîne d'un nom de colonne (ou de colonne imbriquée) dans le schéma d'un élément de données
  • Sous-chaîne d'un ID de projet
  • Valeur d'un tag public, nom d'un modèle de tag public ou nom de champ d'un modèle de tag public associé à une entrée de données.
  • (Aperçu) Chaîne d'adresse e-mail ou le nom d'un responsable des données
  • (Preview) Chaîne issue d'une description de présentation

La recherche simple n'est pas compatible avec les champs de modèle de tag de type datetime.

Par exemple, le prédicat foo correspond aux entités suivantes :

  • Élément de données avec le nom foo.bar
  • Élément de données avec le nom à afficher Foo Bar
  • Élément de données avec la description This is the foo script.
  • Élément de données avec le type foo exact
  • Colonne foo_bar dans le schéma d'un élément de données
  • Colonne imbriquée foo_bar dans le schéma d'un élément de données
  • Projet prod-foo-bar
  • Modèle de tag public nommé foo, entrées de données marquées avec le modèle de balise foo, nom à afficher du modèle de tag foo, nom du champ du modèle de tag foo et valeur du champ de tag foo dans une chaîne, une énumération ou du texte enrichi.
  • (Aperçu) Élément de données avec un responsable des données appelé foo.
  • (Aperçu) Élément de données avec un aperçu contenant le mot foo.

Pour en savoir plus sur les rôles et les autorisations permettant d'afficher les tags publics et privés, consultez la section Rôles pour l'affichage des tags publics et privés.

Prédicats qualifiés

Vous pouvez qualifier un prédicat en le préfixant avec une clé qui limite la correspondance à une métadonnée spécifique.

Le signe égal (=) limite la recherche à une correspondance exacte.

Le signe deux-points (:) après la clé met en correspondance le prédicat avec une sous-chaîne ou un jeton dans la valeur figurant dans les résultats de recherche.

La tokenisation divise le flux de texte en une série de jetons, chaque jeton correspondant généralement à un seul mot.

Exemple :

  • name:foo sélectionne les entités dont le nom contient la sous-chaîne foo : foo1 et barfoo.
  • description:foo sélectionne les entités ayant le jeton foo dans la description : bar and foo.
  • location=foo correspond à tous les éléments de données d'un emplacement spécifié avec foo comme nom d'emplacement.

Data Catalog accepte les qualificatifs suivants :

Qualificatif Description
name:x Renvoie x en tant que sous-chaîne de l'ID de l'élément de données.
displayname:x Renvoie x en tant que sous-chaîne du nom d'affichage de l'élément de données.
column:x Correspond à x en tant que sous-chaîne du nom de colonne (ou du nom de colonne imbriquée) dans le schéma de l'élément de données.
Vous pouvez rechercher une colonne imbriquée en fonction de son chemin d'accès à l'aide de l'opérateur logique AND.
Par exemple, column:(foo bar) correspond à une colonne imbriquée dont le chemin d'accès est foo.bar.
description:x Renvoie x en tant que jeton dans la description de l'élément de données.
label:bar Renvoie les éléments de données BigQuery comportant une étiquette (avec une certaine valeur) et dont la clé d'étiquette est bar en tant que sous-chaîne.
label=bar Fait correspondre les éléments de données BigQuery ayant un libellé (avec une certaine valeur) et la clé de libellé est égale à bar en tant que chaîne.
label:bar:x Correspond à x en tant que sous-chaîne dans la valeur d'un libellé avec la clé bar associée à un élément de données BigQuery.
label=foo:bar Correspond aux éléments de données BigQuery où la clé est égale à foo et la valeur de la clé à bar.
label.foo=bar Correspond aux éléments de données BigQuery où la clé est égale à foo et la valeur de la clé à bar.
label.foo Correspond aux éléments de données BigQuery ayant une étiquette dont la clé est égale à foo en tant que chaîne.
type=<type> Renvoie les éléments de données d'un type ou sous-type d'objet spécifique. Les sous-types peuvent être ajoutés au format <type>.<sub-type>.
Les types et sous-types incluent :
  • type=table renvoie toutes les tables.
  • type=dataset correspond à tous les ensembles de données.
  • type=table.view ou type=view font correspondre toutes les vues.
  • type=lake correspond à tous les lacs.
  • type=zone correspond à toutes les zones.
  • type=tag_template renvoie tous les modèles de tag.
  • type=entry_group renvoie tous les groupes d'entrées.
  • type=data_stream renvoie tous les sujets Pub/Sub.
  • (Aperçu) type=dataset.linked correspond à tous les ensembles de données associés à Analytics Hub.
projectid:bar Renvoie les éléments de données dans les projets cloud qui correspondent à bar en tant que sous-chaîne dans l'ID.
parent:x Correspond à x en tant que sous-chaîne du chemin d'accès hiérarchique d'un élément de données BigQuery. Le chemin d'accès est au format <project_id>.<dataset_name>.
Par exemple, parent:foo.bar correspond à toutes les tables et vues d'un ensemble de données avec le chemin d'accès project-foo.bar-dataset.
orgid=number Fait correspondre les éléments de données d'une organisation Cloud avec la valeur d'ID exacte number.
system=<system> Renvoie tous les éléments de données d'un système spécifié.
Les systèmes incluent :
  • system=bigquery renvoie tous les éléments de données de BigQuery.
  • system=cloud_bigtable correspond à tous les éléments de données de Bigtable.
  • system=cloud_pubsub renvoie tous les éléments de données de Pub/Sub.
  • system=cloud_spanner correspond à tous les éléments de données de Spanner.
  • system=dataproc_metastore renvoie tous les éléments de données de Dataproc Metastore.
  • system=data_catalog renvoie tous les éléments de données créés dans Data Catalog.
  • system=dataplex correspond à tous les éléments de données créés dans Dataplex.
location=<location> Fait correspondre tous les éléments de données d'un emplacement spécifié avec un nom exact. Par exemple, location=us-central1 correspond à tous les éléments hébergés dans l'Iowa.
Pour obtenir la liste complète des emplacements acceptés, consultez la page Régions de Data Catalog.
cluster_location=<location> Correspond à tous les éléments de données Bigtable d'un emplacement spécifié sous un nom exact.
Par exemple, cluster_location=us-central1 correspond à tous les éléments hébergés dans l'Iowa.
Pour obtenir la liste complète des emplacements acceptés, consultez Régions Bigtable.
tag:x Correspond aux éléments de données où x correspond à n'importe quelle sous-chaîne de <tag_template_project_id>.<tag_template_id>.<tag_field_id> d'un tag privé ou public.
Exemples:
  • tag:data_owner renvoie les éléments de données associés au tag data_owner.
  • tag:data_gov_template renvoie les éléments de données auxquels des tags ont été ajoutés à l'aide du modèle de tag data_gov_template.
  • tag:mycloudproject.data_gov_template renvoie les éléments de données auxquels des tags ont été ajoutés à l'aide du modèle data_gov_template dans le projet mycloudproject.
tag:key<operator>val Tout d'abord, fait correspondre key à n'importe quelle sous-chaîne de l'ID de champ de tag, de l'ID de modèle de tag ou de l'ID de projet Google Cloud d'un modèle de tag. Ensuite, fait correspondre val à la valeur de tag de key en fonction du type du champ de tag.
Les ensembles <operator> dépendant du type autorisés pour les valeurs de tag sont les suivants :
  • string/richtext: ":"
    Remarque: Dans cette recherche de chaîne, les deux-points indiquent une correspondance exacte de jeton, et non une sous-chaîne.
  • boolean (booléen) et boolean (énuméré) : "="
  • double : "=", "<", ">", "<=", ">="
  • timestamp : ":", "=", "<", ">", "<=", ">="
Exemples :
  • string : tag:data_owner:@mail.com renvoie les éléments de données qui ont des valeurs @mail.com.
  • boolean : tag:data_gov_template.hasPII=true renvoie les tags booléens hasPII dans le modèle data_gov_template qui sont définis sur true.
  • enum : tag:certification_level_1=HIGHEST.
  • double : tag:datascore=9 renvoie les éléments de données avec des doubles tags datascore associés à la valeur 9.
  • timestamp : tag:expiredDate:2019-01-01 renvoie les éléments de données associés au tag expiredDate défini sur 2019-01-01.
  • timestamp : tag:expiredDate<2019-02 renvoie les éléments de données associés à un tag expiredDate antérieur à 2019-02-01T00:00:00.
createtime Recherche les éléments de données qui ont été créés pendant, avant ou après une date ou une heure donnée.
Exemples :
  • createtime:2019-01-01 renvoie les éléments de données créés le 2019-01-01.
  • createtime<2019-02 renvoie les éléments de données créés avant le 2019-02-01T00:00:00.
  • createtime>2019-02 renvoie les éléments de données créés après le 2019-02-01T00:00:00.
updatetime Recherche les éléments de données qui ont été mis à jour pendant, avant ou après une date ou une heure donnée.
Exemples :
  • updatetime:2019-01-01 renvoie les éléments de données mis à jour le 2019-01-01.
  • updatetime<2019-02 renvoie les éléments de données mis à jour avant le 2019-02-01T00:00:00.
  • updatetime>2019-02 renvoie les éléments de données mis à jour après le 2019-02-01T00:00:00.
policytag:x Renvoie x en tant que sous-chaîne du nom à afficher du tag avec stratégie. Recherche tous les éléments en utilisant le tag avec stratégie correspondant ou ses descendants.
policytagid=x Correspond à x en tant qu'ID de tag avec stratégie ou classification. Recherche tous les éléments en utilisant le tag avec stratégie correspondant ou ses descendants.
term:x Fait correspondre les éléments de données associés à un terme du glossaire d'entreprise où une sous-chaîne de nom, de description ou de responsable des données correspond à x.
fully_qualified_name:x Correspond à x en tant que sous-chaîne de fully_qualified_name.
fully_qualified_name=x Correspond à x en tant que fully_qualified_name.

Opérateurs logiques

Une requête peut être composée de plusieurs prédicats avec des opérateurs logiques. Si vous ne spécifiez pas d'opérateur, l'opérateur logique AND est implicite. Par exemple, foo bar renvoie les entités qui correspondent à la fois au prédicat foo et au prédicat bar.

Les opérateurs logique AND et OR logique sont acceptés (par exemple, foo OR bar).

Vous pouvez annuler un prédicat avec un préfixe - ou NOT. Par exemple, -name:foo renvoie toutes les entités dont les noms ne correspondent pas au prédicat foo.

Syntaxe abrégée

Une syntaxe de recherche abrégée est également disponible, utilisant | pour les opérateurs OR et , pour les opérateurs AND.

Par exemple, pour rechercher des entrées dans l'un des nombreux projets à l'aide de l'opérateur OR, vous pouvez exécuter la commande suivante:

projectid:(pid1|pid2|pid3|pid4)

À la place de :

projectid:pid1 OR projectid:pid2 OR projectid:pid3 OR projectid:pid4

Pour rechercher des entrées avec des noms de colonne correspondants :

  • ET : column:(name1, name2, name3)
  • OU : column:(name1|name2|name3)

Cette syntaxe abrégée fonctionne pour les prédicats qualifiés répertoriés précédemment, à l'exception de tag, term, policytag, policytagid et label.