Les requêtes de recherche dans Knowledge Catalog vous permettent de trouver des éléments de données spécifiques dans votre catalogue à l'aide de la correspondance sémantique et de la correspondance des mots clés. En combinant le langage naturel, les filtres de métadonnées et les opérateurs logiques, vous pouvez localiser les entrées pertinentes pour découvrir, gérer et comprendre les données de votre organisation.
Knowledge Catalog est également compatible avec un mode de recherche par mots clés uniquement pour assurer la rétrocompatibilité. Pour en savoir plus sur ce mode, ses filtres et son utilisation, consultez Recherche par mots clés uniquement.
Présentation de la syntaxe des requêtes
Vous pouvez créer des requêtes de recherche Knowledge Catalog à l'aide des composants suivants :
- Recherche simple : recherchez des éléments de données à l'aide d'un seul terme de recherche.
- Recherche en texte libre : recherchez des éléments de données à l'aide d'expressions ou de mots clés en langage naturel.
- Prédicats qualifiés : affinez votre recherche à l'aide de champs de métadonnées spécifiques, tels que le nom, l'emplacement, le système ou le type.
- Recherche d'aspects : recherchez des entrées en fonction des métadonnées métier et techniques qui leur sont associées.
- Opérateurs logiques : combinez plusieurs critères de recherche à l'aide des opérateurs
AND,ORouNOTpour créer des requêtes complexes.
Prédicats qualifiés
Utilisez un prédicat qualifié pour affiner les résultats de recherche en demandant explicitement à la recherche d'évaluer un champ de métadonnées spécifique, tel qu'un nom, un type ou un système d'asset.
Vous pouvez qualifier un prédicat en le préfixant avec une clé qui limite la correspondance à une métadonnée spécifique :
- Un signe égal (
=) pour limiter la recherche à une correspondance exacte. - Un signe deux-points (
:) après la clé pour faire correspondre le prédicat à une sous-chaîne ou à un jeton dans la valeur des résultats de recherche.
La tokenisation divise le flux de texte en une série de jetons, chacun correspondant généralement à un seul mot.
Exemple :
name:foosélectionne les ressources dont le nom contient la sous-chaînefoo, par exemplefoo1etbarfoo.description:foosélectionne les ressources dont la description contient le jetonfoo, par exemplebaretfoo.location=foocorrespond aux ressources d'un emplacement spécifié avecfoocomme nom d'emplacement.
Qualificatifs acceptés
La recherche Knowledge Catalog est compatible avec les qualificatifs suivants :
| Qualificatif | Description |
|---|---|
name:x |
Correspond à x en tant que sous-chaîne de l'ID de ressource ou du nom à afficher de la ressource. |
displayname:x |
Correspond à x en tant que sous-chaîne du nom à afficher de la ressource. |
column:x |
Correspond à x en tant que sous-chaîne du nom de la colonne (ou du nom de la colonne imbriquée) dans le schéma de la ressource. |
description:x |
Correspond à x en tant que jeton dans la description de la ressource. Exemple :
|
labels:bar |
Correspond aux ressources qui ont un libellé (avec une certaine valeur) et dont la clé de libellé contient bar en tant que sous-chaîne. |
labels=bar |
Correspond aux ressources qui ont un libellé (avec une certaine valeur) et dont la clé de libellé est égale à bar sous forme de chaîne. |
labels.bar:x |
Correspond à x en tant que sous-chaîne dans la valeur d'une étiquette avec la clé bar associée à une ressource. |
labels.foo=bar |
Correspond aux ressources dont la clé est égale à foo et dont la valeur de clé est égale à bar. |
type=TYPE |
Correspond aux ressources d'un type d'entrée spécifique ou de son alias de type. Nécessite le qualificatif =. |
projectid:bar |
Correspond aux ressources des projets Google 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 hiérarchique d'une ressource. |
system=SYSTEM |
Correspond aux ressources d'un système spécifié. Nécessite le qualificatif =. |
location=LOCATION |
Correspond aux ressources d'un emplacement spécifié avec un nom exact. Nécessite le qualificatif Les éléments BigQuery Omni sont compatibles avec ce qualificatif en utilisant le nom de l'emplacement BigQuery Omni.
Par exemple, |
createtime |
Recherche les ressources créées à une date, un code temporel ou une heure relative en jours donnés, ou avant ou après ceux-ci. Pour connaître les formats et les opérateurs acceptés, consultez Filtres temporels. |
updatetime |
Recherche les ressources qui ont été mises à jour à une date, un code temporel ou une heure relative (en jours) donnés, ou avant ou après ceux-ci. Pour connaître les formats et les opérateurs acceptés, consultez Filtres temporels. |
Qualificatifs de correspondance exacte
Les clés de prédicat type, system, location et la recherche d'aspects (à l'exclusion de has) n'acceptent que le qualificatif de correspondance exacte (=), et non le qualificatif de sous-chaîne (:).
Utilisez la syntaxe de correspondance exacte suivante pour ces prédicats :
| Clé de prédicat | Syntaxe correcte | Syntaxe incorrecte |
|---|---|---|
type |
type=table (ou type=view, type=dataset) |
type:table ou type:tab |
system |
system=bigquery (ou system=spanner) |
system:bigquery ou system:big |
location |
location=us-central1 (ou location=europe-west1) |
location:us-central1 ou location:us |
Qualificatifs de sous-chaîne
Les prédicats tels que name, displayname, column, projectid et parent sont compatibles avec la correspondance de sous-chaîne avec le qualificatif deux-points (:) :
name:transactionscorrespond aux ressources dont l'ID ou le nom à afficher contienttransactions. Par exemple,daily_transactions_rawettransactions_v2.column:customer_idcorrespond aux ressources dont le nom de colonne contientcustomer_id.projectid:prodcorrespond aux ressources des projets dont l'ID contientprod. Par exemple,finance-prod-2026.
Filtres temporels
Vous pouvez filtrer les ressources par heure de création (createtime) ou par heure de dernière mise à jour (updatetime).
Opérateurs et formats compatibles
- Opérateurs compatibles :
:,=,<,>,<=,>=,=>,=< - Jours relatifs (
-Nd) : filtrez par un nombre relatif de jours dans le passé (par exemple,-30d,-7d,-1d). - Dates dans l'agenda (
YYYY-MM-DDouYYYY/MM/DD) : filtrez par date spécifique au format GMT/UTC. - Horodatages complets (
YYYY-MM-DDTHH:MM:SSouYYYY-MM-DDTHH:MM:SSZ) : filtrez par horodatage précis au format GMT/UTC. Les codes temporels partiels, tels queYYYY-MM-DDTHH:MMouYYYY-MM-DDTHH, sont également acceptés.
Syntaxe du filtre temporel
Le tableau suivant explique la syntaxe du filtre temporel :
| Catégorie de format | Syntaxe valide | Syntaxe non valide | Description |
|---|---|---|---|
| Unités de temps relatives |
|
|
|
| Dates dans l'agenda |
|
|
|
| Horodatages et fuseaux horaires |
|
|
|
| Plages horaires |
|
|
|
| Dates en langage naturel |
|
|
|
Filtres par libellé
Utilisez le prédicat labels pour filtrer les ressources en fonction des étiquettes associées. Vous pouvez filtrer par clé de libellé, par valeur de libellé ou par les deux :
| Schéma de requête | Exemple | Description |
|---|---|---|
labels=KEY |
labels=environment |
Correspond aux ressources qui ont une étiquette avec la clé exacte environment, quelle que soit sa valeur. |
labels:KEY_SUBSTRING |
labels:tier |
Correspond aux ressources dont la clé d'étiquette contient tier en tant que sous-chaîne (par exemple, service_tier ou storage_tier). |
labels.KEY=VALUE |
labels.env=prod |
Correspond aux ressources dont la clé d'étiquette est env et dont la valeur est exactement prod. |
labels.KEY:VALUE_SUBSTRING |
labels.owner:analytics |
Correspond aux ressources dont la clé d'étiquette est owner et dont la valeur contient analytics en tant que sous-chaîne (par exemple, analytics-team ou data-analytics). |
| Plusieurs libellés (ET) | labels.env=prod labels.data_tier=tier1 |
Correspond aux ressources auxquelles les libellés env=prod et data_tier=tier1 sont associés. |
| Combiné avec le système et le type | system=bigquery type=table labels.env=prod labels.confidentiality=high |
Correspond aux tables BigQuery associées aux libellés env=prod et confidentiality=high. |
Recherche d'aspects
Vous pouvez utiliser la syntaxe de requête pour rechercher des entrées en fonction des aspects qui leur sont associés.
La correspondance de sous-chaîne tente de faire correspondre un nombre limité d'aspects. Si vous ne trouvez pas l'entrée à l'aide d'un fragment du chemin d'accès, utilisez le chemin d'accès complet pour affiner la recherche et augmenter le rappel.
| Qualificatif | Description |
|---|---|
aspect:xou has:x |
Correspond à x en tant que sous-chaîne du chemin d'accès complet au type d'aspect d'un aspect associé à l'entrée, au format projectid.location.ASPECT_TYPE_ID. |
aspect=xou has=x |
Correspond à x en tant que chemin d'accès complet au type d'aspect d'un aspect associé à l'entrée, au format projectid.location.ASPECT_TYPE_ID. |
x |
Recherche des valeurs de champ d'aspect. Correspond à
Seuls les champs de premier niveau de l'aspect peuvent faire l'objet d'une recherche. |
Opérateurs logiques
Une requête peut combiner plusieurs prédicats à l'aide d'opérateurs logiques.
Remarque : Les opérateurs logiques AND, OR et NOT sont sensibles à la casse et doivent être en majuscules.
Opérateur AND
Si vous séparez plusieurs termes de recherche ou prédicats par un espace, l'opérateur logique AND est implicite. Vous n'avez donc pas besoin de l'écrire explicitement.
Les exemples suivants montrent comment créer des requêtes avec l'opérateur AND.
Rechercher des tables BigQuery
system=bigquery type=tableRechercher des ressources dans le projet
banking-prodavec une colonne nomméecustomer_idprojectid:banking-prod column:customer_idSi nécessaire, vous pouvez utiliser l'opérateur
ANDexplicite :system=bigquery AND type=table AND location=us-central1
Opérateur OR
Utilisez l'opérateur OR pour faire correspondre l'une des conditions. Lorsque vous combinez OR avec d'autres critères, utilisez des parenthèses ( ) pour regrouper les expressions et définir la priorité.
Les exemples suivants montrent comment créer des requêtes avec l'opérateur OR.
Rechercher des tables et des vues BigQuery
system=bigquery (type=table OR type=view)Rechercher des tables dans plusieurs systèmes
(system=bigquery OR system=spanner) type=tableRechercher des entrées dans des ensembles de données marketing ou financiers
system=bigquery (parent:marketing_analytics OR parent:finance_analytics)
Opérateur NOT
Vous pouvez annuler un prédicat en le faisant précéder de NOT en majuscules ou d'un - (tiret).
Les exemples suivants montrent comment créer des requêtes avec l'opérateur NOT.
Rechercher toutes les tables, sauf celles d'un projet de bac à sable
- Utiliser l'opérateur
NOT
type=table NOT projectid:sandbox-project- Utiliser un trait d'union
type=table -projectid:sandbox-project- Utiliser l'opérateur
Rechercher toutes les ressources BigQuery dont le nom ne contient pas
testsystem=bigquery -name:test
Syntaxe abrégée
Si vous souhaitez utiliser la syntaxe abrégée, utilisez | (barre verticale) pour les opérateurs OR et , (virgule) pour les opérateurs AND entre parenthèses.
Cette syntaxe abrégée fonctionne pour les prédicats qualifiés.
Rechercher dans plusieurs ID de projet
- Utilisez l'opérateur
OR:
projectid:(finance-prod|sales-prod|analytics-prod)- Utilisez des parenthèses :
projectid:finance-prod OR projectid:sales-prod OR projectid:analytics-prod- Utilisez l'opérateur
Rechercher des entrées correspondant à plusieurs noms de colonnes (
AND)column:(customer_id,transaction_date,amount)Rechercher des entrées correspondant à l'un des noms de colonnes (
OR)column:(customer_id|user_id|client_id)
Règle de caractère générique
La syntaxe de recherche de Knowledge Catalog n'accepte pas les caractères génériques, tels que * ou ?, dans les chaînes de requête ou les prédicats.
Si vous incluez un astérisque (*) ou un point d'interrogation (?) dans une requête, il est traité comme un caractère littéral plutôt que comme un caractère générique de correspondance de modèle.
Par exemple, pour rechercher des tables dont le nom se termine par _masked :
- Compatible :
name:_masked: utilise le qualificatif de correspondance de sous-chaîne:pour rechercher toutes les ressources dont le nom contient_masked, par exemplecustomer_records_maskedoutransactions_masked. - Non compatible :
name:*_masked:*est traité comme un caractère littéral, et non comme un caractère générique de modèle.
Parenthèses
Les parenthèses dans les requêtes de recherche ont des fonctions techniques spécifiques. Si vous utilisez trop de parenthèses ou si vous les appliquez à des requêtes en langage naturel, vous risquez de perturber l'analyseur de recherche et de dégrader la qualité des résultats.
Langage naturel simple
Lorsque vous posez une question d'ordre commercial, transmettez la requête en texte brut. Ne l'entourez pas de parenthèses. Par exemple, écrivez :
Find customer orders containing email addresses
Syntaxe abrégée des prédicats
Les parenthèses sont très efficaces lorsqu'elles sont utilisées avec des clés de prédicat pour lister plusieurs conditions OR et AND dans un format compact.
Regrouper les clés de prédicat avec
OR(|)Recherchez les entrées résidant dans l'un des projets listés à l'aide de (
|).projectid:(finance-prod|finance-test|analytics-raw)Recherchez les entrées résidant dans l'un des projets listés à l'aide de (
OR).
projectid:finance-prod OR projectid:finance-test OR projectid:finance-rawRegrouper les clés de prédicat avec
AND(,)- Recherchez les entrées contenant toutes les colonnes spécifiées à l'aide de (
,).
column:(customer_id, order_date, total_amount)- Recherchez les entrées contenant toutes les colonnes spécifiées à l'aide de (
AND).
column:customer_id AND column:order_date AND column:total_amount- Recherchez les entrées contenant toutes les colonnes spécifiées à l'aide de (
Recherche hybride
Vous pouvez combiner une requête en langage naturel avec des filtres compacts.
Par exemple, pour rechercher des tables spécifiant les utilisateurs actifs par mois, mais limiter la recherche aux projets spécifiés, utilisez la requête suivante :
monthly active users type=table projectid:(data-warehouse|analytical-tier)
Bonnes pratiques pour l'utilisation des parenthèses
N'entourez pas l'intégralité de la question de parenthèses, car le moteur sémantique pourrait les traiter comme des caractères littéraux, ce qui entraînerait des résultats peu pertinents.
- Incorrect :
(Show me datasets about US population by state) - Correct :
Show me datasets about US population by state
- Incorrect :
Évitez de mélanger des arbres booléens complexes et imbriqués avec des parenthèses dans le champ de langage naturel. La recherche est optimisée pour l'intention en langage naturel. Si vous compliquez trop la requête avec des parenthèses et des blocs logiques explicites, l'analyseur risque de ne pas la comprendre.
- Incorrect :
(revenue data) AND system=BIGQUERY AND projectid:(data-warehouse | analytical-tier) - Correct :
revenue data system=bigquery projectid:(data-warehouse|analytical-tier)
- Incorrect :
N'ajoutez pas d'espaces arbitrairement, sauf s'ils font partie de la valeur.
- Incorrect :
column:( email | id ) - Correct :
column:(email|id).
- Incorrect :
Étapes suivantes
- Découvrez comment rechercher des ressources dans Knowledge Catalog.
- Renseignez-vous sur la gestion des métadonnées dans Knowledge Catalog.
- Découvrez comment enrichir des entrées et des liens d'entrée avec des métadonnées à l'aide des aspects.
- Apprenez à gérer les entrées et ingérer des sources personnalisées.