All Products
Search
Document Center

Simple Log Service:Mode SQL akurasi penuh

Last Updated:Sep 12, 2026

Mode akurasi penuh memastikan hasil kueri yang tepat dan lengkap dengan mengizinkan kueri berjalan lebih lama, alih-alih dipotong saat batas sumber daya tercapai.

Batasan

Mode akurasi penuh tidak didukung untuk fitur-fitur berikut:

Cara kerja

Mode akurasi penuh mengonversi berbagai batasan sumber daya, seperti I/O dan CPU, menjadi satu batas berbasis waktu. Jika suatu kueri mencapai batas sumber daya, sistem akan melakukan throttle ke laju yang berkelanjutan alih-alih menghentikannya, sehingga kueri dapat berjalan hingga selesai atau sampai timeout tercapai. Mode ini menggunakan alokasi task dalam resource pool terisolasi, prioritisasi antrian berbasis pengguna, dan load balancing untuk menjadwalkan sumber daya secara efisien.

Kueri standar berjalan di compute pool standar dan langsung dipotong saat batas sumber daya tercapai, yang dapat menyebabkan hasil tidak akurat. Dengan mode akurasi penuh diaktifkan, kueri berjalan di compute pool khusus di mana sistem menjaga task tetap berjalan pada laju yang berkelanjutan hingga semua data dimuat dan komputasi selesai.

Prasyarat

Prosedur

Anda dapat mengaktifkan mode akurasi penuh untuk operasi kueri dan analisis tertentu dalam Logstore tertentu.

Catatan

Anda dapat mengonfigurasi timeout maksimum untuk mode akurasi penuh melalui Konsol, API, atau SDK. Timeout maksimum untuk pernyataan analitik adalah 55 detik.

Konsol

  1. Masuk ke Konsol Simple Log Service.

  2. Pada bagian Projects, klik project yang diinginkan.

    image

  3. Pada tab Log Storage > Logstores, klik logstore yang diinginkan.

    image

  4. Klik image > Completely Accurate.

    Penting

    Anda dapat menyesuaikan timeout dengan mengatur parameter query_max_run_time.

    Misalnya, jika pernyataan analitik Anda adalah * | select count(*) as pv, tambahkan set session query_max_run_time=10s; ke pernyataan tersebut. Pernyataan analitik lengkap menjadi * | set session query_max_run_time=10s; select count(*) as pv.

    image

API

  • GetLogs (mengembalikan hasil tidak terkompresi) - Menanyakan data log dalam Logstore

    • Parameter: query

      Misalnya, pernyataan analitik adalah * | select count(*) as pv.

      • Aktifkan mode akurasi penuh: Tambahkan di awal set session allow_incomplete=false; pada pernyataan analitik Anda. Misalnya, * | select count(*) as pv menjadi * | set session allow_incomplete=false; select count(*) as pv.

      • Atur timeout analisis kueri: Tambahkan set session query_max_run_time=10s; ke pernyataan analisis. Ini mengatur waktu eksekusi maksimum menjadi 10s. Pernyataan analisisnya adalah: * | set session allow_incomplete=false; select count(*) as pv.

      • Untuk mengaktifkan mode akurasi penuh dan mengatur timeout, tambahkan perintah session di awal pernyataan analitik Anda. Contohnya: * | set session allow_incomplete=false; set session query_max_run_time=10s; select count(*) as pv.

  • GetLogsV2 (mengembalikan hasil terkompresi) - Menanyakan data log dalam Logstore

    • Parameter: query

      Misalnya, pernyataan analitik adalah * | select count(*) as pv.

      • Aktifkan mode akurasi penuh: Tambahkan di awal set session allow_incomplete=false; pada pernyataan analitik Anda. Misalnya, * | select count(*) as pv menjadi * | set session allow_incomplete=false; select count(*) as pv.

      • Atur timeout analisis kueri: Tambahkan set session query_max_run_time=10s; ke pernyataan analisis. Ini mengatur waktu eksekusi maksimum menjadi 10s. Pernyataan analisisnya adalah: * | set session allow_incomplete=false; select count(*) as pv.

      • Untuk mengaktifkan mode akurasi penuh dan mengatur timeout, tambahkan perintah session di awal pernyataan analitik Anda. Contohnya: * | set session allow_incomplete=false; set session query_max_run_time=10s; select count(*) as pv.

SDK

Bagian ini menggunakan Simple Log Service SDK untuk Java sebagai contoh.

Prasyarat

Anda telah menginstal Simple Log Service SDK untuk Java. Untuk informasi selengkapnya, lihat Instal Simple Log Service SDK untuk Java.

  • Metode GetLogs()

    • Parameter: query

      Misalnya, pernyataan analitik adalah * | select count(*) as pv.

      • Aktifkan mode akurasi penuh: Tambahkan di awal set session allow_incomplete=false; pada pernyataan analitik Anda. Misalnya, * | select count(*) as pv menjadi * | set session allow_incomplete=false; select count(*) as pv.

      • Atur timeout analisis kueri: Tambahkan set session query_max_run_time=10s; ke pernyataan analisis. Ini mengatur waktu eksekusi maksimum menjadi 10s. Pernyataan analisisnya adalah: * | set session allow_incomplete=false; select count(*) as pv.

      • Untuk mengaktifkan mode akurasi penuh dan mengatur timeout, tambahkan perintah session di awal pernyataan analitik Anda. Contohnya: * | set session allow_incomplete=false; set session query_max_run_time=10s; select count(*) as pv.

    • Parameter: session

      • Aktifkan mode akurasi penuh: request.SetSession("allow_incomplete=false");.

      • Atur timeout kueri: request.SetSession("query_max_run_time=10s");.

      • Aktifkan mode akurasi penuh dan atur timeout: request.SetSession("allow_incomplete=false;query_max_run_time=10s").

    import com.aliyun.openservices.log.Client;
    import com.aliyun.openservices.log.exception.LogException;
    import com.aliyun.openservices.log.request.GetLogsRequest;
    import com.aliyun.openservices.log.response.GetLogsResponse;
    
    public class CrearteLogStore {
        public static void main(String[] args) throws LogException {
            // Contoh ini mengambil ID AccessKey dan AccessKey Secret dari variabel lingkungan.
            String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
            String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
            // Tetapkan endpoint untuk Simple Log Service. Contoh ini menggunakan endpoint untuk wilayah China (Beijing). Ganti dengan endpoint aktual Anda.
            String host = "https://cn-beijing.log.aliyuncs.com";
            // Buat client Simple Log Service.
            Client client = new Client(host, accessId, accessKey);
            // Tentukan nama Project.
            String projectName = "aliyun-test-project";
            // Tentukan nama Logstore.
            String logstore = "request_log";
            String query = "* | SELECT count(0)";
            int from = (int)(System.currentTimeMillis()/1000) - 60;
            int to = (int)(System.currentTimeMillis()/1000);
            GetLogsRequest request = new GetLogsRequest(projectName, logstore, from, to, "", query);
            request.SetSession("allow_incomplete=false;query_max_run_time=10s");
            GetLogsResponse response = client.GetLogs(request);
            System.out.println(response.getCpuSec());
        }
    }

FAQ

  • Bagaimana cara memeriksa waktu CPU?

    Setelah menjalankan kueri, arahkan kursor ke Analysis Results untuk melihat waktu CPU. Kolom Consumed CPU Time di panel statistik kanan atas menampilkan waktu CPU dalam satuan detik.

  • Biaya kueri Dedicated SQL

    Biaya bervariasi tergantung volume data dan kompleksitas kueri.

    Pernyataan kueri

    Volume data (baris)

    Biaya per eksekusi (USD)

    * | select avg(double_0) from stress_s1_mil1

    4 miliar

    0,004435

    * | select avg(double_0), sum(double_0), max(double_0), min(double_0), count(double_0) from stress_s1_mil1

    4 miliar

    0,006504

    * | select avg(double_0), sum(double_1), max(double_2), min(double_3), count(double_4) from stress_s1_mil1

    4 miliar

    0,013600

    * | select key_0 , avg(double_0) as pv from stress_s1_mil1 group by key_0 order by pv desc limit 1000

    4 miliar

    0,011826

    * | select long_0, avg(double_0) as pv from stress_s1_mil1 group by long_0 order by pv desc limit 1000

    4 miliar

    0,011087

    * | select long_0, long_1, avg(double_0) as pv from stress_s1_mil1 group by long_0,long_1 order by pv desc limit 1000

    300 juta

    0,010791

    * | select avg(double_0) from stress_s1_mil1 where key_0='key_987'

    4 miliar

    0,00007