Kueri penelusuran di Knowledge Catalog memungkinkan Anda menemukan aset data tertentu di seluruh katalog menggunakan pencocokan semantik dan kata kunci. Dengan menggabungkan bahasa alami, filter metadata, dan operator logis, Anda dapat menemukan entri yang relevan untuk menemukan, mengelola, dan memahami data organisasi Anda.
Knowledge Catalog juga mendukung mode penelusuran khusus kata kunci untuk kompatibilitas mundur. Untuk mengetahui informasi selengkapnya tentang mode ini, filternya, dan cara menggunakannya, lihat Penelusuran khusus kata kunci.
Ringkasan sintaksis kueri
Anda dapat membuat kueri penelusuran Knowledge Catalog menggunakan komponen berikut:
- Penelusuran sederhana: Temukan aset data menggunakan satu istilah penelusuran.
- Penelusuran teks bebas: Temukan aset data menggunakan frasa atau kata kunci bahasa alami.
- Predikat terpilih: Saring 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: Gabungkan beberapa kriteria penelusuran menggunakan operator
AND,OR, atauNOTuntuk membuat kueri yang kompleks.
Predikat terpilih
Gunakan predikat terpilih untuk mempersempit hasil penelusuran dengan secara eksplisit menginstruksikan penelusuran untuk mengevaluasi kolom metadata tertentu, seperti nama, jenis, atau sistem aset.
Anda dapat mengualifikasi predikat dengan mengawalinya dengan kunci yang membatasi pencocokan ke bagian metadata tertentu:
- Tanda sama dengan (
=) untuk membatasi penelusuran pada pencocokan 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:foomemilih resource dengan nama yang berisi substringfoo, sepertifoo1danbarfoo.description:foomemilih resource dengan tokenfoodalam deskripsi, sepertibardanfoo.location=foomencocokkan resource di lokasi yang ditentukan denganfoosebagai 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 nama tampilan resource. |
column:x |
Mencocokkan x sebagai substring nama kolom (atau nama kolom bertingkat) dalam skema resource. |
description:x |
Mencocokkan x sebagai token dalam deskripsi resource. Contoh:
|
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 yang kuncinya sama dengan
foo dan nilai kuncinya 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 |
Cocok dengan x sebagai substring jalur hierarkis resource. |
system=SYSTEM |
Mencocokkan resource dari sistem yang ditentukan. Memerlukan penentu =. |
location=LOCATION |
Mencocokkan resource di lokasi yang ditentukan dengan nama yang sama persis. Memerlukan penentu Aset BigQuery Omni mendukung penentu ini menggunakan nama lokasi BigQuery Omni.
Misalnya,
|
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. |
Penentu pencocokan persis
Kunci predikat type, system, location, dan penelusuran aspek (tidak termasuk has) hanya mendukung penentu pencocokan persis (=), bukan penentu substring (:).
Gunakan sintaksis pencocokan persis berikut untuk predikat ini:
| Kunci predikat | Sintaksis 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 penentu titik dua (:):
name:transactionscocok dengan resource yang ID atau nama tampilannya berisitransactions. Misalnya,daily_transactions_rawdantransactions_v2.column:customer_idmencocokkan resource dengan nama kolom yang berisicustomer_id.projectid:prodmencocokkan resource dalam project yang ID-nya berisiprod. Misalnya,finance-prod-2026.
Filter waktu
Anda dapat memfilter resource berdasarkan 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-DDatauYYYY/MM/DD): Memfilter menurut tanggal tertentu dalam GMT/UTC. - Stempel waktu lengkap (
YYYY-MM-DDTHH:MM:SSatauYYYY-MM-DDTHH:MM:SSZ): Filter menurut stempel waktu yang tepat dalam GMT/UTC. Stempel waktu parsial, sepertiYYYY-MM-DDTHH:MMatauYYYY-MM-DDTHH, juga didukung.
Sintaksis filter waktu
Tabel berikut menjelaskan sintaksis filter waktu:
| Kategori format | Sintaksis valid | Sintaksis tidak valid | Deskripsi |
|---|---|---|---|
| Unit waktu relatif |
|
|
|
| Tanggal kalender |
|
|
|
| Stempel waktu dan zona waktu |
|
|
|
| Rentang waktu |
|
|
|
| Tanggal dalam bahasa alami |
|
|
|
Filter label
Gunakan predikat labels untuk memfilter resource berdasarkan label yang dilampirkan. Anda dapat memfilter berdasarkan kunci label, nilai label, atau keduanya:
| Pola kueri | Contoh | Deskripsi |
|---|---|---|
labels=KEY |
labels=environment |
Mencocokkan resource yang memiliki label dengan kunci environment yang sama persis, 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 yang kunci labelnya adalah env dan nilainya sama persis dengan 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 (AND) | 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 |
Cocok dengan tabel BigQuery yang diberi label env=prod dan confidentiality=high. |
Penelusuran aspek
Anda dapat menggunakan sintaksis kueri untuk menelusuri entri berdasarkan aspek yang dilampirkan.
Pencocokan substring mencoba mencocokkan dengan sejumlah aspek yang terbatas. Jika Anda tidak dapat menemukan entri menggunakan fragmen jalur, gunakan jalur lengkap untuk mempersempit penelusuran dan meningkatkan perolehan.
| Penentu | Deskripsi |
|---|---|
aspect:xatau 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=xatau has=x |
Cocok dengan x sebagai jalur lengkap ke jenis aspek dari aspek yang dilampirkan ke entri, dalam format projectid.location.ASPECT_TYPE_ID |
x |
Menelusuri nilai kolom aspek. Cocok dengan
Hanya kolom tingkat teratas dari 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 dalam
huruf besar.
Operator AND
Jika Anda memisahkan beberapa istilah penelusuran atau predikat dengan spasi, AND logis akan tersirat, yang berarti Anda tidak perlu menulisnya secara eksplisit.
Contoh berikut menunjukkan cara membuat kueri dengan operator AND.
Menelusuri tabel BigQuery
system=bigquery type=tableTelusuri resource dalam project
banking-proddengan kolom bernamacustomer_idprojectid:banking-prod column:customer_idJika diperlukan, Anda dapat menggunakan operator
ANDeksplisit: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=tableMenelusuri entri di set data pemasaran atau keuangan
system=bigquery (parent:marketing_analytics OR parent:finance_analytics)
Operator NOT
Anda dapat meniadakan predikat dengan menambahkan awalan NOT dalam 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- Gunakan tanda hubung
type=table -projectid:sandbox-project- Menggunakan operator
Menemukan semua resource BigQuery yang tidak berisi
testdalam namanyasystem=bigquery -name:test
Sintaksis yang disingkat
Jika Anda ingin menggunakan sintaksis singkat, gunakan | (garis vertikal) untuk operator OR dan , (koma) untuk operator AND dalam tanda kurung.
Sintaksis singkat ini berfungsi untuk predikat terpilih.
Menelusuri di 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- Gunakan operator
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, seperticustomer_records_maskedatautransactions_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 ke 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 mengapitnya dalam tanda kurung. Misalnya, tulis:
Find customer orders containing email addresses
Sintaksis predikat yang disingkat
Tanda kurung sangat efektif jika digunakan dengan kunci predikat untuk mencantumkan beberapa kondisi OR dan AND dalam format yang ringkas.
Mengelompokkan kunci predikat 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-rawMengelompokkan kunci predikat dengan
AND(,)- Telusuri entri yang berisi semua kolom yang ditentukan menggunakan (
,)
column:(customer_id, order_date, total_amount)- Telusuri entri yang berisi semua kolom yang ditentukan menggunakan (
AND)
column:customer_id AND column:order_date AND column:total_amount- Telusuri entri yang berisi semua kolom yang ditentukan menggunakan (
Penelusuran campuran
Anda dapat menggabungkan kueri bahasa alami dengan filter ringkas.
Misalnya, untuk menemukan tabel yang menentukan pengguna aktif bulanan, tetapi membatasi penelusuran ke project yang ditentukan, 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 mungkin memperlakukan tanda kurung sebagai karakter literal, sehingga menghasilkan hasil yang kurang relevan.
- Salah:
(Show me datasets about US population by state) - Benar:
Show me datasets about US population by state
- Salah:
Hindari menggabungkan hierarki boolean bertingkat yang kompleks dengan tanda kurung di dalam kolom bahasa alami. Penelusuran dioptimalkan untuk maksud bahasa alami. Membuat kueri 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)
- Salah:
Jangan menambahkan spasi secara sembarangan kecuali jika spasi tersebut merupakan bagian dari nilai.
- Salah:
column:( email | id ) - Benar:
column:(email|id).
- Salah:
Langkah berikutnya
- Pelajari cara menelusuri resource di Knowledge Catalog
- Pelajari lebih lanjut pengelolaan metadata di Knowledge Catalog.
- Pelajari cara memperkaya entri dan link entri dengan metadata menggunakan aspek.
- Pelajari cara mengelola entri dan menyerap sumber kustom.