通過日志服務(wù)遷移日志數(shù)據(jù)至MaxCompute
本文為您介紹如何通過日志服務(wù)的直接投遞功能遷移日志數(shù)據(jù)至MaxCompute。
前提條件
執(zhí)行本操作的賬號(hào)為主賬號(hào)。
已開通日志服務(wù),詳情請(qǐng)參見開通日志服務(wù)。
背景信息
日志服務(wù)提供將實(shí)時(shí)采集的日志數(shù)據(jù)投遞至MaxCompute的功能。如果啟用該功能,日志服務(wù)后臺(tái)會(huì)定時(shí)把寫入到該日志庫(kù)內(nèi)的日志數(shù)據(jù)投遞到MaxCompute對(duì)應(yīng)的表中,方便您對(duì)數(shù)據(jù)進(jìn)行后續(xù)加工。
操作步驟
在MaxCompute客戶端(odpscmd)執(zhí)行如下語句創(chuàng)建表loghub,用于接收日志服務(wù)投遞數(shù)據(jù)。
CREATE TABLE loghub ( id BIGINT, name STRING, salenum BIGINT ) PARTITIONED BY (ds string);
在日志服務(wù)中創(chuàng)建Project和Logstore。
登錄日志服務(wù)控制臺(tái),在Project列表區(qū)域,單擊右上角創(chuàng)建Project,填寫配置信息創(chuàng)建新的Project。配置參數(shù)說明請(qǐng)參見創(chuàng)建Project。
單擊已經(jīng)創(chuàng)建的Project,進(jìn)入日志管理頁(yè)面。
單擊日志庫(kù)后的新建Logstore,并填寫配置參數(shù)。配置參數(shù)說明請(qǐng)參見創(chuàng)建Logstore。
單擊Logstore的名稱,即可查看Logstore的日志數(shù)據(jù)。
在日志存儲(chǔ)>日志庫(kù)頁(yè)簽中,單擊目標(biāo)Logstore左側(cè)的>,選擇數(shù)據(jù)處理 > 導(dǎo)出 > MaxCompute(原ODPS)。
單擊MaxCompute(原ODPS)后的+,在MaxCompute數(shù)據(jù)投遞對(duì)話框頁(yè)面配置相關(guān)參數(shù)。
配置參數(shù)說明如下。
參數(shù)
語義
投遞名稱
自定義一個(gè)投遞的名稱,方便后續(xù)管理。
項(xiàng)目名
MaxCompute表所在的項(xiàng)目名稱,該項(xiàng)默認(rèn)為新創(chuàng)建的Project,對(duì)于已經(jīng)創(chuàng)建的Project,可以在下拉框中選擇。
MaxCompute表名
MaxCompute表名稱,請(qǐng)輸入自定義新建的MaxCompute表名稱或者選擇已有的MaxCompute表。
說明MaxCompute表至少包含一個(gè)數(shù)據(jù)列和一個(gè)分區(qū)列。
MaxCompute普通列
按順序左邊填寫與MaxCompute表數(shù)據(jù)列映射的日志服務(wù)字段名稱,右邊填寫或者選擇MaxCompute表的普通字段名稱及字段類型。
說明日志服務(wù)數(shù)據(jù)的一個(gè)字段最多允許映射到一個(gè)MaxCompute表的列(數(shù)據(jù)列或分區(qū)列),不支持字段冗余,同一個(gè)字段名第二次使用時(shí)其投遞的值為null,如果null出現(xiàn)在分區(qū)列會(huì)導(dǎo)致數(shù)據(jù)無法被投遞。
MaxCompute分區(qū)列
按順序左邊填寫與MaxCompute表分區(qū)列映射的日志服務(wù)字段名稱,右邊填寫或者選擇MaxCompute表的普通字段名稱及字段類型。
重要投遞MaxCompute是批量任務(wù),需謹(jǐn)慎設(shè)置分區(qū)列及其類型。保證一個(gè)同步任務(wù)內(nèi)處理的數(shù)據(jù)分區(qū)數(shù)小于512個(gè)。用作分區(qū)列的字段值不能為空或包括正斜線(/)等MaxCompute保留字段。
MaxCompute單表有分區(qū)數(shù)目6萬的限制,分區(qū)數(shù)超出后無法再寫入數(shù)據(jù),所以日志服務(wù)導(dǎo)入MaxCompute表至多支持3個(gè)分區(qū)列。需謹(jǐn)慎選擇自定義字段作為分區(qū)列,保證其值可枚舉。
時(shí)間分區(qū)格式
__partition_time__
輸出的日期格式。例如yyyy-MM-dd
。導(dǎo)入時(shí)間間隔
MaxCompute數(shù)據(jù)投遞間隔,默認(rèn)1800,單位:秒(s)。
說明不同Logstore的數(shù)據(jù)不能導(dǎo)入到同一個(gè)MaxCompute表中,否則會(huì)造成分區(qū)沖突或丟失數(shù)據(jù)。
海外Region不支持通過LogHub將數(shù)據(jù)投遞至MaxCompute,可以使用DataWorks進(jìn)行數(shù)據(jù)投遞。詳情請(qǐng)參見通過DataWorks數(shù)據(jù)集成遷移日志數(shù)據(jù)至MaxCompute。
MaxCompute投遞新版說明請(qǐng)參見創(chuàng)建MaxCompute投遞任務(wù)(新版)。
配置完成后,單擊確定,啟動(dòng)投遞。
啟動(dòng)投遞功能后,日志服務(wù)后臺(tái)會(huì)定期啟動(dòng)離線投遞任務(wù)。
在提示對(duì)話框,單擊確定,返回日志服務(wù)控制臺(tái)查看投遞運(yùn)行狀態(tài)。
執(zhí)行如下語句在MaxCompute中查詢表數(shù)據(jù),檢查日志投遞結(jié)果。
SELECT id,name,salenum,dt FROM loghub WHERE substr(dt,1,18) = '2019_10_25';
返回結(jié)果如下,說明投遞成功。