Pengantar penelusuran di BigQuery
Indeks penelusuran BigQuery memungkinkan Anda menemukan elemen data unik yang tertimbun dalam teks tidak terstruktur dan data JSON semi-terstruktur secara efisien tanpa mengetahui skema tabel terlebih dahulu. Indeks penelusuran menggabungkan penyimpanan berbasis kolom dengan penelusuran teks agar Anda dapat melakukan pencarian baris yang efisien untuk tugas seperti analisis log, audit keamanan, dan pelaporan kepada regulator.
BigQuery menyimpan dan mengelola indeks Anda, sehingga saat data tersedia di BigQuery, Anda dapat segera mengambilnya dengan fungsi SEARCH atau operator dan fungsi lain yang didukung. Untuk mengoptimalkan penelusuran, baca
praktik terbaik.
Kasus penggunaan
Indeks penelusuran BigQuery membantu Anda melakukan tugas berikut:
- Menelusuri sistem, jaringan, atau log aplikasi yang disimpan di tabel BigQuery.
- Mengidentifikasi elemen data yang akan dihapus agar sesuai dengan proses peraturan.
- Mendukung pemecahan masalah developer.
- Melakukan audit keamanan.
- Membuat dasbor yang memerlukan filter penelusuran yang sangat selektif.
- Menelusuri data yang telah diproses sebelumnya untuk pencocokan persis.
Untuk mengetahui informasi selengkapnya, lihat Membuat indeks penelusuran dan Menelusuri dengan indeks.
Harga
Pemrosesan yang diperlukan untuk membangun dan memuat ulang indeks penelusuran
tidak dikenai biaya jika ukuran total tabel yang diindeks di organisasi Anda berada di bawah
batas region. Untuk mendukung pengindeksan di luar batas ini,
Anda harus
menyediakan pemesanan sendiri
untuk menangani tugas pengelolaan indeks.
Indeks penelusuran akan dikenai biaya penyimpanan saat aktif.
Anda dapat menemukan ukuran penyimpanan indeks dalam
tampilan INFORMATION_SCHEMA.SEARCH_INDEXES.
Peran dan izin
Untuk membuat indeks penelusuran, Anda memerlukan
izin IAM bigquery.tables.createIndex
pada tabel tempat Anda membuat indeks. Untuk melepas indeks penelusuran, Anda memerlukan
izin bigquery.tables.deleteIndex. Setiap peran IAM yang telah ditetapkan berikut
menyertakan izin yang diperlukan untuk menggunakan
indeks penelusuran:
- BigQuery Data Owner (
roles/bigquery.dataOwner) - BigQuery Data Editor (
roles/bigquery.dataEditor) - BigQuery Admin (
roles/bigquery.admin)
Batasan
- Anda tidak dapat membuat indeks penelusuran secara langsung pada tampilan atau tampilan terwujud, tetapi
memanggil
fungsi
SEARCHpada tampilan tabel terindeks akan menggunakan fungsi indeks pencarian Google. - Anda tidak dapat membuat indeks penelusuran pada tabel eksternal.
- Jika Anda mengganti nama tabel setelah membuat indeks penelusuran di dalamnya, indeks tersebut menjadi tidak valid.
- Fungsi
SEARCHdidesain untuk pencarian titik. Penelusuran fuzzy, koreksi kesalahan ketik, karakter pengganti, dan jenis penelusuran dokumen lainnya tidak tersedia. - Jika indeks penelusuran belum mencapai cakupan 100%, Anda tetap akan dikenakan biaya untuk semua
penyimpanan indeks yang dilaporkan dalam
tampilan
INFORMATION_SCHEMA.SEARCH_INDEXES. - Kueri yang menggunakan fungsi
SEARCHatau dioptimalkan oleh indeks penelusuran tidak akan dipercepat oleh BigQuery BI Engine. Indeks penelusuran tidak digunakan jika tabel yang diindeks diubah oleh pernyataan DML, tetapi dapat digunakan jika predikat yang dapat dioptimalkan oleh indeks penelusuran merupakan bagian dari subkueri dalam pernyataan DML.
- Indeks penelusuran tidak digunakan dalam kueri berikut:
DELETE FROM my_dataset.indexed_table WHERE SEARCH(user_id, '123');
- Indeks penelusuran dapat digunakan di kueri berikut:
DELETE FROM my_dataset.other_table WHERE user_id IN ( SELECT user_id FROM my_dataset.indexed_table WHERE SEARCH(user_id, '123') );
Indeks penelusuran tidak digunakan jika kueri mereferensikan Tampilan Terwujud.
Indeks penelusuran tidak digunakan dalam kueri transaksi multi-pernyataan.
Indeks penelusuran tidak digunakan dalam kueri perjalanan waktu.
Langkah berikutnya
- Pelajari lebih lanjut cara membuat indeks penelusuran.
- Pelajari lebih lanjut cara melakukan penelusuran di tabel dengan indeks penelusuran.