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 SEARCH pada 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 SEARCH didesain 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 SEARCH atau 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