Tam doğruluk modu, kaynak sınırlarına ulaşıldığında sorguları kesmek yerine daha uzun süre çalıştırarak hassas ve eksiksiz sonuçlar elde etmenizi sağlar.
Sınırlamalar
Aşağıdaki özellikler tam doğruluk modunu desteklemez:
Çalışma Prensibi
Tam doğruluk modu; G/Ç ve CPU gibi çeşitli kaynak kısıtlamalarını tek bir zaman tabanlı sınıra dönüştürür. Bir sorgu kaynak sınırına ulaştığında sistem sorguyu sonlandırmak yerine sürdürülebilir bir hızda çalıştırır. Bu sayede sorgu, tamamlanana kadar veya zaman aşımına ulaşılana kadar devam eder. Bu mod, kaynakları verimli planlamak için yalıtılmış kaynak havuzlarında görev ataması, kullanıcı tabanlı kuyruk önceliklendirmesi ve yük dengeleme yöntemlerini kullanır.
Standart sorgular standart bir hesaplama havuzunda çalışır ve bir kaynak sınırına ulaşıldığında hemen kesilir; bu durum hatalı sonuçlara yol açabilir. Tam doğruluk modu etkinleştirildiğinde sorgular özel bir hesaplama havuzunda çalışır. Sistem, tüm veriler yüklenip hesaplama tamamlanana kadar görevi sürdürülebilir bir hızda çalıştırmaya devam eder.
Ön Koşullar
Bir Standart günlük deposu (Logstore) oluşturmuş olmanız gerekir. Daha fazla bilgi için bkz. Temel LogStore Oluşturma.
Günlükleri toplamış olmanız gerekir. Daha fazla bilgi için bkz. Veri Toplama.
Dizinleri yapılandırmış olmanız gerekir. Daha fazla bilgi için bkz. Dizinleri Yapılandırma.
Yordam
Belirli bir Logstore içindeki bireysel sorgu ve analiz işlemleri için tam doğruluk modunu etkinleştirebilirsiniz.
Konsol, API veya SDK kullanarak tam doğruluk modu için maksimum zaman aşımını yapılandırabilirsiniz. Bir analiz deyimi için maksimum zaman aşımı 55 saniyedir.
Konsol
Simple Log Service konsoluna oturum açın.
-
Projeler bölümünde istediğiniz projeyi tıklayın.

-
sekmesinde istediğiniz günlük deposunu tıklayın.

-
öğesini tıklayın.
Önemliquery_max_run_timeparametresini ayarlayarak zaman aşımını değiştirebilirsiniz.Örneğin, analiz deyimimiz
* | select count(*) as pvise deyimeset session query_max_run_time=10s;ekleyebiliriz. Tam analiz deyimi şu hale gelir:* | set session query_max_run_time=10s; select count(*) as pv.
API
-
GetLogs (sıkıştırılmamış sonuçlar döndürür) - Logstore'daki günlük verilerini sorgular
-
Parametre:
queryÖrneğin, analiz deyimi
* | select count(*) as pvşeklindedir.Tam doğruluk modunu etkinleştirme: Analiz deyiminden önce
set session allow_incomplete=false;ifadesini ekleyin. Örneğin,* | select count(*) as pvdeyimi* | set session allow_incomplete=false; select count(*) as pvhaline gelir.Sorgu analizi zaman aşımını ayarlama: Analiz deyimine
set session query_max_run_time=10s;ekleyin. Bu işlem maksimum yürütme süresini10solarak ayarlar. Analiz deyimi şöyledir:* | set session allow_incomplete=false; select count(*) as pv.Tam doğruluk modunu etkinleştirmek ve zaman aşımı ayarlamak için oturum komutlarını analiz deyiminizin başına ekleyin. Örnek:
* | set session allow_incomplete=false; set session query_max_run_time=10s;select count(*) as pv.
-
-
GetLogsV2 (sıkıştırılmış sonuçlar döndürür) - Logstore'daki günlük verilerini sorgular
-
Parametre:
queryÖrneğin, analiz deyimi
* | select count(*) as pvşeklindedir.Tam doğruluk modunu etkinleştirme: Analiz deyiminden önce
set session allow_incomplete=false;ifadesini ekleyin. Örneğin,* | select count(*) as pvdeyimi* | set session allow_incomplete=false; select count(*) as pvhaline gelir.Sorgu analizi zaman aşımını ayarlama: Analiz deyimine
set session query_max_run_time=10s;ekleyin. Bu işlem maksimum yürütme süresini10solarak ayarlar. Analiz deyimi şöyledir:* | set session allow_incomplete=false; select count(*) as pv.Tam doğruluk modunu etkinleştirmek ve zaman aşımı ayarlamak için oturum komutlarını analiz deyiminizin başına ekleyin. Örnek:
* | set session allow_incomplete=false; set session query_max_run_time=10s;select count(*) as pv.
-
SDK
Bu bölümde örnek olarak Java için Simple Log Service SDK'sı kullanılmıştır.
Ön Koşullar
Java için Simple Log Service SDK'sını yüklemiş olmanız gerekir. Daha fazla bilgi için bkz. Java için Simple Log Service SDK'sını Yükleme.
-
GetLogs() yöntemi
-
Parametre:
queryÖrneğin, analiz deyimi
* | select count(*) as pvşeklindedir.Tam doğruluk modunu etkinleştirme: Analiz deyiminden önce
set session allow_incomplete=false;ifadesini ekleyin. Örneğin,* | select count(*) as pvdeyimi* | set session allow_incomplete=false; select count(*) as pvhaline gelir.Sorgu analizi zaman aşımını ayarlama: Analiz deyimine
set session query_max_run_time=10s;ekleyin. Bu işlem maksimum yürütme süresini10solarak ayarlar. Analiz deyimi şöyledir:* | set session allow_incomplete=false; select count(*) as pv.Tam doğruluk modunu etkinleştirmek ve zaman aşımı ayarlamak için oturum komutlarını analiz deyiminizin başına ekleyin. Örnek:
* | set session allow_incomplete=false; set session query_max_run_time=10s;select count(*) as pv.
-
Parametre:
sessionTam doğruluk modunu etkinleştirme:
request.SetSession("allow_incomplete=false");.Sorgu zaman aşımını ayarlama:
request.SetSession("query_max_run_time=10s");.Tam doğruluk modunu etkinleştirme ve zaman aşımı ayarlama:
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 { // This example obtains the AccessKey ID and AccessKey Secret from environment variables. String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); // Set the endpoint for Simple Log Service. This example uses the endpoint for the China (Beijing) region. Replace it with your actual endpoint. String host = "https://cn-beijing.log.aliyuncs.com"; // Create a Simple Log Service client. Client client = new Client(host, accessId, accessKey); // Specify the Project name. String projectName = "aliyun-test-project"; // Specify the Logstore name. 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()); } } -
SSS
-
CPU süresini nasıl kontrol edebilirim?
Bir sorgu çalıştırdıktan sonra Analysis Results üzerine gelerek CPU süresini görüntüleyebilirsiniz. Sağ üstteki istatistik panelindeki Consumed CPU Time alanı CPU süresini saniye cinsinden gösterir.
-
Özel SQL sorgusunun maliyeti
Maliyet, veri hacmine ve sorgu karmaşıklığına göre değişir.
Sorgu deyimi
Veri hacmi (satır)
Çalıştırma başına maliyet (USD)
* | select avg(double_0) from stress_s1_mil14 milyar
0.004435
* | select avg(double_0), sum(double_0), max(double_0), min(double_0), count(double_0) from stress_s1_mil14 milyar
0.006504
* | select avg(double_0), sum(double_1), max(double_2), min(double_3), count(double_4) from stress_s1_mil14 milyar
0.013600
* | select key_0 , avg(double_0) as pv from stress_s1_mil1 group by key_0 order by pv desc limit 10004 milyar
0.011826
* | select long_0, avg(double_0) as pv from stress_s1_mil1 group by long_0 order by pv desc limit 10004 milyar
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 1000300 milyon
0.010791
* | select avg(double_0) from stress_s1_mil1 where key_0='key_987'4 milyar
0.00007
> Completely Accurate