數據湖支持在低存儲成本的情況下,更好地滿足數據長期存儲、查詢、分析、讀取等需求。本文介紹通過日志服務SLS完成日志數據入湖的操作方式。
前提條件
已在日志服務Project所在的地域創建Bucket。具體操作,請參見控制臺創建存儲空間。
背景信息
數據湖是一個集中式存儲庫,允許您以任意規模存儲所有結構化、半結構化以及非結構化數據。這些數據包括來源于關系型數據庫中的結構化數據(行和列)、半結構化數據(例如CSV、日志、XML、JSON等)、非結構化數據(例如email、文檔、PDF等)和二進制數據(例如圖像、音頻、視頻等)。
日志服務集成了數據投遞到OSS的功能,以Serverless的方式助力日志數據入湖,支持豐富的日志數據源,一站式的分析查詢,多種投遞格式,壓縮類型,無需運維。
步驟一:選擇投遞的數據源
(可選)步驟二:加工數據
以下以過濾OSS訪問日志為例,介紹過濾后僅保留OSS訪問日志中GetObject方法的操作步驟。
單擊目標Logstore左側的>,選擇 。
在頁面右上角,選擇數據的時間范圍。
選擇時間范圍后,請確認原始日志頁簽中存在日志。
在編輯框中,輸入以下數據加工語句。
e_keep(e_search("operation=GetObject"))
預覽數據。
創建數據加工任務。
單擊保存數據加工。
在創建數據加工任務面板,按如下說明配置相關參數,其他參數保留默認配置,然后單擊確定。
參數
說明
任務名稱
定義數據加工規則的名稱。
授權方式
選擇默認角色,表示授予數據加工任務使用阿里云系統角色AliyunLogETLRole來讀取源Logstore中的數據。如果您還沒有生成默認角色,需單擊授權系統角色AliyunLogETLRole,并根據頁面提示完成授權。更多信息,請參見通過默認角色訪問數據。
存儲目標
目標名稱
定義存儲目標的名稱。
目標Project
定義用于存儲數據加工結果的目標Project名稱。
目標庫
定義用于存儲數據加工結果的目標Logstore名稱。
授權方式
選擇默認角色,即授予數據加工任務使用阿里云系統角色AliyunLogETLRole將數據加工結果寫入目標Logstore。如果您還沒有生成默認角色,需單擊授權系統角色AliyunLogETLRole,并根據頁面提示完成授權。更多信息,請參見通過默認角色訪問數據。
加工范圍
時間范圍
指定數據加工任務的時間范圍,詳細說明如下:
說明此處的時間范圍依賴日志的接收時間。
所有:從Logstore接收到第一條日志的時間點開始數據加工任務,直到加工任務被手動停止。
某時間開始:指定數據加工任務的開始時間,從該時間點開始加工,直到加工任務被手動停止。
特定時間范圍:指定數據加工任務的起止時間,加工任務執行到指定時間后自動停止。
關于創建數據加工任務涉及的各參數詳細說明,請參見創建數據加工任務。
步驟三:投遞數據到OSS
日志服務投遞數據到OSS為同地域投遞,即日志服務Project所在的地域和OSS Bucket所在地域相同。您可以選擇新版或舊版投遞數據到OSS的方式完成日志數據入湖。舊版投遞數據到OSS支持日志服務所有已開服地域,而新版投遞數據到OSS(新版)僅支持以下地域:
目前只支持華東1(杭州)、華東2(上海)、華東5(南京-本地地域)、華東1金融云、華東2金融云、華北1(青島)、華北2(北京)、華北3(張家口)、華北5 (呼和浩特)、華北6(烏蘭察布)、西南1(成都)、華南1(深圳)、華南2(河源)、華南3(廣州)、中國香港、新加坡、馬來西亞(吉隆坡)、印度尼西亞(雅加達)、菲律賓(馬尼拉)、泰國(曼谷)、日本(東京)、美國(硅谷)、美國(弗吉尼亞)。
其中,華東1金融云僅支持OSS華東1金融云公網的Bucket;華東2金融云僅支持OSS華東2金融云的Bucket。
關于新舊版投遞數據到OSS的更多信息,請參見OSS投遞新舊版本對比。
創建OSS投遞作業。
在OSS投遞功能頁面,按如下說明配置相關參數,其他參數保留默認配置,然后單擊投遞。
參數
說明
OSS投遞名稱
投遞作業的名稱。
OSS Bucket
OSS Bucket名稱。
重要必須是已存在且未開啟WORM的Bucket,且該Bucket與日志服務Project位于相同地域。關于WORM的更多信息,請參見保留策略(WORM)。
文件投遞目錄
指定OSS Bucket中的目錄。目錄名不能以正斜線(/)或者反斜線(\)開頭。如果未指定該目錄,則生成的文件將保存在Bucket的根目錄下。
創建OSS投遞任務后,Logstore中的數據將投遞到目標OSS Bucket的此目錄中。
文件后綴
指定生成文件的后綴。如果未設置文件后綴,則日志服務會根據存儲格式和壓縮類型自動生成后綴,例如suffix。
寫OSS RAM角色
選擇默認角色,表示授權OSS投遞作業使用阿里云系統角色AliyunLogDefaultRole將數據寫入到OSS Bucket中。如果您還沒有生成默認角色,需手動輸入AliyunLogDefaultRole的ARN。如何獲取ARN,請參見通過默認角色訪問數據。
讀Logstore RAM角色
選擇默認角色,表示授權OSS投遞作業使用阿里云系統角色AliyunLogDefaultRole來讀取Logstore中的數據。如果您還沒有生成默認角色,需手動輸入AliyunLogDefaultRole的ARN。如何獲取ARN,請參見通過默認角色訪問數據。
開始時間范圍
選擇投遞作業開始拉取Logstore中數據的起始時間。
關于創建投遞作業涉及的各參數詳細說明,請參見創建OSS投遞任務(新版)。
可選:查看生成的文件。
將日志投遞到OSS成功后,您可以通過OSS控制臺、API、SDK或ossutil查看生成的文件。文件格式為:
oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID
參數說明如下表所示:
參數
說明
示例值
OSS-BUCKET
OSS Bucket名稱。
examplebucket
OSS-PREFIX
文件投遞目錄。
exampledir
PARTITION-FORMAT
分區格式,通過strptime API計算得到的投遞作業創建時間。
2022/01/20/19/50_1484913043351525351
RANDOM-ID
隨機生成的一次投遞行為的唯一標識。
2850008
結合以上示例值,則投遞作業創建時間為2022/01/20 19:50:43生成的OSS文件路徑為:
oss://examplebucket/exampledir/2022/01/20/19/50_1484913043351525351_2850008.suffix
說明OSS文件路徑以投遞作業的創建時間動態生成。假設您在2022-01-20 00:00:00創建投遞作業,5分鐘投遞一次數據到OSS Bucket,則此次投遞任務投遞的是2022-01-19 23:55后寫入日志服務的數據。由于寫入日志服務的數據可能存在延時,因此當您希望分析2022-01-19全天日志,除了查看2022/01/19目錄下的全部Object以外,還需要檢查2022/01/20/00/目錄下前十分鐘的Object是否包含2022-01-19的日志。