全部產品
Search
文件中心

Simple Log Service:加工結果輸出配置

更新時間:Jul 07, 2026

本文主要介紹資料加工(新版)輸出配置。

資料集說明

資料加工(新版)任務中引用SPL規則中定義的資料集,將其寫入特定的一個或多個目標,其中命名資料集通過其名稱引用,未命名資料集則通過標識符__UNNAMED__引用。Log ServiceSPL文法中資料集定義詳情請參見通用參考

樣本

資料加工任務結果包含兩個結果集valid__UNNAMED__

-- 輸出非命名資料集__UNNAMED__
*
| where mode is null;

-- 定義命名資料集src,不輸出
.let src = * 
| where mode is not null;

-- 定義資料集valid,不輸出
.let valid = $src
| where mode = 'a'
| parse-regexp content, '(\S+)\s+(\S+)\s+(\S+)' as x, y, z
| project x, y, z;

-- 輸出命名資料集valid
$valid; 

-- 輸出非命名資料集__UNNAMED__
$src
| where mode = 'b'
| parse-csv content as u, v
| project u, v;

動態目標Project/LogStore輸出

資料加工(新版)支援SPL規則動態指定加工結果輸出的目標Project/LogStore,相關保留欄位定義如下:

保留欄位

說明

__tag__:__sls_etl_output_project__

動態輸出目標Project

__tag__:__sls_etl_output_logstore__

動態輸出目標LogStore

警告

請勿將目標庫配置為當前源庫(即同源配置),否則可能導致日誌被迴圈寫入,產生額外的儲存與流量費用。由此造成的資源消耗及相關費用,將由使用者自行承擔。

樣本

  • 樣本1:

    指定加工結果的目標Project為欄位dst_project對應的值。

    | extend "__tag__:__sls_etl_output_project__"=dst_project

  • 樣本2:

    指定加工結果的目標LogStore為字串拼接結果。

    | extend "__tag__:__sls_etl_output_logstore__"=concat('log-', cast(status as VARCHAR))

指定HashKey輸出

資料加工(新版)支援SPL規則動態指定Hash將加工結果路由輸出至SLS LogStore的特定Shard,關於Hash Key路由寫入Shard詳情請參見寫入日誌

相關保留欄位定義如下:

__tag__:__sls_etl_output_hash_key__欄位表示將加工結果寫入目標LogStore時指定的Hash Key。

樣本:限制 Hash 範圍(推薦生產環境使用)

在實際生產中,為了適配固定數量(如 256、1024)的下遊消費分區,建議通過截取和固定尾碼的方式,將 HashKey 收斂到指定區間內:

情境:收斂到 256 個固定 Shard 錨點

通過截取 MD5 的前 2 位,後面用 0 補齊 32 位。這樣無論資料量多大,資料永遠只會寫入 256 個固定的 Hash 邊界內,極大方便資料加工進行彙總處理,最佳化資料處理速度。

| extend "__tag__:__sls_etl_output_hash_key__" = concat(substring(to_hex(md5(to_utf8(field))), 1, 2), '000000000000000000000000000000')