Suchsyntax für Knowledge Catalog

Mit Suchanfragen in Knowledge Catalog können Sie bestimmte Daten-Assets in Ihrem Katalog sowohl über semantische als auch über Keyword-Übereinstimmungen finden. Durch die Kombination von natürlicher Sprache, Metadatenfiltern und logischen Operatoren können Sie relevante Einträge finden, um die Daten Ihrer Organisation zu ermitteln, zu verwalten und zu verstehen.

Knowledge Catalog unterstützt aus Gründen der Abwärtskompatibilität auch einen Suchmodus, der nur auf Keywords basiert. Weitere Informationen zu diesem Modus, seinen Filtern und seiner Verwendung finden Sie unter Suche nur nach Keywords.

Übersicht über die Abfragesyntax

Sie können Knowledge Catalog-Suchanfragen mit den folgenden Komponenten erstellen:

  • Einfache Suche: Daten-Assets mit einem einzigen Suchbegriff finden.
  • Freitextsuche: Daten-Assets mithilfe von Formulierungen in natürlicher Sprache oder Schlüsselwörtern finden.
  • Filterprädikate: Sie können Ihre Suche mithilfe bestimmter Metadatenfelder wie Name, Standort, System oder Typ verfeinern.
  • Aspekt-Suche: Suchen Sie nach Einträgen anhand der angehängten geschäftlichen und technischen Metadaten.
  • Logische Operatoren: Kombinieren Sie mehrere Suchkriterien mit den Operatoren AND, OR oder NOT, um komplexe Abfragen zu erstellen.

Filterprädikate

Verwenden Sie ein Filterprädikat, um die Suchergebnisse einzugrenzen. Dazu weisen Sie die Suche explizit an, ein bestimmtes Metadatenfeld wie den Namen, den Typ oder das System eines Assets auszuwerten.

Sie können ein Prädikat qualifizieren, indem Sie ihm einen Schlüssel voranstellen, der die Übereinstimmung auf bestimmte Metadaten beschränkt:

  • Ein Gleichheitszeichen (=), um die Suche auf eine genaue Übereinstimmung zu beschränken.
  • Ein Doppelpunkt (:) nach dem Schlüssel, um das Prädikat entweder mit einem Teilstring oder einem Token innerhalb des Werts in den Suchergebnissen abzugleichen.

Bei der Tokenisierung wird der Textstream in eine Reihe von Tokens aufgeteilt, wobei jedes Token normalerweise einem einzelnen Wort entspricht.

Beispiel:

  • name:foo wählt Ressourcen mit Namen aus, die den Teilstring foo enthalten, z. B. foo1 und barfoo.
  • description:foo wählt Ressourcen mit dem Token foo in der Beschreibung aus, z. B. bar und foo.
  • location=foo gleicht Ressourcen an einem angegebenen Standort mit foo als Standortnamen ab.

Unterstützte Qualifizierer

Die Knowledge Catalog-Suche unterstützt die folgenden Qualifier:

Kennzeichner Beschreibung
name:x Entspricht x als Teilstring der Ressourcen-ID oder des Anzeigenamens der Ressource.
displayname:x Entspricht x als Teilstring des Anzeigenamens der Ressource.
column:x Entspricht x als Teilstring des Spaltennamens (oder des verschachtelten Spaltennamens) im Schema der Ressource.
description:x Entspricht x als Token in der Ressourcenbeschreibung. Beispiel:
    .
  • description:"products" zeigt alle Ressourcen an, die das Token products in der Beschreibung enthalten. Beispiel: „Liste der Produkte im Inventar“.
  • description:"prod" zeigt die Ressourcen nicht an, die das Token products in der Beschreibung haben. Stattdessen werden alle Ressourcen angezeigt, die das Token prod in der Beschreibung enthalten. Beispiel: „prod environment“.
labels:bar Entspricht Ressourcen, die ein Label (mit einem bestimmten Wert) haben und deren Labelschlüssel bar als Teilstring enthält.
labels=bar Entspricht Ressourcen, die ein Label (mit einem Wert) haben und deren Labelschlüssel als String bar entspricht.
labels.bar:x Entspricht x als Teilstring im Wert eines Labels mit dem Schlüssel bar, der an eine Ressource angehängt ist.
labels.foo=bar Entspricht Ressourcen, bei denen der Schlüssel foo und der Schlüsselwert bar ist.
type=TYPE Gleicht Ressourcen eines bestimmten Eintragstyps oder seines Typ-Alias ab. Erfordert den Qualifizierer =.
projectid:bar Entspricht Ressourcen in Google Cloud Projekten, diebar als Teilstring in der ID enthalten.
parent:x Entspricht x als Teilstring des hierarchischen Pfads einer Ressource.
system=SYSTEM Gleicht Ressourcen aus einem bestimmten System ab. Erfordert den Qualifizierer =.
location=LOCATION

Gleicht Ressourcen an einem bestimmten Standort mit einem genauen Namen ab. Erfordert den Qualifizierer =. Beispiel: location=us-central1 stimmt mit Assets überein, die in Iowa gehostet werden.

BigQuery Omni-Assets unterstützen diesen Qualifier mithilfe des BigQuery Omni-Standortnamens. Beispiel: location=aws-us-east-1 entspricht BigQuery Omni-Assets in Nord-Virginia.

createtime

Sucht nach Ressourcen, die innerhalb, vor oder nach einem bestimmten Datum, Zeitstempel oder einer relativen Zeit in Tagen erstellt wurden. Informationen zu unterstützten Formaten und Operatoren finden Sie unter Zeitfilter.

updatetime

Findet Ressourcen, die innerhalb, vor oder nach einem bestimmten Datum, Zeitstempel oder relativen Zeitraum in Tagen aktualisiert wurden. Informationen zu unterstützten Formaten und Operatoren finden Sie unter Zeitfilter.

Kennzeichnungen für genau passende Keywords

Die Prädikatschlüssel type, system, location und die Aspekt-Suche (außer has) unterstützen nur den Qualifier für genaue Übereinstimmung (=), nicht den Qualifier für Teilstrings (:).

Verwenden Sie für diese Prädikate die folgende Syntax für genaue Übereinstimmungen:

Prädikatschlüssel Richtige Syntax Falsche Syntax
type type=table (oder type=view, type=dataset) type:table oder type:tab
system system=bigquery (oder system=spanner) system:bigquery oder system:big
location location=us-central1 (oder location=europe-west1) location:us-central1 oder location:us

Teilstring-Qualifier

Prädikate wie name, displayname, column, projectid und parent unterstützen den Abgleich von Teilstrings mit dem Doppelpunkt-Qualifizierer (:):

  • name:transactions entspricht Ressourcen, deren ID oder Anzeigename transactions enthält. Beispiele: daily_transactions_raw und transactions_v2.
  • column:customer_id gleicht Ressourcen mit einem Spaltennamen ab, der customer_id enthält.
  • projectid:prod stimmt mit Ressourcen in Projekten überein, deren ID prod enthält. Beispiel: finance-prod-2026

Zeitfilter

Sie können Ressourcen nach Erstellungszeit (createtime) oder Zeitpunkt der letzten Aktualisierung (updatetime) filtern.

Unterstützte Operatoren und Formate

  • Unterstützte Operatoren: :, =, <, >, <=, >=, =>, =<
  • Relative Tage (-Nd): Filtern Sie nach einer relativen Anzahl von Tagen in der Vergangenheit (z. B. -30d, -7d, -1d).
  • Kalenderdaten (YYYY-MM-DD oder YYYY/MM/DD): Nach einem bestimmten Datum in GMT/UTC filtern.
  • Vollständige Zeitstempel (YYYY-MM-DDTHH:MM:SS oder YYYY-MM-DDTHH:MM:SSZ): Filtert nach einem genauen Zeitstempel in GMT/UTC. Teilzeitstempel wie YYYY-MM-DDTHH:MM oder YYYY-MM-DDTHH werden ebenfalls unterstützt.

Syntax für Zeitfilter

In der folgenden Tabelle wird die Syntax für Zeitfilter erläutert:

Formatkategorie Gültige Syntax Ungültige Syntax Beschreibung
Relative Zeiteinheiten
  • createtime>-30d (letzte 30 Tage)
  • createtime<=-7d (vor 7 Tagen oder früher)
  • updatetime=-1d (vorheriger Tag)
  • updatetime>=-90d
  • createtime>-24h
  • createtime>-60m
  • createtime>-2w
  • createtime>30d
  • Für die relative Zeit werden nur negative Tage (-Nd) unterstützt.
  • Kürzere Einheiten (Stunden h, Minuten m) und längere Einheiten (Wochen w, Monate m) werden nicht unterstützt.
  • Positive Offsets ohne vorangestelltes Minuszeichen (-) sind ungültig.
Kalendertermine
  • createtime:2025-01-15
  • createtime>2025-01-01
  • createtime<=2025-06-30
  • createtime:2025/01/15
  • createtime:2025-01
  • createtime:2025
  • createtime:15-01-2025
  • createtime:Jan-15-2025
  • createtime:01/15/2025
  • Datumsangaben müssen das Format YYYY-MM-DD oder YYYY/MM/DD haben.
  • Formate mit nicht standardmäßiger Reihenfolge der Komponenten (z. B. DD-MM-YYYY oder MM/DD/YYYY) oder Monatsnamen sind ungültig.
Zeitstempel und Zeitzonen
  • createtime:2025-01-15T05:30:00
  • createtime>2025-01-15T05:30:00Z
  • createtime:2025-01-15T05:30
  • createtime:2025-01-15T05:30:00-08:00
  • createtime:2025-01-15T05:30:00 EST
  • createtime:2025-01-15T05:30:00+05:30
  • Alle Zeitstempel werden in GMT/UTC ausgewertet.
  • Nicht-GMT-Zeitzonenverschiebungen (z. B. -08:00 oder +05:30) und Zeitzonenabkürzungen (z. B. EST oder PST) werden nicht unterstützt.
Tageszeitbereiche
  • createtime>=2025-01-15T09:00:00 createtime<=2025-01-15T17:00:00
  • createtime:09:00:00..17:00:00
  • createtime:09:00-17:00
  • Die Syntax für Tageszeitbereiche wird nicht unterstützt.
  • Verwenden Sie stattdessen separate Vergleiche für die Unter- und Obergrenze mit vollständigen Datums- und Uhrzeitstrings.
Datumsangaben in natürlicher Sprache
  • createtime=-1d
  • createtime>-30d
  • createtime:yesterday
  • createtime:"last week"
  • createtime:today
  • Datumsangaben in natürlicher Sprache werden in den Qualifizierern createtime und updatetime nicht unterstützt.
  • Verwenden Sie die Syntax für relative Tage (-1d, -7d) oder explizite Datumsangaben.

Labelfilter

Verwenden Sie das Prädikat labels, um Ressourcen nach angehängten Labels zu filtern. Sie können nach Labelschlüssel, Labelwert oder beidem filtern:

Abfragemuster Beispiel Beschreibung
labels=KEY labels=environment Übereinstimmung mit Ressourcen, die ein Label mit dem genauen Schlüssel environment haben, unabhängig von dessen Wert.
labels:KEY_SUBSTRING labels:tier Gleicht Ressourcen mit einem Labelschlüssel ab, der tier als Teilstring enthält (z. B. service_tier oder storage_tier).
labels.KEY=VALUE labels.env=prod Übereinstimmung mit Ressourcen, bei denen der Labelschlüssel env und der Wert genau prod ist.
labels.KEY:VALUE_SUBSTRING labels.owner:analytics Gleicht Ressourcen mit dem Labelschlüssel owner ab, wobei der Wert analytics als Teilstring enthält (z. B. analytics-team oder data-analytics).
Mehrere Labels (UND) labels.env=prod labels.data_tier=tier1 Übereinstimmung mit Ressourcen, an die sowohl das Label env=prod als auch das Label data_tier=tier1 angehängt ist.
Kombiniert mit System und Typ system=bigquery type=table labels.env=prod labels.confidentiality=high Entspricht BigQuery-Tabellen, die mit env=prod und confidentiality=high gekennzeichnet sind.

Sie können die Abfragesyntax verwenden, um nach Einträgen anhand der angehängten Aspekte zu suchen.

Bei der Teilstringübereinstimmung wird versucht, eine Übereinstimmung mit einer begrenzten Anzahl von Aspekten zu finden. Wenn Sie den Eintrag nicht mithilfe eines Pfadfragments finden können, verwenden Sie den vollständigen Pfad, um die Suche einzugrenzen und den Recall zu erhöhen.

Kennzeichner Beschreibung
aspect:x
oder
has:x
Entspricht x als Teilstring des vollständigen Pfads zum Aspekttyp eines Aspekts, der an den Eintrag angehängt ist, im Format projectid.location.ASPECT_TYPE_ID.
aspect=x
oder
has=x
Entspricht x als vollständigem Pfad zum Aspekttyp eines Aspekts, der an den Eintrag angehängt ist, im Format projectid.location.ASPECT_TYPE_ID
x
OPERATOR
value

Sucht nach Aspektfeldwerten. Entspricht x als Teilstring des vollständigen Pfads zum Aspekttyp und Feldnamen eines Aspekts, der an den Eintrag angehängt ist, in den folgenden Formaten:

  • Syntax für Systemaspekttypen:

    • ASPECT_TYPE_ID.FIELD_NAME
    • dataplex-types.ASPECT_TYPE_ID.FIELD_NAME
    • dataplex-types.LOCATION.ASPECT_TYPE_ID.FIELD_NAME

    Die folgenden Abfragen stimmen beispielsweise mit Einträgen überein, bei denen der Wert des Felds type im Aspekt bigquery-dataset default ist:

    • bigquery-dataset.type=default
    • dataplex-types.bigquery-dataset.type=default
    • dataplex-types.global.bigquery-dataset.type=default
  • Syntax für benutzerdefinierte Aspekttypen:

    • Wenn der Aspekt in der globalen Region erstellt wird: PROJECT_ID.ASPECT_TYPE_ID.FIELD_NAME
    • Wenn der Aspekt in einer bestimmten Region erstellt wird: PROJECT_ID.REGION.ASPECT_TYPE_ID.FIELD_NAME

    Die folgenden Abfragen stimmen beispielsweise mit Einträgen überein, bei denen der Wert des Felds is-enrolled im Aspekt employee-info true ist.

    • example-project.us-central1.employee-info.is-enrolled=true
    • example-project.employee-info.is-enrolled=true

    Die Liste der unterstützten Operatoren hängt vom Typ des Felds im Aspekt ab:

    • String: = (genaue Übereinstimmung)
    • Alle Zahlentypen: =, :, <, >, <=, >=, =>, =<
    • Enum: =
    • Datum/Uhrzeit: Wie bei Zahlen, aber die zu vergleichenden Werte werden als Datum/Uhrzeit-Werte und nicht als Zahlen behandelt.
    • Boolesch: =

Nur Felder der obersten Ebene des Aspekts können durchsucht werden.

Logische Operatoren

In einer Abfrage können mehrere Prädikate mithilfe logischer Operatoren kombiniert werden. Hinweis: Bei den logischen Operatoren AND, OR und NOT wird zwischen Groß- und Kleinschreibung unterschieden. Sie müssen in Großbuchstaben angegeben werden.

Operator AND

Wenn Sie mehrere Suchbegriffe oder Prädikate durch ein Leerzeichen trennen, wird ein logisches UND impliziert. Sie müssen es also nicht explizit schreiben.

Die folgenden Beispiele zeigen, wie Abfragen mit dem Operator AND erstellt werden.

  • Nach BigQuery-Tabellen suchen

    system=bigquery type=table
    
  • Im Projekt banking-prod nach Ressourcen mit einer Spalte namens customer_id suchen

    projectid:banking-prod column:customer_id
    
  • Bei Bedarf können Sie den expliziten Operator AND verwenden:

    system=bigquery AND type=table AND location=us-central1
    

Operator OR

Verwenden Sie den Operator OR, um eine Übereinstimmung mit einer von mehreren Bedingungen zu erzielen. Wenn Sie OR mit anderen Kriterien kombinieren, verwenden Sie Klammern ( ), um die Ausdrücke zu gruppieren und die Rangfolge zu definieren.

Die folgenden Beispiele zeigen, wie Abfragen mit dem Operator OR erstellt werden.

  • Nach BigQuery-Tabellen und -Ansichten suchen

    system=bigquery (type=table OR type=view)
    
  • Tabellen in mehreren Systemen suchen

    (system=bigquery OR system=spanner) type=table
    
  • Nach Einträgen in Marketing- oder Finanz-Datasets suchen

    system=bigquery (parent:marketing_analytics OR parent:finance_analytics)
    

Operator NOT

Sie können ein Prädikat negieren, indem Sie ihm ein großgeschriebenes NOT oder einen - (Bindestrich) voranstellen.

Die folgenden Beispiele zeigen, wie Abfragen mit dem Operator NOT erstellt werden.

  • Alle Tabellen außer denen in einem Sandbox-Projekt suchen

    • Operator NOT verwenden
    type=table NOT projectid:sandbox-project
    
    • Bindestrich verwenden
    type=table -projectid:sandbox-project
    
  • Alle BigQuery-Ressourcen finden, die test nicht im Namen enthalten

    system=bigquery -name:test
    

Abgekürzte Syntax

Wenn Sie die abgekürzte Syntax verwenden möchten, verwenden Sie | (senkrechter Strich) für OR-Operatoren und , (Komma) für AND-Operatoren in Klammern. Diese abgekürzte Syntax funktioniert für die Filterprädikate.

  • In mehreren Projekt-IDs suchen

    • Verwenden Sie den Operator OR:
    projectid:(finance-prod|sales-prod|analytics-prod)
    
    • Verwenden Sie Klammern:
    projectid:finance-prod OR projectid:sales-prod OR projectid:analytics-prod
    
  • Nach Einträgen suchen, die mit mehreren Spaltennamen übereinstimmen (AND)

    column:(customer_id,transaction_date,amount)
    
  • Nach Einträgen suchen, die mit einem von mehreren Spaltennamen übereinstimmen (OR)

    column:(customer_id|user_id|client_id)
    

Platzhalterrichtlinie

Die Suchsyntax von Knowledge Catalog unterstützt keine Platzhalter wie * oder ? in Abfragestrings oder Prädikaten.

Wenn Sie ein Sternchen (*) oder ein Fragezeichen (?) in eine Abfrage einfügen, wird es als Literalzeichen und nicht als Platzhalter für den Musterabgleich behandelt.

So suchen Sie beispielsweise nach Tabellen, deren Namen mit _masked enden:

  • Unterstützt: name:_masked : Verwendet den Qualifier : für die Teilstringübereinstimmung, um alle Ressourcen zu finden, deren Name _masked enthält, z. B. customer_records_masked oder transactions_masked.
  • Nicht unterstützt: name:*_masked: * wird als Literalzeichen und nicht als Platzhalter für ein Muster behandelt.

Klammern

Klammern in Suchanfragen haben bestimmte technische Funktionen. Wenn Sie Klammern zu oft verwenden oder auf Abfragen in natürlicher Sprache anwenden, kann dies den Suchparser verwirren und die Qualität der Ergebnisse beeinträchtigen.

Einfache natürliche Sprache

Wenn Sie eine geschäftliche Frage stellen, übergeben Sie die Anfrage als Nur-Text. Setzen Sie sie nicht in Klammern. Beispiel:

Find customer orders containing email addresses

Abgekürzte Prädikatsyntax

Klammern sind sehr effektiv, wenn sie mit Prädikatschlüsseln verwendet werden, um mehrere OR- und AND-Bedingungen in einem kompakten Format aufzulisten.

  • Prädikatschlüssel mit OR (|) gruppieren

    • Suchen Sie mithilfe von (|) nach Einträgen, die sich in einem der aufgeführten Projekte befinden.

      projectid:(finance-prod|finance-test|analytics-raw)
      
    • Suchen Sie mithilfe von (OR) nach Einträgen, die sich in einem der aufgeführten Projekte befinden.

    projectid:finance-prod OR projectid:finance-test OR projectid:finance-raw
    
  • Prädikatschlüssel mit AND (,) gruppieren

    • Suchen Sie mithilfe von (,) nach Einträgen, die alle angegebenen Spalten enthalten.
    column:(customer_id, order_date, total_amount)
    
    • Suchen Sie mithilfe von (AND) nach Einträgen, die alle angegebenen Spalten enthalten.
    column:customer_id AND column:order_date AND column:total_amount
    

Sie können eine Abfrage in natürlicher Sprache mit kompakten Filtern kombinieren.

Wenn Sie beispielsweise nach Tabellen suchen möchten, in denen monatlich aktive Nutzer angegeben sind, die Suche aber auf die angegebenen Projekte beschränken möchten, verwenden Sie die folgende Abfrage:

monthly active users type=table projectid:(data-warehouse|analytical-tier)

Best Practices für die Verwendung von Klammern

  • Setzen Sie nicht die gesamte Frage in Klammern, da die semantische Engine die Klammern möglicherweise als Literalzeichen behandelt, was zu Ergebnissen mit geringer Relevanz führt.

    • Falsch: (Show me datasets about US population by state)
    • Richtig: Show me datasets about US population by state
  • Vermeiden Sie es, komplexe, verschachtelte boolesche Bäume mit Klammern im Feld für natürliche Sprache zu mischen. Die Suche ist für die Absicht in natürlicher Sprache optimiert. Wenn Sie die Abfrage mit Klammern und expliziten Logikblöcken zu kompliziert gestalten, wird der Parser verwirrt.

    • Falsch: (revenue data) AND system=BIGQUERY AND projectid:(data-warehouse | analytical-tier)
    • Richtig: revenue data system=bigquery projectid:(data-warehouse|analytical-tier)
  • Fügen Sie keine Leerzeichen ein, es sei denn, sie sind Teil des Werts.

    • Falsch: column:( email | id )
    • Richtig: column:(email|id).

Nächste Schritte