Sintaksis penelusuran untuk Knowledge Catalog

Knowledge Catalog memungkinkan Anda menemukan, membuat katalog secara terpusat, mengelola, dan memahami data organisasi Anda. Untuk menemukan aset data tertentu secara efisien dalam katalog data, Anda dapat menggunakan kueri penelusuran yang canggih. Sintaksis untuk kueri penelusuran mencakup:

  • Penelusuran sederhana: Menemukan aset data menggunakan satu istilah penelusuran.
  • Penelusuran teks bebas: Menemukan aset data menggunakan frasa atau kata kunci bahasa alami.
  • Predikat yang memenuhi syarat: Memperbaiki penelusuran Anda menggunakan kolom metadata tertentu seperti nama, lokasi, sistem, atau jenis.
  • Penelusuran aspek: Menelusuri entri berdasarkan metadata bisnis dan teknis yang dilampirkan.
  • Operator logika: Menggabungkan beberapa kriteria penelusuran menggunakan operator AND, OR, atau NOT untuk membuat kueri yang kompleks. Dengan memahami sintaksis ini, Anda dapat dengan cepat menemukan data yang Anda butuhkan.

Predikat yang memenuhi syarat

Gunakan predikat yang memenuhi syarat untuk mempersempit hasil penelusuran dengan secara eksplisit menginstruksikan penelusuran untuk mengevaluasi kolom metadata tertentu, seperti nama, jenis, atau sistem aset.

Anda dapat memenuhi syarat predikat dengan menambahkan awalan kunci yang membatasi pencocokan ke bagian metadata tertentu:

  • Tanda sama dengan (=) untuk membatasi penelusuran pada kecocokan persis.
  • Titik dua (:) setelah kunci untuk mencocokkan predikat dengan substring atau token dalam nilai di hasil penelusuran.

Tokenisasi membagi aliran teks menjadi serangkaian token, dengan setiap token biasanya sesuai dengan satu kata.

Contoh:

  • name:foo memilih resource dengan nama yang berisi substring foo, seperti foo1 dan barfoo.
  • description:foo memilih resource dengan token foo dalam deskripsi, seperti bar dan foo.
  • location=foo mencocokkan resource di lokasi tertentu dengan foo sebagai nama lokasi.

Penentu yang didukung

Penelusuran Knowledge Catalog mendukung penentu berikut:

Penentu Deskripsi
name:x Mencocokkan x sebagai substring ID resource atau nama tampilan resource.
displayname:x Mencocokkan x sebagai substring dari nama tampilan resource.
column:x Mencocokkan x sebagai substring nama kolom (atau nama kolom bertingkat) dalam skema resource.
description:x Cocok dengan x sebagai token dalam deskripsi resource. Contoh:
  • description:"products" menampilkan semua resource yang memiliki token products dalam deskripsi. Misalnya, "daftar produk dalam inventaris".
  • description:"prod" tidak menampilkan resource yang memiliki token products dalam deskripsi. Sebagai gantinya, semua resource yang memiliki token prod dalam deskripsi akan ditampilkan. Misalnya, "prod environment".
labels:bar Mencocokkan resource yang memiliki label (dengan beberapa nilai) dan kunci label memiliki bar sebagai substring.
labels=bar Mencocokkan resource yang memiliki label (dengan beberapa nilai) dan kunci label sama dengan bar sebagai string.
labels.bar:x Mencocokkan x sebagai substring dalam nilai label dengan kunci bar yang dilampirkan ke resource.
labels.foo=bar Mencocokkan resource dengan kunci yang sama dengan foo dan nilai kunci yang sama dengan bar.
type=TYPE Mencocokkan resource dari jenis entri tertentu atau alias jenisnya. Memerlukan penentu =.
projectid:bar Mencocokkan resource dalam project Google Cloud yang cocok dengan bar sebagai substring dalam ID.
parent:x Mencocokkan x sebagai substring dari jalur hierarkis resource.
system=SYSTEM Mencocokkan resource dari sistem yang ditentukan. Memerlukan penentu =.
location=LOCATION

Mencocokkan resource di lokasi tertentu dengan nama yang sama persis. Memerlukan penentu =. Misalnya, location=us-central1 cocok dengan aset yang dihosting di Iowa.

Aset BigQuery Omni mendukung penentu ini dengan menggunakan nama lokasi BigQuery Omni. Misalnya, location=aws-us-east-1 cocok dengan aset BigQuery Omni di Virginia Utara.

createtime

Menemukan resource yang dibuat dalam, sebelum, atau setelah tanggal, stempel waktu, atau waktu relatif tertentu dalam hari. Untuk mengetahui format dan operator yang didukung, lihat Filter waktu.

updatetime

Menemukan resource yang diperbarui dalam, sebelum, atau setelah tanggal, stempel waktu, atau waktu relatif tertentu dalam hari. Untuk mengetahui format dan operator yang didukung, lihat Filter waktu.

Kualifikasi pencocokan persis

Kunci predikat type, system, location, dan penelusuran aspek (tidak termasuk has) hanya mendukung kualifikasi kecocokan persis (=), bukan kualifikasi substring (:).

Gunakan sintaksis kecocokan persis berikut untuk predikat ini:

Kunci predikat Sintaksis yang benar Sintaksis salah
type type=table (atau type=view, type=dataset) type:table atau type:tab
system system=bigquery (atau system=spanner) system:bigquery atau system:big
location location=us-central1 (atau location=europe-west1) location:us-central1 atau location:us

Penentu substring

Predikat seperti name, displayname, column, projectid, dan parent, mendukung pencocokan substring dengan kualifikasi titik dua (:):

  • name:transactions cocok dengan resource yang ID atau nama tampilannya berisi transactions. Misalnya, daily_transactions_raw dan transactions_v2.
  • column:customer_id cocok dengan resource yang memiliki nama kolom yang berisi customer_id.
  • projectid:prod cocok dengan resource dalam project yang ID-nya berisi prod. Misalnya, finance-prod-2026.

Filter waktu

Anda dapat memfilter resource menurut waktu pembuatan (createtime) atau waktu update terakhir (updatetime).

Operator dan format yang didukung

  • Operator yang didukung: :, =, <, >, <=, >=, =>, =<
  • Hari relatif (-Nd): Filter menurut jumlah hari relatif di masa lalu (misalnya, -30d, -7d, -1d).
  • Tanggal kalender (YYYY-MM-DD atau YYYY/MM/DD): Memfilter menurut tanggal tertentu dalam GMT/UTC.
  • Stempel waktu lengkap (YYYY-MM-DDTHH:MM:SS atau YYYY-MM-DDTHH:MM:SSZ): Memfilter berdasarkan stempel waktu yang tepat dalam GMT/UTC. Stempel waktu parsial, seperti YYYY-MM-DDTHH:MM atau YYYY-MM-DDTHH, juga didukung.

Sintaksis filter waktu

Tabel berikut menjelaskan sintaksis filter waktu:

Kategori format Sintaksis yang valid Sintaksis tidak valid Deskripsi
Unit waktu relatif
  • createtime>-30d (30 hari terakhir)
  • createtime<=-7d (7 hari yang lalu atau sebelumnya)
  • updatetime=-1d (hari sebelumnya)
  • updatetime>=-90d
  • createtime>-24h
  • createtime>-60m
  • createtime>-2w
  • createtime>30d
  • Hanya unit hari negatif (-Nd) yang didukung untuk waktu relatif.
  • Unit yang lebih pendek (jam h, menit m) dan unit yang lebih panjang (minggu w, bulan m) tidak didukung.
  • Offset positif tanpa tanda minus di bagian awal (-) tidak valid.
Tanggal kalender
  • 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
  • Tanggal harus mengikuti format YYYY-MM-DD atau YYYY/MM/DD.
  • Format dengan urutan komponen yang tidak standar (seperti DD-MM-YYYY atau MM/DD/YYYY) atau nama bulan tidak valid.
Stempel waktu dan zona waktu
  • 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
  • Semua stempel waktu dievaluasi dalam GMT/UTC.
  • Offset zona waktu non-GMT (seperti -08:00 atau +05:30) dan singkatan zona waktu (seperti EST atau PST) tidak didukung.
Rentang waktu
  • createtime>=2025-01-15T09:00:00 createtime<=2025-01-15T17:00:00
  • createtime:09:00:00..17:00:00
  • createtime:09:00-17:00
  • Sintaksis rentang waktu tidak didukung.
  • Sebagai gantinya, gunakan perbandingan batas bawah dan atas terpisah dengan string tanggal-waktu lengkap.
Tanggal bahasa alami
  • createtime=-1d
  • createtime>-30d
  • createtime:yesterday
  • createtime:"last week"
  • createtime:today
  • Frasa tanggal bahasa alami tidak didukung dalam penentu createtime atau updatetime.
  • Gunakan sintaksis hari relatif (-1d, -7d) atau tanggal eksplisit.

Filter label

Gunakan predikat labels untuk memfilter resource menurut label terlampir. Anda dapat memfilter menurut kunci label, nilai label, atau keduanya:

Pola kueri Contoh Deskripsi
labels=KEY labels=environment Mencocokkan resource yang memiliki label dengan kunci environment yang persis sama, terlepas dari nilainya.
labels:KEY_SUBSTRING labels:tier Mencocokkan resource dengan kunci label yang berisi tier sebagai substring (seperti service_tier atau storage_tier).
labels.KEY=VALUE labels.env=prod Mencocokkan resource dengan kunci label env dan nilai prod.
labels.KEY:VALUE_SUBSTRING labels.owner:analytics Mencocokkan resource dengan kunci label owner yang nilainya berisi analytics sebagai substring (seperti analytics-team atau data-analytics).
Beberapa label (DAN) labels.env=prod labels.data_tier=tier1 Mencocokkan resource yang memiliki label env=prod dan data_tier=tier1 yang dilampirkan.
Dikombinasikan dengan sistem dan jenis system=bigquery type=table labels.env=prod labels.confidentiality=high Mencocokkan tabel BigQuery yang diberi label env=prod dan confidentiality=high.

Anda dapat menggunakan sintaksis kueri untuk menelusuri entri berdasarkan aspek yang dilampirkan.

Pencocokan substring mencoba mencocokkan dengan sejumlah aspek terbatas. Jika Anda tidak dapat menemukan entri menggunakan fragmen jalur, gunakan jalur lengkap untuk mempersempit penelusuran dan meningkatkan perolehan.

Penentu Deskripsi
aspect:x
atau
has:x
Mencocokkan x sebagai substring dari jalur lengkap ke jenis aspek dari aspek yang dilampirkan ke entri, dalam format projectid.location.ASPECT_TYPE_ID
aspect=x
atau
has=x
Mencocokkan x sebagai jalur lengkap ke jenis aspek dari aspek yang dilampirkan ke entri, dalam format projectid.location.ASPECT_TYPE_ID
x
OPERATOR
value

Menelusuri nilai kolom aspek. Mencocokkan x sebagai substring dari jalur lengkap ke jenis aspek dan nama kolom aspek yang dilampirkan ke entri, dalam format berikut:

  • Sintaksis untuk jenis aspek sistem:

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

    Misalnya, kueri berikut cocok dengan entri yang nilai kolom type di aspek bigquery-dataset-nya adalah default:

    • bigquery-dataset.type=default
    • dataplex-types.bigquery-dataset.type=default
    • dataplex-types.global.bigquery-dataset.type=default
  • Sintaksis untuk jenis aspek kustom:

    • Jika aspek dibuat di region global: PROJECT_ID.ASPECT_TYPE_ID.FIELD_NAME
    • Jika aspek dibuat di wilayah tertentu: PROJECT_ID.REGION.ASPECT_TYPE_ID.FIELD_NAME

    Misalnya, kueri berikut cocok dengan entri yang nilai kolom is-enrolled di aspek employee-info adalah true.

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

    Daftar operator yang didukung bergantung pada jenis kolom dalam aspek, sebagai berikut:

    • String: = (kecocokan persis)
    • Semua jenis angka: =, :, <, >, <=, >=, =>, =<
    • Enum: =
    • Datetime: sama seperti untuk angka, tetapi nilai yang akan dibandingkan diperlakukan sebagai tanggal dan waktu, bukan angka
    • Boolean: =

Hanya kolom tingkat teratas aspek yang dapat ditelusuri.

Operator logika

Kueri dapat menggabungkan beberapa predikat menggunakan operator logika. Catatan: Operator logika AND, OR, dan NOT peka huruf besar/kecil dan harus berupa huruf besar.

Operator AND

Jika Anda memisahkan beberapa istilah atau predikat penelusuran dengan spasi, AND logis akan tersirat, yang berarti Anda tidak perlu menuliskannya secara eksplisit.

Contoh berikut menunjukkan cara membuat kueri dengan operator AND.

  • Menelusuri tabel BigQuery

    system=bigquery type=table
    
  • Menelusuri resource di project banking-prod dengan kolom bernama customer_id

    projectid:banking-prod column:customer_id
    
  • Jika diperlukan, Anda dapat menggunakan operator AND eksplisit:

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

Operator OR

Gunakan operator OR untuk mencocokkan salah satu dari beberapa kondisi. Saat menggabungkan OR dengan kriteria lain, gunakan tanda kurung ( ) untuk mengelompokkan ekspresi dan menentukan prioritas.

Contoh berikut menunjukkan cara membuat kueri dengan operator OR.

  • Menelusuri tabel dan tampilan BigQuery

    system=bigquery (type=table OR type=view)
    
  • Menelusuri tabel di beberapa sistem

    (system=bigquery OR system=spanner) type=table
    
  • Menelusuri entri dalam set data pemasaran atau keuangan

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

Operator NOT

Anda dapat meniadakan predikat dengan menambahkan awalan NOT huruf besar atau - (tanda hubung).

Contoh berikut menunjukkan cara membuat kueri dengan operator NOT.

  • Menemukan semua tabel kecuali yang ada di project sandbox

    • Menggunakan operator NOT
    type=table NOT projectid:sandbox-project
    
    • Menggunakan tanda hubung
    type=table -projectid:sandbox-project
    
  • Temukan semua resource BigQuery yang tidak berisi test dalam namanya

    system=bigquery -name:test
    

Sintaksis singkat

Jika Anda ingin menggunakan sintaks singkat, gunakan | (batang vertikal) untuk operator OR dan , (koma) untuk operator AND dalam tanda kurung. Sintaksis singkat ini berfungsi untuk predikat yang memenuhi syarat.

  • Menelusuri beberapa project ID

    • Gunakan operator OR:
    projectid:(finance-prod|sales-prod|analytics-prod)
    
    • Gunakan tanda kurung:
    projectid:finance-prod OR projectid:sales-prod OR projectid:analytics-prod
    
  • Menelusuri entri yang cocok dengan beberapa nama kolom (AND)

    column:(customer_id,transaction_date,amount)
    
  • Menelusuri entri yang cocok dengan salah satu dari beberapa nama kolom (OR)

    column:(customer_id|user_id|client_id)
    

Kebijakan karakter pengganti

Sintaksis penelusuran Knowledge Catalog tidak mendukung karakter pengganti, seperti * atau ?, dalam string kueri atau predikat.

Jika Anda menyertakan tanda bintang (*) atau tanda tanya (?) dalam kueri, tanda tersebut akan diperlakukan sebagai karakter literal, bukan karakter pengganti pencocokan pola.

Misalnya, untuk menelusuri tabel yang namanya diakhiri dengan _masked:

  • Didukung: name:_masked : menggunakan penentu : kecocokan substring untuk menemukan semua resource yang namanya berisi _masked, seperti customer_records_masked atau transactions_masked.
  • Tidak didukung: name:*_masked: * diperlakukan sebagai karakter literal, bukan karakter pengganti pola.

Tanda kurung

Tanda kurung dalam kueri penelusuran memiliki fungsi teknis tertentu. Jika Anda terlalu sering menggunakan tanda kurung atau menerapkannya pada kueri bahasa alami, Anda dapat membingungkan parser penelusuran dan menurunkan kualitas hasil.

Bahasa alami yang sederhana

Saat mengajukan pertanyaan bisnis, teruskan kueri dalam teks biasa. Jangan sertakan dalam tanda kurung. Misalnya, tulis:

Find customer orders containing email addresses

Sintaksis predikat singkat

Tanda kurung sangat efektif saat digunakan dengan kunci predikat untuk mencantumkan beberapa kondisi OR dan AND dalam format yang ringkas.

  • Kunci predikat grup dengan OR (|)

    • Telusuri entri yang berada di salah satu project yang tercantum menggunakan (|)

      projectid:(finance-prod|finance-test|analytics-raw)
      
    • Telusuri entri yang berada di salah satu project yang tercantum menggunakan (OR)

    projectid:finance-prod OR projectid:finance-test OR projectid:finance-raw
    
  • Kunci predikat grup dengan AND (,)

    • Menelusuri entri yang berisi semua kolom yang ditentukan menggunakan (,)
    column:(customer_id, order_date, total_amount)
    
    • Menelusuri entri yang berisi semua kolom yang ditentukan menggunakan (AND)
    column:customer_id AND column:order_date AND column:total_amount
    

Anda dapat menggabungkan kueri bahasa natural dengan filter ringkas.

Misalnya, untuk menemukan tabel yang menentukan pengguna aktif bulanan, tetapi membatasi penelusuran ke project tertentu, gunakan kueri berikut:

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

Praktik terbaik untuk menggunakan tanda kurung

  • Jangan mengapit seluruh pertanyaan dalam tanda kurung, karena mesin semantik dapat memperlakukan tanda kurung sebagai karakter literal, sehingga menghasilkan hasil yang tidak relevan.

    • Salah: (Show me datasets about US population by state)
    • Benar: Show me datasets about US population by state
  • Hindari menggabungkan pohon boolean bertingkat yang kompleks dengan tanda kurung di dalam kolom bahasa alami. Penelusuran dioptimalkan untuk maksud bahasa natural. Membuat kueri menjadi terlalu rumit dengan tanda kurung dan blok logika eksplisit akan membingungkan parser.

    • Salah: (revenue data) AND system=BIGQUERY AND projectid:(data-warehouse | analytical-tier)
    • Benar: revenue data system=bigquery projectid:(data-warehouse|analytical-tier)
  • Jangan menambahkan spasi secara acak kecuali jika spasi tersebut merupakan bagian dari nilai.

    • Salah: column:( email | id )
    • Benar: column:(email|id).

Langkah berikutnya