Log Service採集到資料後,支援將資料投遞至OSS Bucket中進行儲存與分析。本文介紹建立OSS投遞任務(新版)的操作步驟。
前提條件
已建立Project和Logstore。具體操作,請參見建立Project和Logstore。
已採集到資料。具體操作,請參見資料擷取。
已在Log ServiceProject所在的地區建立Bucket。具體操作,請參見控制台建立儲存空間。
支援的地區說明
Log Service投遞資料到OSS為同地區投遞,即Log ServiceProject所在的地區和OSS Bucket所在地區相同。
目前只支援華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北3(張家口)、華北5 (呼和浩特)、華北6(烏蘭察布)、西南1(成都)、華南1(深圳)、華南2(河源)、華南3(廣州)、中國香港、新加坡、馬來西亞(吉隆坡)、印尼(雅加達)、菲律賓(馬尼拉)、泰國(曼穀)、日本(東京)、美國(矽谷)、美國(維吉尼亞)。
建立投遞任務
在Project列表地區,單擊目標Project。
在 頁簽中,單擊目標Logstore左側的>,選擇 。
將滑鼠懸浮OSS(Object Storage Service)上,單擊+。
在OSS投遞功能面板,配置如下參數,然後單擊確定。
選擇投遞版本為新版,重要參數配置說明如下所示。
重要建立OSS投遞任務後,每個Shard都會根據投遞大小、投遞時間決定投遞的頻率。當任一條件滿足時,即會執行一次投遞。
建立OSS投遞任務後,您可以通過投遞任務的狀態和投遞到OSS的資料確認該投遞任務是否符合預期結果。
參數
說明
任務名稱
投遞任務的唯一名稱。
顯示名稱
投遞任務的顯示名稱。
任務描述
OSS的任務描述。
OSS Bucket
OSS Bucket名稱。
重要必須是已存在且未開啟WORM的Bucket,且該Bucket與Log ServiceProject位於相同地區。關於WORM的更多資訊,請參見保留原則(WORM)。
檔案投遞目錄
OSS Bucket中的目錄。目錄名不能以正斜線(/)或者反斜線(\)開頭。
建立OSS投遞任務後,Logstore中的資料將投遞到目標OSS Bucket的此目錄中。
檔案尾碼
如果您未設定檔案尾碼,則Log Service會根據儲存格式和壓縮類型自動產生尾碼。例如
.suffix
。分區格式
按照投遞時間動態產生OSS Bucket的目錄,不能以正斜線(/)開頭,預設值為%Y/%m/%d/%H/%M,相關樣本請參見分區格式,參數詳情請參見strptime API。
寫OSS RAM角色
授予OSS投遞任務將資料寫入到OSS Bucket的許可權。
預設角色:授權OSS投遞任務使用阿里雲系統角色AliyunLogDefaultRole將資料寫入到OSS Bucket中。即輸入AliyunLogDefaultRole的ARN。如何擷取ARN,請參見通過預設角色訪問資料。
自訂角色:授權OSS投遞任務使用自訂角色將資料寫入到OSS Bucket中。
您需先授予自訂角色將資料寫入到OSS Bucket的許可權,然後在寫OSS RAM角色中輸入您自訂角色的ARN。如何擷取ARN,請參見如下說明:
如果Logstore和OSS Bucket屬於同一阿里雲帳號,請參見步驟二:授予RAM角色寫OSS Bucket的許可權。
如果Logstore和OSS Bucket屬於不同的阿里雲帳號,請參見步驟二:授予帳號B下的RAM角色b寫OSS Bucket的許可權。
讀Logstore RAM角色
授予OSS投遞任務讀取Logstore資料的許可權。
預設角色:授權OSS投遞任務使用阿里雲系統角色AliyunLogDefaultRole來讀取Logstore中的資料。即輸入AliyunLogDefaultRole的ARN。如何擷取ARN,請參見通過預設角色訪問資料。
自訂角色:授權OSS投遞任務使用自訂角色來讀取Logstore中的資料。
您需先授予自訂角色讀取Logstore資料的許可權,然後在讀Logstore RAM角色中輸入您自訂角色的ARN。如何擷取ARN,請參見如下說明:
如果Logstore和OSS Bucket屬於同一阿里雲帳號,請參見步驟一:授予RAM角色讀取Logstore資料的許可權。
如果Logstore和OSS Bucket屬於不同的阿里雲帳號,請參見步驟一:授予帳號A下的RAM角色a讀取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秒,範圍300~900秒)時開始投遞。
說明攢批大小和攢批時間二者滿足其一觸發投遞。
延遲投遞
投遞資料的延遲時間。例如設定為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。