本文以網站訪問日誌為例,為您介紹完整的資料加工流程,協助您快速熟悉資料加工功能及其操作。
前提條件
-
已建立名為web-project的Project。具體操作,請參見管理Project。
-
在Project(web-project)中建立名為website_log的源LogStore。具體操作,請參見建立基礎LogStore。
-
已採集網站訪問日誌到源LogStore(website_log)。具體操作,請參見資料擷取。
-
在Project(web-project)中建立目標LogStore,具體說明如下:
目標LogStore
說明
website-success
將訪問成功的日誌儲存到儲存目標target-success對應的LogStore(website-success)中。
website-fail
將訪問失敗的日誌儲存到儲存目標target-fail對應的LogStore(website-fail)中。
website-etl
將其他訪問日誌儲存到儲存目標target0對應的LogStore(website-etl)中。
-
如果您使用的是RAM使用者,則需要先授予RAM使用者資料加工操作許可權。具體操作,請參見授權RAM使用者操作資料加工。
-
已配置源LogStore和目標LogStore的索引。具體操作,請參見建立索引。
重要資料加工任務不依賴索引,但若不配置索引,將無法執行查詢和分析操作。
背景資訊
某網站將其所有的訪問日誌儲存在一個LogStore中,現希望為訪問成功的日誌和訪問失敗的日誌設定不同的日誌主題,並分發到不同的LogStore中,便於分析。日誌範例如下:
body_bytes_sent:1061
http_user_agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5
remote_addr:192.0.2.2
remote_user:vd_yw
request_method:DELETE
request_uri:/request/path-1/file-5
status:207
time_local:10/Jun/2021:19:10:59
步驟一:建立資料加工任務
-
進入資料加工頁面。
在Project列表地區,單擊目標Project。
在頁簽中,單擊目標Logstore。
-
在查詢和分析頁面,單擊數據加工。
-
在頁面右上方,選擇資料的時間範圍。
選擇時間範圍後,請確認原始日誌頁簽中存在日誌。
-
在編輯框中,輸入加工語句。
e_if(e_search("status:[200,299]"),e_compose(e_set("__topic__","access_success_log"),e_output(name="target-success"))) e_if(e_search("status:[400,499]"),e_compose(e_set("__topic__","access_fail_log"),e_output(name="target-fail")))e_if函數表示當條件為真時,執行對應的操作。更多資訊,請參見e_if。
-
條件:
e_search("status:[200,299]")當status欄位值滿足條件時,執行操作1和操作2。更多資訊,請參見e_search。
-
操作1:
e_set("__topic__","access_success_log")新增__topic__欄位,並賦值access_success_log。更多資訊,請參見e_set。
-
操作2:
e_output(name="target-success", project="web-project", logstore="website-success")將加工後的資料儲存到儲存目標中,即儲存到名為website-success的LogStore中。更多資訊,請參見e_output。
-
-
預覽資料。
-
單擊快速。
Log Service支援快速預覽和進階預覽。更多資訊,請參見預覽調試。
-
單擊預覽資料。
查看預覽結果。
重要預覽時不會輸出日誌到目標LogStore中,而是輸出到名為internal-etl-log的LogStore中。internal-etl-log LogStore是您首次執行資料加工預覽時,系統在當前Project下自動建立的專屬LogStore,不支援修改配置及寫入其他資料,不收取任何費用。
單擊加工結果頁簽,確認日誌已成功輸出到 target-success,其中
__topic__欄位值為access_success_log,status欄位值為207,表示加工規則已正確匹配並分發日誌。
-
-
建立資料加工任務。
-
單擊儲存資料加工。
-
在建立資料加工任務面板,配置如下參數。
參數
說明
任務名稱
資料加工任務的名稱。
授權方式
您可以通過如下方式授予資料加工任務讀取源LogStore中資料的許可權。
-
預設角色:授予資料加工任務使用阿里雲系統角色AliyunLogETLRole來讀取源LogStore中的資料。
-
自訂角色:授予資料加工任務使用自訂角色來讀取源LogStore中的資料。
您需先授予自訂角色讀取源LogStore資料的許可權,然後在角色ARN中輸入您自訂角色的ARN。如何授權,請參見通過自訂角色訪問資料。
儲存目標
目標名稱
儲存目標的名稱。儲存目標中包括Project、LogStore等配置。
需與步驟4中所配置的name一致。
說明Log Service預設以序號1中配置的儲存目標(本案例中為target0)為預設儲存目標,用來儲存其他未合格日誌。
目標Region
選擇目標Project所在地區。
跨地區資料加工使用HTTPS協議傳輸,確保日誌資料的私密性。
跨地區資料加工使用公網傳輸資料,可能因為公網傳輸網路的不確定性導致加工任務出現延遲。您可以選中DCDN加速複選框,加快跨地區傳輸速度。在使用DCDN加速時,需確保對應的Project已開啟加速功能。更多資訊,請參見採集加速。
重要從Log Service公網網域名稱所在介面拉取資料時,會產生外網讀取流量(按照壓縮後的資料量計算)。更多資訊,請參見按使用功能計費模式計費項目。
目標Project
用於儲存資料加工結果的目標Project名稱。
目標庫
用於儲存資料加工結果的目標LogStore名稱。
授權方式
您可以通過如下方式授予資料加工任務寫目標LogStore的許可權。
-
預設角色:授予資料加工任務使用阿里雲系統角色AliyunLogETLRole將資料加工結果寫入目標LogStore。
-
自訂角色:授予資料加工任務使用自訂角色將資料加工結果寫入目標LogStore。
您需先授予自訂角色寫資料到目標LogStore的許可權,然後在角色ARN中輸入您自訂角色的ARN。如何授權,請參見通過自訂角色訪問資料。
加工範圍
時間範圍
指定資料加工任務的時間範圍,詳細說明如下:
說明此處的時間範圍依賴日誌的接收時間。
-
所有:從LogStore接收到第一條日誌的時間點開始資料加工任務,直到加工任務被手動停止。
-
某時間開始:指定資料加工任務的開始時間,從該時間點開始加工,直到加工任務被手動停止。
-
特定時間範圍:指定資料加工任務的起止時間,加工任務執行到指定時間後自動停止。
-
-
單擊確定。
-
將日誌分發到目標LogStore後,您可以在目標LogStore中執行查詢和分析操作。具體操作,請參見查詢與分析快速指引。
步驟二:查看資料加工任務
-
在左側導覽列中,選擇。
-
在資料加工工作清單中,單擊目標資料加工任務。
-
在資料加工概覽頁面,查看資料加工任務詳情。
您可以查看任務詳情與狀態,修改、啟動、停止和刪除任務等。具體操作,請參見管理資料加工任務。
資料加工任務詳情頁的基礎資訊地區顯示源日誌庫為 website-log,狀態為運行中,時間範圍為持續。消費進度表格顯示 shard 0 和 shard 1 均已正常消費。儲存目標包含 target0(website-etl)、target-success(website-success)、target-fail(website-fail)三個目標 Logstore,均位於西南1(成都)的 web-project 下。下方資料加工診斷地區顯示讀日誌數與投遞日誌數均為 12.517Mil Lines,失敗日誌數為 0 Lines,投遞日誌數佔比為 100.0%,表明資料加工任務運行正常且無資料丟失。