全部產品
Search
文件中心

Simple Log Service:開啟SQL獨享版

更新時間:Oct 25, 2024

當您使用SQL分析時,如果資料量較大,SQL普通版無法在一次查詢中完整掃描指定時間段內的所有日誌,返回的結果可能不包括所有匹配的資料,增加Shard可以提升讀寫能力,但只對新寫入的資料生效。您可以通過開啟SQL獨享版,增加計算資源,提升單次分析的資料量。本文為您介紹SQL獨享版的概念和如何開啟SQL獨享版。

前提條件

背景資訊

Log Service中的資料必定儲存在某一個分區(Shard)。Log Service通過限制每個Shard掃描的資料量,控制Logstore、EventStore、MetricStore的讀寫資料的能力。當使用SQL分析時,如果資料量較大,Log Service可能只返回部分匹配的結果。增加Shard數量可以提升讀寫能力,但只對新寫入的資料生效,而且會導致即時消費的用戶端過多。SQL獨享版支援更強大的SQL分析能力,可以解決這一問題,典型情境包括:

  • 分析效能要求高的情境,例如即時資料分析。

  • 長周期的資料分析情境,例如月維度資料分析。

  • 大規模業務的資料分析情境,例如千億行資料的分析。

  • 通過Log Service實現多指標多維度(SQL並發數大於15個)的報表需求情境。

SQL獨享版和SQL普通版的能力對比,請參見分析概述

計費資訊

按照查詢和分析時所使用的CPU時間計算。單位為核×小時,即1核計算資源獨享使用1小時的費用。更多資訊,請參見SQL獨享版計費案例

  • 隨用隨付:SQL獨享版費用=CPU時間(小時)×每小時單價

  • 資源套件:預付計劃資源套件,換算成資源額度(CU)進行抵扣。

開啟SQL獨享版

Log Service支援如下兩種開啟方式。

  • 單次開啟:僅當前Logstore下的查詢和分析操作,使用SQL獨享版。

  • 預設開啟:當前Project下的所有查詢和分析操作(包括警示、儀錶盤等),都使用SQL獨享版。

單次開啟SQL獨享版

  1. 登入Log Service控制台

  2. 在Project列表地區,單擊目標Project。

    image

  3. 在控制台左側,單擊日誌儲存,在日誌庫列表中單擊目標Logstore。

    image

  4. 單擊SQL獨享版表徵圖。

    image.png

預設開啟SQL獨享版

  1. 登入Log Service控制台

  2. 在Project列表地區,單擊目標Project。

    image

  3. 單擊專案概覽表徵圖。

    image.png

  4. 將滑鼠懸浮在SQL獨享版CU數上,然後單擊設定

    SQL獨享版

  5. 編輯SQL獨享版CU數面板中,開啟是否預設開啟的開關,然後單擊確定

SDK樣本

常見問題

  • 如何通過API開啟SQL獨享版?

    您可以在GetLogs介面中,通過powerSql參數或query參數開啟SQL獨享版。更多資訊,請參見GetLogs

  • 如何擷取CPU時間?

    執行查詢和分析操作後,將滑鼠懸浮在分析結果上,查看CPU時間,如下圖所示。計費

  • SQL獨享版的費用是否可控?

    Log Service通過SQL獨享版的CU數來控制SQL獨享版的費用。您可以在目標Project的概覽頁面中,配置SQL獨享版CU數,如下圖所示。

    說明

    CU(ComputeUnit)是SQL獨享版運行過程中可以並行使用的計算核心數。

    核心數

  • 使用一次SQL獨享版的費用是多少?

    在不同的資料量中執行不同的查詢和分析語句,會產生不同的SQL獨享版費用,案例如下表所示。

    查詢和分析語句

    資料量(行)

    平均每次的費用(美元

    * | select avg(double_0) from stress_s1_mil1

    40億

    0.004435

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

    40億

    0.006504

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

    40億

    0.013600

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

    40億

    0.011826

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

    40億

    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

    3億

    0.010791

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

    40億

    0.00007