日志服務采集到數據后,支持將數據投遞至OSS Bucket中進行存儲與分析。本文介紹創建OSS投遞任務(新版)的操作步驟。
前提條件
已創建Project和Logstore。具體操作,請參見創建Project和Logstore。
已采集到數據。具體操作,請參見數據采集。
已在日志服務Project所在的地域創建Bucket。具體操作,請參見控制臺創建存儲空間。
支持的地域說明
日志服務投遞數據到OSS為同地域投遞,即日志服務Project所在的地域和OSS Bucket所在地域相同。
目前只支持華東1(杭州)、華東2(上海)、華東5(南京-本地地域)、華東1金融云、華東2金融云、華北1(青島)、華北2(北京)、華北3(張家口)、華北5 (呼和浩特)、華北6(烏蘭察布)、西南1(成都)、華南1(深圳)、華南2(河源)、華南3(廣州)、中國香港、新加坡、馬來西亞(吉隆坡)、印度尼西亞(雅加達)、菲律賓(馬尼拉)、泰國(曼谷)、日本(東京)、美國(硅谷)、美國(弗吉尼亞)。
其中,華東1金融云僅支持OSS華東1金融云公網的Bucket;華東2金融云僅支持OSS華東2金融云的Bucket。
創建投遞任務
登錄日志服務控制臺。
在Project列表區域,單擊目標Project。
在 頁簽中,單擊目標Logstore左側的>,選擇 。
將鼠標懸浮OSS(對象存儲)上,單擊+。
在OSS投遞功能面板,配置如下參數,然后單擊確定。
選擇投遞版本為新版,重要參數配置說明如下所示。
重要創建OSS投遞任務后,每個Shard都會根據投遞大小、投遞時間決定投遞的頻率。當任一條件滿足時,即會執行一次投遞。
創建OSS投遞任務后,您可以通過投遞任務的狀態和投遞到OSS的數據確認該投遞任務是否符合預期結果。
參數
說明
任務名稱
投遞任務的唯一名稱。
顯示名稱
投遞任務的顯示名稱。
任務描述
OSS的任務描述。
OSS Bucket
OSS Bucket名稱。
重要必須是已存在且未開啟WORM的Bucket,且該Bucket與日志服務Project位于相同地域。關于WORM的更多信息,請參見保留策略(WORM)。
文件投遞目錄
OSS Bucket中的目錄。目錄名不能以正斜線(/)或者反斜線(\)開頭。
創建OSS投遞任務后,Logstore中的數據將投遞到目標OSS Bucket的此目錄中。
文件后綴
如果您未設置文件后綴,則日志服務會根據存儲格式和壓縮類型自動生成后綴。例如
.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字段為日志服務的保留字段,更多信息,請參見保留字段。
攢批大小
每個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(數據到達日志服務的時間)決定。投遞時需注意如下兩種情況:
投遞實時數據時(假設5分鐘投遞一次),例如在2022-01-22 00:00:00進行一次投遞,其投遞的是2022-01-21 23:55后寫入日志服務某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。