本文檔介紹如何通過資源函數和映射富化函數從OSS中擷取資料對日誌資料進行富化。
前提條件
已建立存取金鑰(AccessKey),用於訪問OSS Bucket,詳情請參見建立AccessKey。
推薦建立一個唯讀許可權的AccessKey,用於從OSS擷取檔案;一個唯寫許可權的AccessKey,用於上傳檔案到OSS。授權策略詳情請參見RAM Policy概述。
已上傳CSV檔案到OSS,詳情請參見控制台上傳檔案。
推薦使用只具有寫入權限的AccessKey進行上傳。
背景資訊
OSS是阿里雲提供的海量、安全、低成本、高可靠的雲端儲存體服務。針對更新不頻繁的資料,建議您儲存在OSS上,只需要支付少量的儲存費用即可。當您分散儲存資料,面臨日誌資料不完善時,您可以從OSS中擷取資料。Log Service資料加工支援使用res_oss_file函數從OSS中擷取資料,再使用tab_parse_csv函數構建表格,最後使用e_table_map函數進列欄位匹配,返回指定欄位和欄位值,產生新的日誌資料。
實踐案例
Logstore中的原始日誌
account : Sf24asc4ladDS
OSS Bucket中的CSV檔案資料
id
account
nickname
1
Sf24asc4ladDS
多弗朗明哥
2
Sf24asc4ladSA
凱多
3
Sf24asc4ladCD
羅傑
加工規則
通過Log ServiceLogstore中的account欄位和OSS CSV檔案中的account欄位進行匹配,只有account欄位的值完全相同,才能匹配成功。匹配成功後,返回OSS CSV檔案中的nickname欄位和欄位值,與Logstore中的資料拼接,產生新的資料。
e_table_map(tab_parse_csv(res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com', ak_id=res_local("AK_ID"), ak_key=res_local("AK_KEY"), bucket='test', file='account.csv',change_detect_interval=30)), "account","nickname")
res_oss_file函數重要欄位說明如下表所示,更多參數說明請參見資源函數。
欄位
說明
endpoint
OSS訪問網域名稱,詳情請參見res_oss_file。
ak_id
具備讀OSS許可權的AccessKey ID。
出於安全考慮,建議配置為res_local("AK_ID"),表示從進階參數配置中擷取。進階參數配置操作步驟請參見建立資料加工任務。
ak_key
具備讀OSS許可權的AccessKey Secret。
出於安全考慮,建議配置為res_local("AK_KEY"),表示從進階參數配置中擷取。
bucket
用於儲存CSV檔案的OSS Bucket。
file
目標OSS檔案的路徑。例如test/data.txt,不能以正斜線(/)開頭。
change_detect_interval
從OSS拉取檔案的時間間隔,單位:秒。拉取時會檢查檔案是否有更新,如果有更新則重新整理。預設為0,表示不重新整理,僅在程式啟動時拉取一次資料。
加工結果
account : Sf24asc4ladDS nickname: 多弗朗明哥