數(shù)據(jù)采集及解析方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及終端上報(bào)的行為數(shù)據(jù)的日常采集及解析,特別涉及在Java技術(shù)基礎(chǔ)上,構(gòu)建大規(guī)模數(shù)據(jù)的采集及解析。
【背景技術(shù)】
[0002]隨著智能家電的普及,如何分析用戶終端的各項(xiàng)數(shù)據(jù),挖掘用戶的隱形需求,為用戶提供更加豐富、友好的服務(wù),成為各大家電廠商研究的重要方向?;谶@些要求,對(duì)終端數(shù)據(jù)的采集和解析,為后續(xù)的大數(shù)據(jù)處理工作提供數(shù)據(jù)支撐,成為了一項(xiàng)重要的基礎(chǔ)工作。
[0003]Java技術(shù)廣泛應(yīng)用于各大系統(tǒng)平臺(tái)的軟件開發(fā),利用Java技術(shù)開發(fā)web程序進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)解析,可以跨平臺(tái)移植,方便進(jìn)行大規(guī)模部署、更新、升級(jí)。傳統(tǒng)的數(shù)據(jù)采集、解析方法包括兩種:一、數(shù)據(jù)的實(shí)時(shí)采集、解析;二、數(shù)據(jù)的延時(shí)采集、解析。實(shí)時(shí)的數(shù)據(jù)采集、解析方法由一套web程序提供采集、解析功能,即在數(shù)據(jù)上報(bào)的第一時(shí)間觸發(fā)采集、解析程序,采集到的數(shù)據(jù)立刻進(jìn)行解析、存儲(chǔ);延時(shí)的數(shù)據(jù)采集、解析方法的則由采集程序和解析程序構(gòu)成,采集程序先將終端上報(bào)的數(shù)據(jù)寫入到服務(wù)器的本地磁盤空間,解析程序掃描本地?cái)?shù)據(jù)文件,讀取數(shù)據(jù)進(jìn)行解析處理、存儲(chǔ)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題,就是提供一種數(shù)據(jù)采集及解析方法及系統(tǒng)以實(shí)現(xiàn)更加快速、可靠的數(shù)據(jù)采集及解析。
[0005]本發(fā)明解決所述技術(shù)問題,采用的技術(shù)方案是,數(shù)據(jù)采集及解析方法,包括:終端上報(bào)數(shù)據(jù)時(shí),系統(tǒng)采集上報(bào)數(shù)據(jù),根據(jù)預(yù)設(shè)周期存儲(chǔ)至本地磁盤;系統(tǒng)對(duì)本地磁盤存儲(chǔ)的上報(bào)數(shù)據(jù)進(jìn)行多線程掃描解析,并將解析數(shù)據(jù)存儲(chǔ)至kafka。
[0006]具體的,終端通過post方式上報(bào)數(shù)據(jù)。
[0007]具體的,系統(tǒng)采集上報(bào)數(shù)據(jù),將其轉(zhuǎn)換為String格式的字符串,并將字符串保存在列表中,根據(jù)預(yù)設(shè)周期將列表中的數(shù)據(jù)寫入到本地磁盤。
[0008]具體的,系統(tǒng)對(duì)本地磁盤存儲(chǔ)數(shù)據(jù)進(jìn)行多線程掃描解析,每個(gè)線程中,系統(tǒng)將String類型的字符串?dāng)?shù)據(jù)轉(zhuǎn)換為json格式的數(shù)據(jù),獲取各字段值,并對(duì)各字段值進(jìn)行解析。
[0009]進(jìn)一步的,所述對(duì)各字段值進(jìn)行解析包括:獲取"designat1n〃字段值判斷解密類型,調(diào)用解密程序進(jìn)行數(shù)據(jù)解密,得到解密數(shù)據(jù);獲取"ip"字段值,調(diào)用IP解析程序?qū)P進(jìn)行解析,得到IP地址信息及時(shí)間信息。
[0010]進(jìn)一步的,系統(tǒng)將解密數(shù)據(jù)、IP地址信息及時(shí)間信息組合成json格式的數(shù)據(jù)存入kafka,所述kafka存儲(chǔ)節(jié)點(diǎn)至少為一個(gè)。
[0011]數(shù)據(jù)采集及解析系統(tǒng),包括數(shù)據(jù)采集接口、本地磁盤、數(shù)據(jù)解析模塊及kafka存儲(chǔ)節(jié)點(diǎn);所述數(shù)據(jù)采集接口與本地磁盤連接,本地磁盤與數(shù)據(jù)解析模塊連接,數(shù)據(jù)解析模塊與kaf ka存儲(chǔ)節(jié)點(diǎn)連接;
[0012]所述數(shù)據(jù)采集接口,用于終端上報(bào)數(shù)據(jù)時(shí),采集上報(bào)數(shù)據(jù),并根據(jù)預(yù)設(shè)周期將上報(bào)數(shù)據(jù)存儲(chǔ)至本地磁盤;
[0013]所述數(shù)據(jù)解析模塊,用于對(duì)本地磁盤存儲(chǔ)的上報(bào)數(shù)據(jù)進(jìn)行多線程掃描解析,并將解析數(shù)據(jù)存儲(chǔ)至kaf ka。
[0014]具體的,終端通過post方式上報(bào)數(shù)據(jù)至數(shù)據(jù)采集接口。
[0015]具體的,數(shù)據(jù)采集接口采集上報(bào)數(shù)據(jù),將其轉(zhuǎn)換為String格式的字符串,并將字符串保存在列表中,根據(jù)預(yù)設(shè)周期將列表中的數(shù)據(jù)寫入到本地磁盤。
[0016]具體的,數(shù)據(jù)解析模塊對(duì)本地磁盤存儲(chǔ)的上報(bào)數(shù)據(jù)進(jìn)行多線程掃描解析,每個(gè)線程中,系統(tǒng)將String類型的字符串?dāng)?shù)據(jù)轉(zhuǎn)換為json格式的數(shù)據(jù),獲取各字段值,并對(duì)各字段值進(jìn)行解析。
[0017]進(jìn)一步的,所述對(duì)各字段值進(jìn)行解析包括:獲取"designat1n〃字段值判斷解密類型,調(diào)用解密程序進(jìn)行數(shù)據(jù)解密,得到解密數(shù)據(jù);獲取"ip"字段值,調(diào)用IP解析程序?qū)P進(jìn)行解析,得到IP地址信息及時(shí)間信息。
[0018]進(jìn)一步的,系統(tǒng)將解密數(shù)據(jù)、IP地址信息及時(shí)間信息組合成json格式的數(shù)據(jù)存入kafka,所述kafka存儲(chǔ)節(jié)點(diǎn)至少為一個(gè)。
[0019]本發(fā)明的有益效果是:由于數(shù)據(jù)解析主程序或調(diào)用的解密程序、IP解析程序的升級(jí)及維護(hù)不會(huì)影響到數(shù)據(jù)采集工作的正常進(jìn)行,所以不會(huì)造成數(shù)據(jù)丟失,保證了采集數(shù)據(jù)的完整性;快速、可靠的實(shí)現(xiàn)對(duì)終端上傳數(shù)據(jù)的采集和解析。
【附圖說明】
[0020]圖1為本發(fā)明數(shù)據(jù)采集及解析方法及系統(tǒng)實(shí)施例的流程圖。
[0021]以下結(jié)合實(shí)施例的【具體實(shí)施方式】,對(duì)本發(fā)明的上述內(nèi)容再作進(jìn)一步的詳細(xì)說明。但不應(yīng)將此理解為本發(fā)明上述主題的范圍僅限于以下的實(shí)例。在不脫離本發(fā)明上述技術(shù)思想情況下,根據(jù)本領(lǐng)域普通技術(shù)知識(shí)和慣用手段做出的各種替換或變更,均應(yīng)包括在本發(fā)明的范圍內(nèi)。
【具體實(shí)施方式】
[0022]下面結(jié)合附圖及實(shí)施例詳細(xì)描述本發(fā)明的技術(shù)方案:
[0023]本發(fā)明針對(duì)現(xiàn)有技術(shù)中實(shí)時(shí)數(shù)據(jù)采集、解析的服務(wù)器環(huán)境、網(wǎng)絡(luò)條件、程序更新及程序升級(jí)容易造成的數(shù)據(jù)丟失及延時(shí)數(shù)據(jù)采集及解析的實(shí)效性太低的問題,提供一種數(shù)據(jù)采集及解析方法,包括:終端上報(bào)數(shù)據(jù)時(shí),系統(tǒng)采集上報(bào)數(shù)據(jù),根據(jù)預(yù)設(shè)周期存儲(chǔ)至本地磁盤;系統(tǒng)對(duì)本地磁盤存儲(chǔ)的上報(bào)數(shù)據(jù)進(jìn)行多線程掃描解析,并將解析數(shù)據(jù)存儲(chǔ)至kafka。數(shù)據(jù)采集及解析系統(tǒng),包括數(shù)據(jù)采集接口、本地磁盤、數(shù)據(jù)解析模塊及kafka存儲(chǔ)節(jié)點(diǎn);所述數(shù)據(jù)采集接口與本地磁盤連接,本地磁盤與數(shù)據(jù)解析模塊連接,數(shù)據(jù)解析模塊與kafka存儲(chǔ)節(jié)點(diǎn)連接;所述數(shù)據(jù)采集接口,用于終端上報(bào)數(shù)據(jù)時(shí),采集上報(bào)數(shù)據(jù),并根據(jù)預(yù)設(shè)周期將上報(bào)數(shù)據(jù)存儲(chǔ)至本地磁盤;所述數(shù)據(jù)解析模塊,用于對(duì)本地磁盤存儲(chǔ)的上報(bào)數(shù)據(jù)進(jìn)行多線程掃描解析,并將解析數(shù)據(jù)存儲(chǔ)至kafka。由于數(shù)據(jù)解析主程序或調(diào)用的解密程序、IP解析程序的升級(jí)及維護(hù)不會(huì)影響到數(shù)據(jù)采集工作的正常進(jìn)行,所以不會(huì)造成數(shù)據(jù)丟失,保證了采集數(shù)據(jù)的完整性;快速、可靠的實(shí)現(xiàn)對(duì)終端上傳數(shù)據(jù)的采集和解析。
[0024]實(shí)施例
[0025]本例結(jié)合實(shí)時(shí)數(shù)據(jù)采集解析方法和延時(shí)數(shù)據(jù)采集解析方法的優(yōu)點(diǎn),提供一種更加快速、可靠的數(shù)據(jù)采集及解析方法。從而解決實(shí)時(shí)數(shù)據(jù)采集解析的服務(wù)器環(huán)境、網(wǎng)絡(luò)條件、程序更新、升級(jí)時(shí)容易造成的數(shù)據(jù)丟失問題;解決了延時(shí)數(shù)據(jù)采集解析方法的實(shí)效性太低的問題。
[0026]本例的總體構(gòu)思為:在Java技術(shù)的基礎(chǔ)上,提供跨平臺(tái)(linux、windows)的數(shù)據(jù)采集及解析方法。如圖1所示,首先,開發(fā)數(shù)據(jù)采集程序和數(shù)據(jù)解析程序,部署到Iinux(windows)服務(wù)器上。其次數(shù)據(jù)采集程序提供數(shù)據(jù)采集服務(wù)接口,終端數(shù)據(jù)通過http協(xié)議中的post方式傳遞json格式的數(shù)據(jù)觸發(fā)采集服務(wù)接口,采集服務(wù)接口獲取到j(luò)son格式的上報(bào)數(shù)據(jù),以字符串的形式逐條寫入到本地磁盤,完成數(shù)據(jù)的采集工作。數(shù)據(jù)解析程序,首先開啟多線程并發(fā)執(zhí)行,各線程調(diào)用主程序掃描本地磁盤目錄,獲取數(shù)據(jù)采集程序存儲(chǔ)的數(shù)據(jù)文件,對(duì)文件數(shù)據(jù)逐條進(jìn)行讀取,將讀取到的字符串轉(zhuǎn)換為json數(shù)據(jù),提取其中的加密數(shù)據(jù)、加密方式、IP地址等,進(jìn)行數(shù)據(jù)解密和IP解析等工作,存入到數(shù)據(jù)庫(kù),完成數(shù)據(jù)解析工作。
[0027]家電終端數(shù)據(jù)的采集和解析主要受以下兩個(gè)方面影響:I,家電產(chǎn)品終端上報(bào)的數(shù)據(jù)內(nèi)容和數(shù)據(jù)格式較為固定,故數(shù)據(jù)采集部分的后期升級(jí)、維護(hù)的可能性較低;2,數(shù)據(jù)解析受制于IP解析更新、數(shù)據(jù)庫(kù)版本更迭等因素,后期升級(jí)、維護(hù)較為頻繁。因此,本例將數(shù)據(jù)的采集和解析設(shè)計(jì)為兩個(gè)獨(dú)立的程序一一數(shù)據(jù)采集程序、數(shù)據(jù)解析程序。
[0028]為了達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是:數(shù)據(jù)采集程序:為保障數(shù)據(jù)的及時(shí)采集,使得整個(gè)采集、解析方法具有較高的實(shí)時(shí)性,在此將采集程序設(shè)定為實(shí)時(shí)采集程序,終端上報(bào)數(shù)據(jù)時(shí)觸發(fā)采集程序,采集程序捕獲的數(shù)據(jù)根據(jù)業(yè)務(wù)要求的時(shí)效性設(shè)定存儲(chǔ)周期,按時(shí)間周期存到服務(wù)器本地磁盤。具體的,系統(tǒng)采集上報(bào)數(shù)據(jù),將其轉(zhuǎn)換為String格式的字符串,并將字符串保存在列表中,根據(jù)預(yù)設(shè)周期將列表中的數(shù)據(jù)寫入到本地磁盤。
[0029]數(shù)據(jù)解析程序:為保證數(shù)據(jù)解析的時(shí)效性,快速、可靠的實(shí)現(xiàn)對(duì)數(shù)據(jù)的采集和解析,將多線程機(jī)制應(yīng)用于數(shù)據(jù)解析程序,根據(jù)數(shù)據(jù)文件的數(shù)量設(shè)定并發(fā)的線程數(shù),多個(gè)線程并發(fā)執(zhí)行可以非??焖俚耐瓿蓪?duì)本地存儲(chǔ)的數(shù)據(jù)文件的處理。具體的,系統(tǒng)對(duì)本地磁盤存儲(chǔ)數(shù)據(jù)進(jìn)行多線程掃描解析,每個(gè)線程中,系統(tǒng)將String類型的字符串?dāng)?shù)據(jù)轉(zhuǎn)換為json格式的數(shù)據(jù),然后獲取"designat1n"字段值判斷解密類型,調(diào)用解密程序進(jìn)行數(shù)據(jù)解密,得到解密數(shù)據(jù);獲取〃 ip〃字段值,調(diào)用IP解析程序?qū)P進(jìn)行解析,得到IP地址信息及時(shí)間信息。
[0030]最后,系統(tǒng)將解密數(shù)據(jù)、IP地址信息及時(shí)間信息組合成json格式的數(shù)據(jù)存入kafka,所述