Knowledge Catalog vous permet de découvrir, de cataloguer de manière centralisée, de gérer et de comprendre les données de votre organisation. Pour trouver efficacement des éléments de données spécifiques dans votre catalogue de données, vous pouvez utiliser des requêtes de recherche puissantes. La syntaxe des requêtes de recherche inclut les éléments suivants :
- Recherche simple : trouver des composants de données à l'aide d'un seul terme de recherche.
- Recherche en texte libre : permet de trouver des composants 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 : recherche d'entrées en fonction des métadonnées métier et techniques qui leur sont associées.
- Opérateurs logiques : combinaison de plusieurs critères de recherche à l'aide des opérateurs
AND,ORouNOTpour créer des requêtes complexes. En comprenant cette syntaxe, vous pouvez rapidement trouver les données dont vous avez besoin.
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 que le nom, le type ou le système d'un composant.
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 (
=) permet de limiter la recherche à une correspondance exacte. - Le signe deux-points (
:) après la clé pour faire correspondre le prédicat à une sous-chaîne ou à un jeton compris dans la valeur des 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:foosélectionne les ressources dont le nom contient la sous-chaînefoo, commefoo1etbarfoo.description:foosélectionne les ressources ayant le jetonfoodans la description, commebaretfoo.location=foocorrespond aux ressources d'un emplacement spécifié avecfoocomme nom d'emplacement.
Qualificatifs acceptés
La recherche dans le Knowledge Catalog accepte les qualificatifs suivants :
| Qualificatif | Description |
|---|---|
name:x |
Renvoie x en tant que sous-chaîne de l'ID ou du nom à afficher de la ressource. |
displayname:x |
Renvoie 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 |
Renvoie x en tant que jeton dans la description de la ressource. Exemple :
|
labels:bar |
Renvoie les ressources comportant une étiquette (avec une certaine valeur) et dont la clé d'étiquette est bar en tant que sous-chaîne. |
labels=bar |
Renvoie les ressources comportant une étiquette (avec une certaine valeur) et dont la clé d'étiquette est égale à bar en tant que chaîne. |
labels.bar:x |
Renvoie 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 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 |
Renvoie les ressources dans les projets Google Cloud qui correspondent àbaren 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'une ressource. |
system=SYSTEM |
Correspond aux ressources d'un système spécifié. Nécessite le qualificatif =. |
location=LOCATION |
Fait correspondre les ressources d'un emplacement spécifié avec un nom exact. Nécessite le qualificatif Les composants BigQuery Omni sont compatibles avec ce qualificatif en utilisant le nom de l'emplacement BigQuery Omni.
Par exemple, |
createtime |
Recherche les ressources qui ont été créées pendant, avant ou après une date, un code temporel ou une heure relative en jours donnés. Pour connaître les formats et les opérateurs acceptés, consultez Filtres temporels. |
updatetime |
Recherche les ressources qui ont été mises à jour pendant, avant ou après une date, un code temporel ou une heure relative en jours donnés. Pour connaître les formats et les opérateurs acceptés, consultez Filtres temporels. |
Qualificateurs de correspondance exacte
Les clés de prédicat type, system, location et la recherche d'aspect (à l'exclusion de has) n'acceptent que le qualificatif de correspondance exacte (=), et non le qualificatif de sous-chaîne (:).
Utilisez la syntaxe d'expression 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 acceptent la correspondance de sous-chaîne avec le qualificatif deux-points (:) :
name:transactionscorrespond aux ressources dont l'ID ou le nom à afficher contiennenttransactions. 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 heure de la dernière mise à jour (updatetime).
Opérateurs et formats acceptés
- Opérateurs acceptés :
:,=,<,>,<=,>=,=>,=< - 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 en GMT/UTC. - Codes temporels complets (
YYYY-MM-DDTHH:MM:SSouYYYY-MM-DDTHH:MM:SSZ) : filtrez par code temporel précis en 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 incorrecte | 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 par libellés associés. Vous pouvez filtrer par clé d'étiquette, par valeur d'étiquette ou par les deux :
| Schéma de requête | Exemple | Description |
|---|---|---|
labels=KEY |
labels=environment |
Correspond aux ressources qui possèdent un libellé 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é de libellé est env et dont la valeur est exactement prod. |
labels.KEY:VALUE_SUBSTRING |
labels.owner:analytics |
Renvoie les 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 associées aux libellés env=prod et data_tier=tier1. |
| Combiné avec le système et le type | system=bigquery type=table labels.env=prod labels.confidentiality=high |
Correspond aux tables BigQuery libellées avec env=prod et confidentiality=high. |
Recherche par aspect
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 multiples. 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 financières
system=bigquery (parent:marketing_analytics OR parent:finance_analytics)
Opérateur NOT
Vous pouvez annuler un prédicat en le préfixant avec NOT en majuscules ou un - (tiret).
Les exemples suivants montrent comment créer des requêtes avec l'opérateur NOT.
Rechercher tous les tableaux, à l'exception de ceux qui se trouvent dans un projet sandbox
- Utiliser l'opérateur
NOT
type=table NOT projectid:sandbox-project- Utiliser un tiret
type=table -projectid:sandbox-project- Utiliser l'opérateur
Recherchez 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 à plusieurs noms de colonnes (
OR)column:(customer_id|user_id|client_id)
Règlement sur les caractères génériques
La syntaxe de recherche de Knowledge Catalog n'est pas compatible avec 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, ils sont traités comme des caractères littéraux plutôt que comme des caractères génériques de correspondance de modèle.
Par exemple, pour rechercher les tables dont le nom se termine par _masked :
- Accepté :
name:_masked: utilise le qualificatif de correspondance de sous-chaîne:pour trouver toutes les ressources dont le nom contient_masked, commecustomer_records_maskedoutransactions_masked. - Non compatible :
name:*_masked: le*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 sur une entreprise, 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 trouver les 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'encadrez pas la question entière 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 combiner des arbres booléens complexes et imbriqués avec des parenthèses dans le champ en 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, vous risquez de dérouter l'analyseur.
- 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 de manière arbitraire, 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.
- En savoir plus sur la gestion des métadonnées dans Knowledge Catalog
- Découvrez comment enrichir des entrées et des liens vers des entrées avec des métadonnées à l'aide des aspects.
- Apprenez à gérer les entrées et ingérer des sources personnalisées.