全部產品
Search
文件中心

Simple Log Service:建立OSS投遞任務(新版)

更新時間:Nov 13, 2024

Log Service採集到資料後,支援將資料投遞至OSS Bucket中進行儲存與分析。本文介紹建立OSS投遞任務(新版)的操作步驟。

前提條件

支援的地區說明

Log Service投遞資料到OSS為同地區投遞,即Log ServiceProject所在的地區和OSS Bucket所在地區相同。

重要

目前只支援華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北3(張家口)、華北5 (呼和浩特)、華北6(烏蘭察布)、西南1(成都)、華南1(深圳)、華南2(河源)、華南3(廣州)、中國香港、新加坡、馬來西亞(吉隆坡)、印尼(雅加達)、菲律賓(馬尼拉)、泰國(曼穀)、日本(東京)、美國(矽谷)、美國(維吉尼亞)

建立投遞任務

  1. 登入Log Service控制台

  2. 在Project列表地區,單擊目標Project。

    image

  3. 日誌儲存 > 日誌庫頁簽中,單擊目標Logstore左側的>,選擇資料處理 > 匯出 > OSS(Object Storage Service)

  4. 將滑鼠懸浮OSS(Object Storage Service)上,單擊+

  5. OSS投遞功能面板,配置如下參數,然後單擊確定

    選擇投遞版本新版,重要參數配置說明如下所示。

    重要
    • 建立OSS投遞任務後,每個Shard都會根據投遞大小、投遞時間決定投遞的頻率。當任一條件滿足時,即會執行一次投遞。

    • 建立OSS投遞任務後,您可以通過投遞任務的狀態和投遞到OSS的資料確認該投遞任務是否符合預期結果。

    參數

    說明

    任務名稱

    投遞任務的唯一名稱。

    顯示名稱

    投遞任務的顯示名稱。

    任務描述

    OSS的任務描述。

    OSS Bucket

    OSS Bucket名稱。

    重要
    • 必須是已存在且未開啟WORM的Bucket,且該Bucket與Log ServiceProject位於相同地區。關於WORM的更多資訊,請參見保留原則(WORM)

    • 支援投遞到標準、低頻訪問、歸檔、冷歸檔、深度冷Archive Storage類型的Bucket中。投遞後,產生的OSS Object的儲存類型預設與Bucket一致。更多資訊,請參見儲存類型概述

    • 非標準儲存的Bucket存在最低儲存時間和最小計量單位限制,請根據需求合理設定目標Bucket儲存類型。更多資訊,請參見儲存類型對比

    檔案投遞目錄

    OSS Bucket中的目錄。目錄名不能以正斜線(/)或者反斜線(\)開頭。

    建立OSS投遞任務後,Logstore中的資料將投遞到目標OSS Bucket的此目錄中。

    檔案尾碼

    如果您未設定檔案尾碼,則Log Service會根據儲存格式和壓縮類型自動產生尾碼。例如.suffix

    分區格式

    按照投遞時間動態產生OSS Bucket的目錄,不能以正斜線(/)開頭,預設值為%Y/%m/%d/%H/%M,相關樣本請參見分區格式,參數詳情請參見strptime API

    寫OSS RAM角色

    授予OSS投遞任務將資料寫入到OSS Bucket的許可權。

    讀Logstore RAM角色

    授予OSS投遞任務讀取Logstore資料的許可權。

    儲存格式

    資料被投遞到OSS後,支援儲存為不同的檔案格式。更多資訊,請參見CSV格式JSON格式Parquet格式ORC格式

    是否壓縮

    OSS資料存放區的壓縮方式。

    • 不壓縮(none):不壓縮資料。

    • 壓縮(snappy):使用snappy演算法壓縮資料,減少OSS Bucket的空間。更多資訊,請參見snappy

    • 壓縮(zstd):使用zstd演算法壓縮資料,減少OSS Bucket的空間。

    • 壓縮(gzip):使用gzip演算法壓縮資料,減少OSS Bucket的空間。

    是否投遞tag

    tag欄位為Log Service的保留欄位,更多資訊,請參見保留欄位

    攢批大小

    每個Shard積攢日誌量達到該值指定的大小開始投遞。通過該值控制OSS Object大小(以未壓縮計算),取值範圍為5~256,單位為MB。說明:攢批大小和攢批時間二者滿足其一開始投遞。

    攢批時間

    每個Shard從取到第一日誌時間到第n條日誌時間差值大於等於該值時開始投遞。取值範圍為300~900,預設值為300,單位為秒。說明:攢批大小和攢批時間二者滿足其一開始投遞。

    延遲投遞

    投遞資料的延遲時間。例如設定為3600,則表示資料被延遲1小時投遞,即2023/06/05 10:00:00的資料不會早於2023/06/05 11:00:00寫入到指定的OSSBucket中。相關的限制說明,請參見配置項限制

    開始時間範圍

    指定OSS投遞任務的時間範圍,此處的時間範圍依賴日誌的接收時間。詳細說明如下:

    • 所有:從Logstore接收到第一條日誌的時間點開始資料投遞,直到投遞任務被手動停止。

    • 某時間開始:指定OSS投遞任務的開始時間,從該時間點開始資料投遞,直到投遞任務被手動停止。

    • 特定時間範圍:指定OSS投遞任務的起止時間,投遞任務執行到指定結束時間後自動停止。

    說明

    時間範圍是指__tag__:__receive_time__,更多詳情請參考保留欄位

    時區選擇

    該時區用于格式化時間。

    如果您設定了時區選擇分區格式,系統將根據您的設定產生OSS Bucket的目錄。

查看OSS資料

將資料投遞到OSS成功後,您可以通過OSS控制台、API、SDK或其他方式訪問OSS資料。更多資訊,請參見檔案管理

OSS Object地址格式如下所示:

oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID

其中,OSS-BUCKET為OSS Bucket名稱,OSS-PREFIX為目錄首碼,PARTITION-FORMAT為分區格式(由投遞時間通過strptime API計算得到),RANDOM-ID是一次投遞行為的唯一標識。

說明

OSS投遞是攢批進行,每次寫一個檔案,檔案內包括一批資料,檔案路徑由該批資料中最小的receive_time(資料到達Log Service的時間)決定。投遞時需注意如下兩種情況:

  • 投遞即時資料時(假設5分鐘投遞一次),例如在2022-01-22 00:00:00進行一次投遞,其投遞的是2022-01-21 23:55後寫入Log Service某Shard的資料,所以如果您要分析2022-01-22全天的資料,需要查看OSS Bucket中2022/01/22目錄下的全部Object和確定2022/01/21目錄下最後幾個Object中是否包含2022-01-22的資料。

  • 投遞歷史資料時,如果Logstore中的資料量比較少,那麼投遞任務拉取一次資料,可能包含多天的資料,導致2022/01/22目錄下的檔案包含了2022-01-23全天的資料,2022/01/23目錄下沒有檔案。

分區格式

一次投遞對應一個OSS Object地址,其格式為oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID。以建立時間為2022/01/20 19:50:43的投遞任務為例,介紹分區格式,如下表所示。

OSS Bucket

OSS Prefix

分區格式

檔案尾碼

OSS檔案路徑

test-bucket

test-table

%Y/%m/%d/%H/%M

.suffix

oss://test-bucket/test-table/2022/01/20/19/50_1484913043351525351_2850008.suffix

test-bucket

log_ship_oss_example

year=%Y/mon=%m/day=%d/log_%H%M

.suffix

oss://test-bucket/log_ship_oss_example/year=2022/mon=01/day=20/log_1950_1484913043351525351_2850008.suffix

test-bucket

log_ship_oss_example

ds=%Y%m%d/%H

.suffix

oss://test-bucket/log_ship_oss_example/ds=20220120/19_1484913043351525351_2850008.suffix

test-bucket

log_ship_oss_example

%Y%m%d/

.suffix

oss://test-bucket/log_ship_oss_example/20220120/_1484913043351525351_2850008.suffix

說明

此格式會導致Hive等平台無法解析對應的OSS內容,建議您不要使用該格式。

test-bucket

log_ship_oss_example

%Y%m%d%H

.suffix

oss://test-bucket/log_ship_oss_example/2022012019_1484913043351525351_2850008.suffix

使用Hive、MaxCompute等巨量資料平台或阿里雲DLA產品分析OSS資料時,如果您希望使用Partition資訊,可將檔案名稱中的PARTITION-FORMAT設定為key=value格式。例如:oss://test-bucket/log_ship_oss_example/year=2022/mon=01/day=20/log_195043_1484913043351525351_2850008.parquet,設定為三層分區列,分別為:year、mon、day。

SDK樣本

export_oss_sink_demo.py