Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Pengantar penelusuran di BigQuery
Indeks penelusuran BigQuery memungkinkan Anda menggunakan GoogleSQL untuk
menemukan elemen data unik yang tertimbun dalam teks tidak terstruktur dan data JSON
semi-terstruktur secara efisien, 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 Anda, sehingga saat data
tersedia di BigQuery, Anda dapat segera mengambilnya dengan
fungsi SEARCH
atau operator dan fungsi lainnya,
seperti operator sama dengan (=), IN, atau LIKE serta fungsi string dan JSON
tertentu. 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.
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 menggunakan fungsi SEARCH atau dioptimalkan oleh indeks penelusuran
tidak 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:
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-25 UTC."],[[["\u003cp\u003eBigQuery search indexes enable efficient searching of unstructured text and semi-structured JSON data using GoogleSQL, even without prior knowledge of table schemas.\u003c/p\u003e\n"],["\u003cp\u003eThese indexes facilitate row lookups, making them useful for tasks such as log analytics, GDPR compliance, and identifying specific error codes.\u003c/p\u003e\n"],["\u003cp\u003eBigQuery manages the indexes, allowing for immediate data retrieval through the \u003ccode\u003eSEARCH\u003c/code\u003e function and other operators like \u003ccode\u003e=\u003c/code\u003e, \u003ccode\u003eIN\u003c/code\u003e, or \u003ccode\u003eLIKE\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eUsing search indexes for indexed tables below a certain size limit in your region incurs no processing costs for building or refreshing the index, however storage costs for active indexes do apply.\u003c/p\u003e\n"],["\u003cp\u003eSearch indexes have limitations, they cannot be directly applied to views or materialized views, they do not allow fuzzy searching or typo correction, and aren't utilized during DML statements on the indexed table itself, among other limitations.\u003c/p\u003e\n"]]],[],null,["# Introduction to search in BigQuery\n==================================\n\n| **Note:** This feature may not be available when using reservations that are created with certain BigQuery editions. For more information about which features are enabled in each edition, see [Introduction to\n| BigQuery editions](/bigquery/docs/editions-intro).\n\nBigQuery search indexes let you use GoogleSQL to\nefficiently find\nunique data elements that are buried in unstructured text and semi-structured\nJSON data, without having to know the table schemas in advance.\n\nWith search indexes, BigQuery provides a powerful columnar store\nand text search in one platform, enabling efficient row lookups when you need to\nfind individual rows of data. A common use case is log analytics. For example,\nyou might want to identify the rows of data associated with a user for General\nData Protection Regulation (GDPR) reporting, or to find specific error codes in\na text payload.\n\nBigQuery stores and manages your indexes, so that when data becomes\navailable in BigQuery, you can immediately retrieve it with the\n[`SEARCH` function](/bigquery/docs/reference/standard-sql/search_functions#search)\nor [other operators and functions](/bigquery/docs/search#operator_and_function_optimization),\nsuch as the equal (`=`), `IN`, or `LIKE` operators and certain string and JSON\nfunctions. To optimize your searches, read about\n[best practices](/bigquery/docs/search#best_practices).\n| **Important:** Join the [Search discussion group](https://groups.google.com/g/bq-search) to post questions and comments, and to follow the latest updates.\n\nUse cases\n---------\n\nBigQuery search indexes help you perform the following tasks:\n\n- Search system, network, or application logs stored in BigQuery tables.\n- Identify data elements for deletion to comply with regulatory processes.\n- Support developer troubleshooting.\n- Perform security audits.\n- Create a dashboard that requires highly selective search filters.\n- Search pre-processed data for exact matches.\n\nFor more information, see\n[Create a search index](/bigquery/docs/search-index) and\n[Search with an index](/bigquery/docs/search).\n\nPricing\n-------\n\nThere is no charge for the processing required to build and refresh your search\nindexes when the total size of indexed tables in your organization is below\nyour region's\n[limit](/bigquery/quotas#index_limits). To support indexing beyond this limit,\nyou need to\n[provide your own reservation](/bigquery/docs/search-index#use_your_own_reservation)\nfor handling the index-management jobs.\nSearch indexes incur storage costs when they are active.\nYou can find the index storage size in the\n[`INFORMATION_SCHEMA.SEARCH_INDEXES` view](/bigquery/docs/information-schema-indexes).\n\nRoles and permissions\n---------------------\n\nTo create a search index, you need the\n[`bigquery.tables.createIndex` IAM permission](/bigquery/docs/access-control#bq-permissions)\non the table where you're creating the index. To drop a search index, you need\nthe `bigquery.tables.deleteIndex` permission. Each of the following predefined\nIAM roles includes the permissions that you need to work with\nsearch indexes:\n\n- BigQuery Data Owner (`roles/bigquery.dataOwner`)\n- BigQuery Data Editor (`roles/bigquery.dataEditor`)\n- BigQuery Admin (`roles/bigquery.admin`)\n\nLimitations\n-----------\n\n- You can't create a search index directly on a view or materialized view, but calling the [`SEARCH` function](/bigquery/docs/reference/standard-sql/search_functions#search) on a view of an indexed table makes use of the underlying search index.\n- You can't create a search index on an external table.\n- If you rename a table after you create a search index on it, the index becomes invalid.\n- The `SEARCH` function is designed for point lookups. Fuzzy searching, typo correction, wildcards, and other types of document searches are not available.\n- If the search index is not yet at 100% coverage, you are still charged for all index storage that is reported in the [`INFORMATION_SCHEMA.SEARCH_INDEXES` view](/bigquery/docs/information-schema-indexes).\n- Queries that use the `SEARCH` function or are optimized by search indexes are not accelerated by [BigQuery BI Engine](/bigquery/docs/bi-engine-intro).\n- Search indexes are not used when the indexed table is modified by a DML\n statement, but they can be used when the predicate that is optimizable by\n search indexes is part of a subquery in a DML statement.\n\n - A search index is not used in the following query:\n\n ```googlesql\n DELETE FROM my_dataset.indexed_table\n WHERE SEARCH(user_id, '123');\n ```\n - A search index can be used in the following query:\n\n ```googlesql\n DELETE FROM my_dataset.other_table\n WHERE\n user_id IN (\n SELECT user_id\n FROM my_dataset.indexed_table\n WHERE SEARCH(user_id, '123')\n );\n ```\n- Search indexes are not used when the query references [Materialized Views](/bigquery/docs/materialized-views-intro).\n\n- Search indexes are not used in a [multi-statement transaction query](/bigquery/docs/transactions).\n\n- Search indexes are not used in a [time-travel query](/bigquery/docs/time-travel).\n\nWhat's next\n-----------\n\n- Learn more about [creating a search index](/bigquery/docs/search-index).\n- Learn more about [searching in a table with a search index](/bigquery/docs/search)."]]