Untuk melakukan kueri dan menganalisis log yang dikumpulkan dalam Logstore, Anda harus membuat indeks. Topik ini menjelaskan konsep dan jenis indeks di Simple Log Service, serta menunjukkan cara membuat, memperbarui, dan menonaktifkan indeks. Topik ini juga menyediakan contoh konfigurasi dan detail penagihan.
Mengapa membuat indeks?
Anda biasanya menggunakan kata kunci untuk mengambil konten dari log mentah, misalnya untuk menemukan log yang berisi curl dalam entri seperti curl/7.74.0. Jika entri log tidak diurai, entri tersebut diperlakukan sebagai satu kesatuan yang tidak cocok secara tepat dengan kata kunci curl, sehingga tidak dapat diambil oleh Simple Log Service.
Agar log dapat dicari, Anda harus memisahkannya menjadi istilah-istilah individual yang dapat dicari. Log dipisahkan menggunakan delimiter, yaitu karakter yang menentukan tempat teks log dipisahkan. Misalnya, jika Anda menggunakan delimiter \n\t\r,;[]{}()&^*#@~=<>/\?:'" untuk memisahkan log, istilah yang dihasilkan adalah curl dan 7.74.0. Simple Log Service membangun indeks berdasarkan istilah-istilah yang diekstraksi. Anda hanya dapat melakukan kueri dan menganalisis log setelah indeks dibuat.
Simple Log Service mendukung indeks teks penuh dan indeks bidang. Jika Anda mengonfigurasi keduanya untuk Logstore yang sama, konfigurasi indeks bidang akan memiliki prioritas lebih tinggi.
Jenis indeks
Indeks teks penuh
Indeks teks penuh secara langsung membagi seluruh log menjadi beberapa kata bertipe text menggunakan Delimiter. Setelah membuat indeks teks penuh, Anda dapat melakukan kueri log menggunakan kata kunci. Misalnya, pernyataan kueri Chrome or Safari menemukan log yang berisi Chrome atau Safari.
Delimiter tidak mendukung pemisahan karakter Tionghoa. Untuk menangani teks Tionghoa, aktifkan opsi Include Chinese. Layanan Log kemudian akan secara otomatis melakukan tokenisasi konten Tionghoa berdasarkan tata bahasanya.
Jika Anda hanya mengonfigurasi indeks teks penuh, Anda dapat menggunakan sintaks pencarian teks penuh. Untuk informasi selengkapnya, lihat Sintaks dan fungsi kueri.
Indeks bidang
Indeks bidang memisahkan log berdasarkan nama bidang (KEY), lalu menggunakan delimiter untuk membagi konten di dalam bidang tersebut. Indeks bidang mendukung empat tipe data: text, long, double, dan JSON. Untuk informasi selengkapnya, lihat Tipe data. Setelah membuat indeks bidang, Anda dapat melakukan kueri data dengan menentukan nama bidang dan nilai bidang (Key:Value) atau menggunakan pernyataan SELECT. Untuk informasi selengkapnya, lihat Sintaks dan fitur kueri.
Untuk melakukan kueri atau menganalisis bidang tertentu menggunakan pernyataan SELECT, Anda harus membuat indeks bidang untuknya. Indeks bidang memiliki prioritas lebih tinggi daripada indeks teks penuh. Jika keduanya dikonfigurasi untuk suatu bidang, pengaturan indeks bidang akan berlaku.
Untuk bidang bertipe data text, Anda dapat menggunakan kueri teks penuh, kueri spesifik bidang, dan pernyataan analitik (SELECT).
Jika Anda tidak mengaktifkan indeks teks penuh, kueri teks penuh hanya mencari di semua bidang bertipe text.
Jika indeks teks penuh diaktifkan, kueri teks penuh mencari di semua log.
Untuk bidang bertipe data long dan double, Anda dapat menggunakan kueri spesifik bidang dan pernyataan analitik (SELECT) untuk melakukan kueri dan analisis data.
Buat indeks
Konfigurasi indeks yang berbeda menghasilkan hasil kueri dan analisis yang berbeda. Konfigurasikan indeks Anda dengan cermat sesuai kebutuhan. Diperlukan waktu sekitar satu menit agar indeks baru berlaku.
Indeks hanya berlaku untuk data yang baru dimasukkan. Untuk melakukan kueri terhadap data historis, Anda harus reindex data tersebut.
Layanan Log secara otomatis membuat indeks untuk beberapa bidang terpesan. Untuk informasi selengkapnya, lihat bidang terpesan.
Delimiter indeks untuk
__topic__dan__source__kosong, sehingga saat melakukan kueri terhadap bidang-bidang ini, kata kunci harus merupakan kecocokan persis.Bidang yang diawali dengan
__tag__tidak mendukung pengindeksan teks penuh. Anda harus membuat indeks bidang bertipe text sebelum dapat melakukan operasi pencarian dan analisis, seperti*| select "__tag__:__receive_time__".Jika log berisi beberapa bidang dengan nama yang sama, misalnya
request_time, Layanan Log menampilkan salah satunya sebagairequest_time_0di Konsol. Namun, nama bidang dasarnya tetaprequest_time. Oleh karena itu, saat membuat indeks, melakukan kueri, menganalisis, mengirim, atau mentransformasi data, Anda harus menggunakan nama bidang aslirequest_time.
Konsol
API
SDK
CLI
Perbarui indeks
Prosedur
Nonaktifkan indeks
Setelah Anda Disable indeks, Layanan Log secara otomatis melepaskan penyimpanan untuk data indeks historis saat periode retensi Logstore berakhir.
Prosedur
Contoh konfigurasi indeks
Contoh 1
Konten log berisi bidang request_time. Anda dapat menjalankan kueri request_time>100.
Dengan hanya indeks teks penuh, pencarian mengembalikan log yang berisi tiga istilah
request_time,>(bukan delimiter), dan100.Membuat indeks bidang hanya untuk tipe double dan long, serta mengembalikan log di mana
request_timelebih besar dari 100.Jika Anda membuat indeks teks penuh dan indeks bidang untuk tipe double dan long, indeks teks penuh untuk
request_timediabaikan, dan kueri mengembalikan log di manarequest_timelebih besar dari 100.
Contoh 2
Karena konten log berisi bidang request_time, Anda dapat menjalankan kueri teks penuh request_time.
Jika Anda hanya membuat indeks bidang bertipe data
doubleataulong, tidak ada log yang relevan yang dikembalikan.Anda dapat membuat hanya indeks teks penuh untuk melakukan kueri log yang berisi
request_timedari seluruh teks log.Lakukan kueri log yang berisi
request_timedari bidang yang memiliki indeks bidang bertipetext.
Contoh 3
Konten log berisi bidang status. Jalankan pernyataan analisis * | SELECT status, count(*) AS PV GROUP BY status.
Jika Anda hanya membuat indeks teks penuh, tidak ada log yang relevan yang dikembalikan.
Membuat indeks bidang untuk
statusmengembalikan kode status yang berbeda dan total PV-nya.
Trafik indeks
Indeks teks penuh
Semua nama bidang dan nilai dihitung sebagai index traffic.
Indeks bidang
Perhitungan index traffic bervariasi berdasarkan data type bidang.
Tipe text: Nama bidang dan nilai keduanya dihitung sebagai
index traffic.Tipe long dan double: Nama bidang tidak dihitung sebagai
index traffic. Setiap nilai bidang menyumbang 8 byte keindex traffic.Misalnya, jika indeks dibuat pada bidang
status(tipe long) dan nilainya adalah200, stringstatustidak dihitung sebagai trafik indeks. Trafik indeks untuk nilai200adalah 8 byte tetap.Tipe JSON: Nama bidang dan nilai keduanya dihitung sebagai
index traffic, termasuk sub-key yang tidak secara eksplisit diindeks. Untuk informasi selengkapnya, lihat Bagaimana cara menghitung trafik indeks untuk bidang JSON?Jika sub-key tidak diindeks,
index traffic-nya dihitung seolah-olah bertipe text.Jika sub-key diindeks,
index traffic-nya dihitung berdasarkan tipe data yang ditentukan (text, long, atau double).
Penagihan
Logstore dalam mode bayar-per-data-yang-dimasukkan
Indeks menempati ruang penyimpanan. Untuk informasi selengkapnya tentang jenis penyimpanan, lihat Kelola penyimpanan tier cerdas.
Pengindeksan ulang data tidak dikenai biaya.
Untuk informasi selengkapnya tentang biaya
index traffic, lihat Item yang dapat ditagih untuk mode bayar-per-data-yang-dimasukkan.
Logstore dalam mode bayar-per-fitur
Indeks menempati ruang penyimpanan. Untuk informasi selengkapnya tentang jenis penyimpanan, lihat Kelola penyimpanan tier cerdas.
Membuat indeks menghasilkan trafik. Trafik
index trafficini dikenai biaya. Untuk informasi selengkapnya, lihat Item yang dapat ditagih untuk mode bayar-per-fitur. Untuk saran cara mengurangi biayaindex traffic, lihat Bagaimana cara mengurangi biaya trafik indeks?Pengindeksan ulang data dikenai biaya. Item yang dapat ditagih dan harganya sama dengan saat membuat indeks.
Langkah selanjutnya
Untuk contoh kueri dan analisis, lihat topik berikut:
Untuk mengoptimalkan kinerja kueri, lihat Metode untuk meningkatkan kecepatan kueri dan analisis log.
Untuk melakukan kueri dan analisis log website dalam format JSON, lihat Kueri dan analisis log JSON.







