全部產品
Search
文件中心

Simple Log Service:從OSS擷取CSV檔案進行資料富化

更新時間:Jun 30, 2024

本文檔介紹如何通過資源函數和映射富化函數從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"),表示從進階參數配置中擷取。進階參數配置操作步驟請參見建立資料加工任務AccessKey

    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: 多弗朗明哥