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, atauNOTuntuk 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:foomemilih resource dengan nama yang berisi substringfoo, sepertifoo1danbarfoo.description:foomemilih resource dengan tokenfoodalam deskripsi, sepertibardanfoo.location=foomencocokkan resource di lokasi tertentu 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 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:
|
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 Aset BigQuery Omni mendukung penentu ini dengan 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. |
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:transactionscocok dengan resource yang ID atau nama tampilannya berisitransactions. Misalnya,daily_transactions_rawdantransactions_v2.column:customer_idcocok dengan resource yang memiliki nama kolom yang berisicustomer_id.projectid:prodcocok dengan resource dalam project yang ID-nya berisiprod. 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-DDatauYYYY/MM/DD): Memfilter menurut tanggal tertentu dalam GMT/UTC. - Stempel waktu lengkap (
YYYY-MM-DDTHH:MM:SSatauYYYY-MM-DDTHH:MM:SSZ): Memfilter berdasarkan 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 yang valid | Sintaksis tidak valid | Deskripsi |
|---|---|---|---|
| Unit waktu relatif |
|
|
|
| Tanggal kalender |
|
|
|
| Stempel waktu dan zona waktu |
|
|
|
| Rentang waktu |
|
|
|
| Tanggal bahasa alami |
|
|
|
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. |
Penelusuran aspek
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: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 |
Mencocokkan 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. Mencocokkan
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=tableMenelusuri resource di 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 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- Menggunakan operator
Temukan semua resource BigQuery yang tidak berisi
testdalam namanyasystem=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- 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 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-rawKunci 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- Menelusuri entri yang berisi semua kolom yang ditentukan menggunakan (
Penelusuran campuran
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
- Salah:
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)
- Salah:
Jangan menambahkan spasi secara acak 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.