本文介紹資料加工(新版)與資料加工(舊版)服務的差異,以及如何選擇資料加工(新版)與資料加工(舊版)。
新舊版本對比
對比項 | 資料加工(新版) | 資料加工(舊版) |
資料處理文法 | 資料處理SPL,參考SPL文法。
| 資料加工DSL,參考資料加工文法。 |
支援情境 |
|
|
建立資料加工任務(介面對比) |
|
|
來源資料LogStore消費組依賴 | 不依賴 | 依賴 |
新舊版本選擇
情境考量
目前,資料加工(新版)暫未支援資料富化等情境。如果需要從SLS LogStore,OSS Object、RDS Table等資料來源關聯維表資訊,進行IP地理位置解析,或者跨地區同步資料,請選擇資料加工(舊版)。
計費考量
通過資料加工服務的技術迭代升級,資料加工(新版)提供了更具優勢的使用成本,僅為資料加工(舊版)的1/3,具體參考按使用功能計費模式計費項目。所以,在需求情境已經支援時,推薦使用資料加工(新版)。
新舊版本文法對比
相對於資料加工(舊版)DSL語言,Log ServiceSPL文法提升了易用性,具體如下:
資料加工(舊版)DSL文法作為Python文法子集,需要函數式編程,使用過程中存在較多文法符號冗餘。相較而言,Log ServiceSPL語言是類Shell指令式文法,在最大程度減少文法符號的冗餘。
舊版本使用函數
v引用欄位值v("field"),SPL則直接引用欄位,比如| where field='ERROR'。舊版本函數調用
func(arg1, arg2),轉為SPL指令| cmd arg1, arg2,編寫更簡潔。
資料加工(舊版)DSL的定義中,欄位值固定為字串類型,類型轉換的中間結果不支援保留。SPL語言支援處理過程中臨時欄位類型保持,請參見類型保持。
資料加工(舊版):
如下DSL指令碼,需兩次調用ct_int函數。
e_set("ms", ct_float(v("sec"))*1000) e_keep(ct_float(v("ms")) > 500)資料加工(新版):
對應的SPL邏輯則更為簡潔,無需兩次轉換類型。
| extend ms=cast(sec as double)*1000 | where ms>1024複用Log ServiceSQL函數,無需額外的理解成本,詳情請參考SQL函數。