Log Service採集到資料後,支援將資料投遞至OSS進行儲存與分析。本文介紹建立OSS投遞任務(舊版)的操作步驟。
前提條件
已建立Project和Logstore。具體操作,請參見建立Project和Logstore。
已採集到資料。具體操作,請參見資料擷取。
已在Log ServiceProject所在的地區建立Bucket。具體操作,請參見控制台建立儲存空間。
已完成雲資源訪問授權。
如果您要跨帳號投遞或使用RAM使用者建立投遞任務,需先完成RAM授權。具體操作,請參見投遞日誌到OSS的RAM授權管理。
背景資訊
Log Service支援將Logstore中的資料自動歸檔到OSS,以發揮更多的資料價值。
OSS支援自由設定生命週期,可以長期儲存資料。
您可以通過資料處理平台(例如E-MapReduce和DLA)或自建程式消費OSS資料。
投遞資料
開啟投遞後,Log Service並發執行投遞執行個體。每個Shard都會根據投遞大小、投遞時間決定執行個體的產生頻率,任一條件滿足時,即會產生執行個體。
產生投遞執行個體後,您可以通過投遞任務的狀態和投遞到OSS的資料確認您所建立的投遞任務是否符合預期結果。
在Project列表地區,單擊目標Project。
在 頁簽中,單擊目標Logstore左側的>,選擇 。
將滑鼠懸浮OSS(Object Storage Service)上,單擊+。
在OSS投遞功能面板,配置如下參數,然後單擊確定。
選擇投遞版本為舊版,重要參數配置說明如下所示。
參數
說明
OSS投遞名稱
投遞任務的名稱。
OSS Bucket
OSS Bucket名稱。
重要必須是已存在且未開啟WORM的Bucket,且該Bucket與Log ServiceProject位於相同地區。關於WORM的更多資訊,請參見保留原則(WORM)。
檔案投遞目錄
OSS Bucket中的目錄。目錄名不能以正斜線(/)或者反斜線(\)開頭。
建立OSS投遞任務後,Logstore中的資料將投遞到目標OSS Bucket的此目錄中。
分區格式
按照投遞任務的建立時間動態產生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的許可權。
投遞大小
每個Shard的投遞大小。通過該值控制OSS Object大小(以未壓縮計算),取值範圍為5~256,單位為MB。
當每個Shard投遞資料大小達到此處設定的大小時,會自動建立一個新的投遞任務。
儲存格式
是否壓縮
OSS資料存放區的壓縮方式。
不壓縮:不壓縮資料。
壓縮(snappy):使用snappy演算法壓縮資料,可減少OSS Bucket儲存空間。
投遞時間
每個Shard的投遞周期。取值範圍為300~900,預設值為300,單位為秒。
當每個Shard投遞周期達到此處設定的大小時,會自動建立一個新的投遞執行個體。
查看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 Bucket目錄是按照投遞任務建立時間設定的。例如:2016-06-23 00:00:00建立投遞任務,投遞的是2016-06-22 23:55後寫入Log Service的資料,假設5分鐘投遞一次資料到OSS。如果您要分析2016-06-22全天的資料,除了查看2016/06/22目錄下的全部object以外,還需要檢查2016/06/23/00/目錄下前十分鐘的Object是否包含2016-06-22的資料。
分區格式
一個投遞任務對應一個OSS Bucket目錄,目錄格式為oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID。PARTITION-FORMAT是根據投遞任務的建立時間格式化而得到的,以建立時間為2017/01/20 19:50:43的投遞任務為例,介紹分區格式,如下表所示。
OSS Bucket | OSS Prefix | 分區格式 | OSS檔案路徑 |
test-bucket | test-table | %Y/%m/%d/%H/%M | oss://test-bucket/test-table/2017/01/20/19/50_1484913043351525351_2850008 |
test-bucket | log_ship_oss_example | year=%Y/mon=%m/day=%d/log_%H%M%S | oss://test-bucket/log_ship_oss_example/year=2017/mon=01/day=20/log_195043_1484913043351525351_2850008.parquet |
test-bucket | log_ship_oss_example | ds=%Y%m%d/%H | oss://test-bucket/log_ship_oss_example/ds=20170120/19_1484913043351525351_2850008.snappy |
test-bucket | log_ship_oss_example | %Y%m%d/ | oss://test-bucket/log_ship_oss_example/20170120/_1484913043351525351_2850008 說明 此格式會導致Hive等平台無法解析對應的OSS內容,建議您不要使用該格式。 |
test-bucket | log_ship_oss_example | %Y%m%d%H | oss://test-bucket/log_ship_oss_example/2017012019_1484913043351525351_2850008 |
使用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。
相關操作
建立投遞任務後,您可以在OSS投遞管理頁面,執行修改投遞任務、關閉投遞、查看投遞任務狀態及錯誤資訊、重試投遞任務等操作。
修改投遞任務
單擊投遞配置,修改投遞任務。參數詳情,請參見本文中的投遞資料。
關閉投遞
單擊關閉投遞,即可關閉投遞。
查看投遞任務狀態及錯誤資訊
Log Service支援查看過去兩天內的所有投遞任務及其投遞狀態。
任務狀態
狀態
說明
成功
投遞任務正常運行。
進行中
投遞任務進行中,請稍後查看是否投遞成功。
失敗
因外部原因而無法重試的錯誤導致投遞任務失敗,請根據錯誤資訊進行排查並重試。
錯誤資訊
如果投遞任務出現錯誤,控制台上會顯示相應的錯誤資訊。
錯誤資訊
錯誤原因
處理方法
UnAuthorized
沒有許可權。
請確認以下配置:
OSS Bucket擁有者是否已建立AliyunLogDefaultRole角色。
角色描述中配置的阿里雲帳號ID是否正確。
AliyunLogDefaultRole角色是否被授予OSS Bucket寫入權限。
RAM角色標識是否配置正確。
ConfigNotExist
配置不存在。
一般是由於關閉投遞導致的。請在重新開啟投遞任務後,通過重試解決。
InvalidOssBucket
OSS Bucket不存在。
請確認以下配置:
OSS Bucket所在地區與Log ServiceProject所在地區是否相同。
Bucket名稱是否配置正確。
InternalServerError
Log Service內部錯誤。
通過重試解決。
重試任務
Log Service會按照策略預設為您重試,您也可以手動重試。Log Service預設重試最近兩天之內所有失敗的任務,重試等待的最小間隔是15分鐘。當任務執行失敗時,第一次失敗需要等待15分鐘再進行重試,第二次失敗需要等待30分鐘再進行重試,第三次失敗需要等待60分鐘再進行重試,以此類推。
如果您需要立即重試失敗任務,請單擊重試全部失敗任務、目標任務右側的重試或通過API、SDK指定任務進行重試。