定時SQL功能用于定時分析數據、存儲聚合數據、投影與過濾數據。日志服務支持源Logstore中的數據通過定時SQL處理后存儲到目標MetricStore中。
前提條件
已采集數據到源Logstore。具體操作,請參見數據采集。
已創建源Logstore的索引。具體操作,請參見創建索引。
已創建目標MetricStore。具體操作,請參見創建MetricStore。
本文中所涉及的Logstore為Standard Logstore。更多信息,請參見管理Logstore。
操作步驟
目前,定時SQL功能在公測階段,僅收取SQL獨享版計算資源消耗費用。費用說明請參見按使用功能計費模式計費項。
登錄日志服務控制臺。
在Project列表區域,單擊目標Project。
在控制臺左側,單擊日志存儲,在日志庫列表中單擊目標Logstore。
輸入查詢和分析語句,然后單擊最近15分鐘,設置查詢和分析的時間范圍。
更多信息,請參見步驟一:輸入查詢和分析語句。
說明本步驟為定時SQL任務的預覽操作,用于驗證您所使用的查詢和分析語句是否正確,執行結果是否有數據。
在統計圖表頁簽中,單擊另存為定時SQL。
創建定時SQL任務。
在計算配置向導中,完成如下配置,然后單擊下一步。
參數
描述
任務名稱
SLS任務的唯一名稱。
顯示名稱
定時SQL任務的顯示名稱。
任務描述
定時SQL任務的描述。
資源池
日志服務提供增強型資源池用于數據分析。
增強型資源池復用SQL獨享版的計算能力,提供足夠的分析并發數,與您在控制臺上的SQL分析操作進行資源隔離。增強型資源池根據SQL分析操作所消耗的CPU時間收取費用。更多信息,請參見開啟SQL獨享版。
寫入模式
選擇日志庫導入時序庫,即表示源Logstore中的數據通過定時SQL處理后將存儲到目標MetricStore中。
SQL代碼
顯示您在步驟4中輸入的查詢和分析語句。此處的預覽操作與步驟4中的操作一致,用于驗證您所使用的查詢和分析語句是否正確,執行結果是否有數據。
SQL任務運行時,日志服務將執行該查詢和分析語句分析數據。
SQL配置
指標列
日志服務會根據您輸入的查詢和分析語句聚合數據,您可以選擇查詢和分析結果中列值為數值類型的一列或多列作為指標列。更多信息,請參見時序數據(Metric)。
Labels
日志服務會根據您輸入的查詢和分析語句聚合數據,您可以選擇查詢和分析結果中的一列或多列作為Label數據。更多信息,請參見時序數據(Metric)。
Rehash
打開Rehash開關后,您可以配置哈希列,用于將同一列值的數據寫入到一個Shard中,增強數據局部性,提升查詢效率。
哈希列的取值取決于查詢和分析結果。您可以選擇查詢和分析結果中的一列或多列作為哈希列。例如您配置哈希列為status,則status字段值相同的數據將被寫入到同一個Shard中。
時間列
如果您選擇查詢和分析結果中的時間列(列值為Unixtime時間戳,例如
atime:1627025331
),則系統將以該時間列作為時序數據的時間。如果您選擇空,則系統將以查詢和分析時間范圍中的開始時間作為時序數據的時間。
更多信息,請參見時序數據(Metric)。
附加Labels
添加靜態標簽,鍵值對形式,可用于標識指標的相關屬性。
例如配置
label_key
為app
,配置label_value
為ingress-nginx
。源Project/Logstore
顯示數據源所在的Project、Logstore。
目標
目標Region
目標Project所在地域。
目標Project
用于存儲SQL分析結果的目標Project名稱。
目標庫
用于存儲SQL分析結果的目標MetricStore名稱。
寫目標授權
您可以通過如下方式授予定時SQL任務寫數據到目標MetricStore的權限。
默認角色:授權定時SQL任務使用阿里云系統角色AliyunLogETLRole將運行結果寫入目標MetricStore。
自定義角色:授權定時SQL任務使用自定義角色將運行結果寫入目標MetricStore。
您需先授予自定義角色寫數據到目標MetricStore的權限,然后在角色ARN中輸入您自定義角色的ARN。詳細說明如下:
如果源Logstore和目標MetricStore屬于同一阿里云賬號,請參見步驟二:授予RAM角色寫目標Logstore的權限。
如果源Logstore和目標MetricStore屬于不同的阿里云賬號,請參見步驟二:授予賬號B下的RAM角色b寫目標Logstore的權限。
執行SQL授權
您可以通過如下方式授予定時SQL任務讀取源Logstore數據以及在當前Project下執行SQL分析操作的權限。
默認角色:授權定時SQL任務使用阿里云系統角色AliyunLogETLRole執行對應操作。
自定義角色:授權定時SQL任務使用自定義角色執行對應操作。
您需先授予自定義角色相關權限,然后在角色ARN中輸入您自定義角色的ARN。更多信息,請參見步驟一:授予RAM角色分析源Logstore的權限。
在調度配置向導中,完成如下配置,然后單擊確定。
參數
描述
調度間隔
調度定時SQL任務的頻率,每調度一次定時SQL任務產生一個執行實例。調度間隔決定每個執行實例的調度時間。
每小時:每小時調度一次定時SQL任務。
每天:在每天的某個固定時間點調度一次定時SQL任務。
每周:在周幾的某個固定時間點調度一次定時SQL任務。
固定間隔:按照固定間隔調度定時SQL任務。
Cron:通過Cron表達式指定時間間隔,按照指定的時間間隔調度定時SQL任務。
Cron表達式的最小精度為分鐘,24小時制,例如0 0/1 * * *表示從00:00開始,每隔1小時運行一次。
當您需要配置時區時,需選擇Cron模式。常見的時區列表請參見時區列表。
調度時間范圍
調度的時間范圍,具體說明如下:
某時間開始:指定第一個實例被調度的開始時間。
特定時間范圍:指定實例被調度的起止時間,即定時SQL任務僅在該時間范圍內可被執行。
說明實例的調度時間必須在該范圍內,超出該范圍時,定時SQL任務不再產生新實例。
調度時間范圍是指
__time__
。更多詳情請參見保留字段。
SQL時間窗口
定時SQL任務運行時,僅分析該時間范圍內的日志。時間窗口與實例調度時間共同作用生效。該時間范圍不能大于調度間隔的5倍且不能超過1天。更多信息,請參見時間表達式語法。
例如,調度間隔為固定間隔10分鐘,起始時間為2021-04-01 00:00:00,延遲執行為30秒,SQL時間窗口為[@m-10m,@m),則SQL任務運行時,在00:00:30時刻生成第一個執行實例,分析的是
[23:50:00~00:00:00)
期間的日志。更多信息,請參見調度與執行場景。說明SQL時間窗口是指
__time__
,更多詳情請參見保留字段。如果未在SQL代碼中定義
__time__
,則寫入目標Logstore或的MetricStore日志時間__time__
會默認使用調度的開始時間。
SQL超時
執行SQL分析操作失敗時自動重試的閾值。當重試時間超過指定的最大時間或者重試次數超過最大次數時,該執行實例結束,狀態為失敗。您可以根據失敗原因,手動重試該實例。具體操作,請參見重試定時SQL任務實例。
延遲執行
調度時間點往后延遲執行的時間。取整范圍:0~120,單位:秒。
當數據寫入MetricStore存在延遲等情況時,可通過延遲執行來保證數據的完整性。
創建定時SQL任務后,您可以到目標MetricStore中查看SQL執行結果數據。