Pengantar penelusuran di BigQuery

Indeks penelusuran BigQuery memungkinkan Anda menggunakan GoogleSQL agar dengan mudah menemukan elemen data unik yang tertimbun dalam teks tidak terstruktur dan data JSON semi-terstruktur, tanpa harus mengetahui skema tabel terlebih dahulu.

Dengan indeks penelusuran, BigQuery menyediakan penyimpanan berbasis kolom dan penelusuran teks yang andal dalam satu platform, sehingga memungkinkan pencarian baris yang efisien saat Anda perlu menemukan baris data secara satuan. Kasus penggunaan yang umum adalah analisis log. Misalnya, Anda mungkin ingin mengidentifikasi baris data yang terkait dengan pengguna untuk pelaporan General Data Protection Regulation (GDPR), atau menemukan kode error tertentu dalam payload teks.

BigQuery menyimpan dan mengelola indeks, sehingga saat data tersedia di BigQuery, Anda dapat segera mengambilnya dengan SEARCH fungsi.

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.
  • 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 berisi fungsi SEARCH tidak akan dipercepat oleh BigQuery BI Engine.
  • Indeks penelusuran tidak digunakan jika tabel yang diindeks diubah oleh pernyataan DML, tetapi dapat digunakan jika fungsi SEARCH 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')
      );
    

Langkah selanjutnya