數(shù)據(jù)處理方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)處理方法及系統(tǒng)。所述方法包括:對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解析;根據(jù)配置信息從解析后的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計所需要的至少一個字段及每個字段的值;根據(jù)配置信息、至少一個字段、每個字段的值以及每個字段的值對應(yīng)的采集時間按照預(yù)設(shè)的時間窗進(jìn)行數(shù)據(jù)統(tǒng)計,得到鍵、鍵對應(yīng)的鍵值以及鍵值對應(yīng)的當(dāng)前時間窗口值;根據(jù)鍵、鍵對應(yīng)的鍵值以及鍵值對應(yīng)的當(dāng)前時間窗口值,在鍵值存儲系統(tǒng)中對鍵對應(yīng)的鍵值按照時間窗進(jìn)行增量更新。通過采用本發(fā)明的技術(shù)方案,可以對實時到達(dá)的數(shù)據(jù)以時間窗口滑動形式進(jìn)行增量更新,克服了現(xiàn)有技術(shù)中需要將有數(shù)據(jù)收集完畢一次進(jìn)行全量處理,無法及時處理實時數(shù)據(jù)的缺陷,處理實時數(shù)據(jù)非常方便。
【專利說明】數(shù)據(jù)處理方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,特別涉及一種數(shù)據(jù)處理方法及系統(tǒng)。
【背景技術(shù)】
[0002] 在精準(zhǔn)推薦,實時監(jiān)控,實時營銷,數(shù)據(jù)挖掘等眾多領(lǐng)域中,需要對實時到達(dá)的數(shù) 據(jù)按時間窗口進(jìn)行實時統(tǒng)計,比如點擊數(shù),曝光數(shù)實時統(tǒng)計或監(jiān)控指標(biāo)統(tǒng)計等等。
[0003] 現(xiàn)有技術(shù)中,基于時間窗的數(shù)據(jù)統(tǒng)計,一般基于Hive和Hadoop的數(shù)據(jù)倉庫進(jìn)行, 比較常見的模式一般都是先將數(shù)據(jù)集中離線傳輸?shù)揭粋€Hadoop集群的分布式文件系統(tǒng) (Hadoop Distributed File System ;HDFS)中,數(shù)據(jù)按照Hive的二維表格式并按照天或 者小時等時間窗口進(jìn)行分區(qū)存儲。然后使用Hive提供的類結(jié)構(gòu)化查詢語言(Structured Query Language ;SQL)語言 Hibernate 查詢語言(Hibernate Query Language ;HQL)進(jìn) 行數(shù)據(jù)按時間窗的統(tǒng)計和分析,這個過程中Hive會將用戶編寫的HQL語句翻譯成基于 MapReduce計算模式的程序,并提交的Hadoop計算上去運行。Hive和Hadoop結(jié)合的方案 得益于Hadoop分布式和線性擴(kuò)展的特點,使得用Hive編程的統(tǒng)計腳本能夠?qū)A康臄?shù)據(jù) 按照時間窗進(jìn)行統(tǒng)計分析。
[0004] 在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:上述現(xiàn)有技術(shù) 的數(shù)據(jù)處理中,MapReduce是一種批量處理的計算方式,通過Map處理的數(shù)據(jù)先存在磁盤 中,然后再傳輸?shù)絉educe階段去處理,這種計算模式需要先將數(shù)據(jù)集中收集起來然后一次 全量處理,而無法處理實時到達(dá)的數(shù)據(jù),從而不能做到增量的更新,處理實時數(shù)據(jù)非常不方 便,具有較大的傳輸時延。
【發(fā)明內(nèi)容】
[0005] 為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種數(shù)據(jù)處理方法及系統(tǒng)。所述 技術(shù)方案如下:
[0006] -方面,提供了一種數(shù)據(jù)處理方法,所述方法包括:
[0007] 對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解析;
[0008] 根據(jù)配置信息從解析后的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計所需要的至少一個字段及每 個所述字段的值;
[0009] 根據(jù)所述配置信息、至少一個字段、每個所述字段的值以及每個所述字段的值對 應(yīng)的采集時間按照預(yù)設(shè)的時間窗進(jìn)行數(shù)據(jù)統(tǒng)計,得到鍵、所述鍵對應(yīng)的鍵值以及所述鍵值 對應(yīng)的當(dāng)前時間窗口值;
[0010] 根據(jù)所述鍵、所述鍵對應(yīng)的鍵值以及所述鍵值對應(yīng)的當(dāng)前時間窗口值,在鍵值存 儲系統(tǒng)中對所述鍵對應(yīng)的所述鍵值按照時間窗進(jìn)行增量更新。
[0011] 另一方面,提供了一種數(shù)據(jù)處理系統(tǒng),所述系統(tǒng)包括:
[0012] 解析組件,用于對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解析;
[0013] 提取組件,用于根據(jù)配置信息從解析后的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計所需要的至少 一個字段及每個所述字段的值;
[0014] 統(tǒng)計組件,用于根據(jù)所述配置信息、至少一個字段、每個所述字段的值以及每個所 述字段的值對應(yīng)的采集時間按照預(yù)設(shè)的時間窗進(jìn)行數(shù)據(jù)統(tǒng)計,得到鍵、所述鍵對應(yīng)的鍵值 以及所述鍵值對應(yīng)的當(dāng)前時間窗口值;
[0015] 更新組件,用于根據(jù)所述鍵、所述鍵對應(yīng)的鍵值以及所述鍵值對應(yīng)的當(dāng)前時間窗 口值,在鍵值存儲系統(tǒng)中對所述鍵對應(yīng)的所述鍵值按照時間窗進(jìn)行增量更新。
[0016] 本發(fā)明實施例的數(shù)據(jù)處理方法及系統(tǒng),通過對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解析;根 據(jù)配置信息從解析后的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計所需要的至少一個字段及每個字段的值; 根據(jù)配置信息、至少一個字段、每個字段的值以及每個字段的值對應(yīng)的采集時間按照預(yù)設(shè) 的時間窗進(jìn)行數(shù)據(jù)統(tǒng)計,得到鍵、鍵對應(yīng)的鍵值以及鍵值對應(yīng)的當(dāng)前時間窗口值;根據(jù)鍵、 鍵對應(yīng)的鍵值以及鍵值對應(yīng)的當(dāng)前時間窗口值,在對鍵值存儲系統(tǒng)中對鍵對應(yīng)的鍵值按照 時間窗進(jìn)行增量更新。通過采用上述技術(shù)方案,本發(fā)明實施例可以對實時到達(dá)的數(shù)據(jù)以時 間窗口滑動形式進(jìn)行增量更新,克服了現(xiàn)有技術(shù)中需要將有數(shù)據(jù)收集完畢一次進(jìn)行全量處 理,無法及時處理實時數(shù)據(jù)的缺陷,處理實時數(shù)據(jù)非常方便,沒有傳輸時延,確保數(shù)據(jù)的準(zhǔn) 確性和時效性。本發(fā)明實施例的技術(shù)方案,采用增量更新的方式處理實時數(shù)據(jù),能夠?qū)A?數(shù)據(jù)按照時間窗在秒,分鐘,小時,天等粒度級別進(jìn)行實時統(tǒng)計,可以應(yīng)用在實時監(jiān)控,實時 營銷,數(shù)據(jù)挖掘等眾多領(lǐng)域中,對實時到達(dá)的數(shù)據(jù)按時間窗口進(jìn)行比如點擊數(shù),曝光數(shù)實時 統(tǒng)計,監(jiān)控指標(biāo)統(tǒng)計等實時統(tǒng)計,使用非常方便。
【專利附圖】
【附圖說明】
[0017] 為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于 本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。
[0018] 圖1為本發(fā)明一實施例提供的數(shù)據(jù)處理方法的流程圖。
[0019] 圖2為本發(fā)明實施例中Key的Value的存儲結(jié)構(gòu)示意圖。
[0020] 圖3為本發(fā)明實施例中滑動時間窗和非滑動時間窗的結(jié)構(gòu)示意圖。
[0021] 圖4為本發(fā)明另一實施例提供的數(shù)據(jù)處理方法的流程圖。
[0022] 圖5為本發(fā)明實施例提供的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。
[0023] 圖6為本發(fā)明另一實施例提供的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)圖。
[0024] 圖7為本發(fā)明實施例的數(shù)據(jù)處理系統(tǒng)的應(yīng)用場景圖。
【具體實施方式】
[0025] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方 式作進(jìn)一步地詳細(xì)描述。
[0026] 圖1為本發(fā)明一實施例提供的數(shù)據(jù)處理方法的流程圖。本實施例的數(shù)據(jù)處理方法 的執(zhí)行主體可以為一數(shù)據(jù)處理系統(tǒng),該系統(tǒng)中可以包括多個組件,不同的組件分別來執(zhí)行 下述各步驟。如圖1所示,本實施例的數(shù)據(jù)處理方法,具體可以包括如下步驟:
[0027] 100、對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解析;
[0028] 本實施例的數(shù)據(jù)處理方法用于對實時達(dá)到的原始數(shù)據(jù)進(jìn)行統(tǒng)計,這里的實時可以 根據(jù)實際數(shù)據(jù)處理的需求,可以為1天、1小時、1分鐘或者1秒鐘等粒度的級別。原始數(shù)據(jù) 可以文本,二進(jìn)制,Protocol Buffer (簡稱PB)等各種形式。
[0029] 例如具體可以通過將原始數(shù)據(jù)轉(zhuǎn)換為字段(Field)-值(Value)的形式,每個 Field都有一個字符串類型的名字,F(xiàn)ield的Value的類型為字符串、整型、浮點型、布爾型 或者復(fù)合的對象類型。實際應(yīng)用中,也可以采用其他數(shù)據(jù)解析形式,只要能夠便于從原始數(shù) 據(jù)中提取出字段及其值即可。
[0030] 101、根據(jù)配置信息從解析后的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計所需要的至少一個字段 及每個字段的值;
[0031] 其中配置信息為用戶預(yù)先設(shè)置的,配置信息中可以說明數(shù)據(jù)統(tǒng)計需要的字段,例 如在某個數(shù)據(jù)處理中,需要Field名為qq和和Field名為廣告Adid的字段的信息,此時對 應(yīng)的,根據(jù)配置信息可以從解析后的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計所需要的Field名為qq和和 Field名為廣告Adid的字段,以及各字段的Value。
[0032] 102、根據(jù)配置信息、至少一個字段、每個字段的值以及每個字段的值對應(yīng)的采集 時間按照預(yù)設(shè)的時間窗進(jìn)行數(shù)據(jù)統(tǒng)計,得到Key、Key對應(yīng)的Key值以及Key值對應(yīng)的當(dāng)前 時間窗口值;
[0033] 其中配置信息還會說明數(shù)據(jù)統(tǒng)計的策略,例如配置信息中可以說明在此數(shù)據(jù)處理 中需要對哪些字段進(jìn)行維度統(tǒng)計,并規(guī)定統(tǒng)計后的Key,Key的值即為進(jìn)行維度統(tǒng)計的字段 的值的拼接。其中每個字段的值對應(yīng)的采集時間可以通過如下方式確定:在有些場景下, 原始數(shù)據(jù)采集的時候,會提取到該原始數(shù)據(jù)的采集時間,并將該采集時間攜帶在原始數(shù)據(jù) 中。因此,當(dāng)在原始數(shù)據(jù)中攜帶采集時間時,在步驟101解析時,可以將采集時間攜帶在該 Field的Value中,也就是說此時Field的Value中不僅包括該Value值,還包括該Value 值的采集時間。此時直接從預(yù)設(shè)設(shè)定的存放規(guī)則從Value值對應(yīng)的位置獲取該Value值的 采集時間即可。如果Value值中未攜帶采集時間時,由于數(shù)據(jù)的實時性較強(qiáng),每個步驟之間 沒有延遲,在較為嚴(yán)謹(jǐn)?shù)膱鼍跋?,整個數(shù)據(jù)處理過程都可以達(dá)到秒級,此時可以取當(dāng)前時刻 作為Value值對應(yīng)的采集時間。
[0034] 本實施例中預(yù)設(shè)的時間窗也為用戶預(yù)先設(shè)定的,例如用戶根據(jù)需求可以設(shè)置時間 窗口大小為38、58、1〇8,甚至1分鐘、1小時或者1天等等。根據(jù)預(yù)設(shè)的時間窗口的大小可 以確定當(dāng)前的時間窗口值,例如為便于記載,可以以當(dāng)前時間窗口的起始時間作為當(dāng)前時 間窗口的值,也就是時間窗口的標(biāo)識。
[0035] 103、根據(jù)Key、Key對應(yīng)的Key值以及Key值對應(yīng)的當(dāng)前時間窗口值,在鍵值 (Key-Value ;K-V)存儲系統(tǒng)中對Key對應(yīng)的Key值按照時間窗進(jìn)行增量更新。
[0036] 本實施例的按照時間窗進(jìn)行增量更新的更新原則為將該Key的屬于同一時間窗 的Key值合并,即將新統(tǒng)計得到的Key值以增量形式合并至K-V存儲系統(tǒng)中該Key的該時 間窗中。如若該K-V存儲系統(tǒng)中還未有當(dāng)前時間窗口的Key值的存儲,此時將當(dāng)前時間窗 口值作為一個新的時間窗存儲以增量形式在K-V存儲系統(tǒng)中。也就是說,在K-V存儲系統(tǒng) 中,每一個Key中Key值(即Value)都是按照時間窗來存儲。例如圖2為本發(fā)明實施例中 Key的Value的存儲結(jié)構(gòu)示意圖。Value :可以統(tǒng)一使用如下結(jié)構(gòu)描述:
[0037] 其中type為時間窗類型用于唯一標(biāo)志改時間窗結(jié)構(gòu)的存儲類型,不同業(yè)務(wù)可以 指定不同的type值,例如Type可以為5分鐘、5秒鐘、1小時等等。compress為壓縮標(biāo)志 位,用于標(biāo)志主體數(shù)據(jù)(bodyData)部分的數(shù)據(jù)是否被壓縮,如果被壓縮compress中標(biāo)識壓 縮的類型,比如:lzo, gzip等。metaData用于存儲時間窗結(jié)構(gòu)附帶的一些額外元數(shù)據(jù),來標(biāo) 識bodyData中的數(shù)據(jù),如可以為用戶姓名或者點擊數(shù)等等。主體數(shù)據(jù)(bodyData)則真正 存儲了按時間窗口存放的數(shù)據(jù),每個窗口數(shù)據(jù)一般對應(yīng)一個timeslot的數(shù)據(jù),一般會包含 時間窗口中的數(shù)據(jù),對應(yīng)的時間窗口值等。也就是說bodyData是真正用來存放數(shù)據(jù)的。如 圖2所示是以包括4個時間窗口為例。
[0038] 本實施例的數(shù)據(jù)處理方法,通過對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解析;根據(jù)配置信息 從解析后的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計所需要的至少一個字段及每個字段的值;根據(jù)配置信 息、至少一個字段、每個字段的值以及每個字段的值對應(yīng)的采集時間按照預(yù)設(shè)的時間窗進(jìn) 行數(shù)據(jù)統(tǒng)計,得到Key、Key對應(yīng)的Key值以及Key值對應(yīng)的當(dāng)前時間窗口值;根據(jù)Key、Key 對應(yīng)的Key值以及Key值對應(yīng)的當(dāng)前時間窗口值,在對K-V存儲系統(tǒng)中對Key對應(yīng)的Key 值按照時間窗進(jìn)行增量更新。通過采用上述技術(shù)方案,本實施例可以對實時到達(dá)的數(shù)據(jù)以 時間窗口滑動形式進(jìn)行增量更新,克服了現(xiàn)有技術(shù)中需要將有數(shù)據(jù)收集完畢一次進(jìn)行全量 處理,無法及時處理實時數(shù)據(jù)的缺陷,處理實時數(shù)據(jù)非常方便,沒有傳輸時延,確保數(shù)據(jù)的 準(zhǔn)確性和時效性。本實施例的技術(shù)方案,采用增量更新的方式處理實時數(shù)據(jù),能夠?qū)A繑?shù) 據(jù)按照時間窗在秒,分鐘,小時,天等粒度級別進(jìn)行實時統(tǒng)計,可以應(yīng)用在實時監(jiān)控,實時營 銷,數(shù)據(jù)挖掘等眾多領(lǐng)域中,對實時到達(dá)的數(shù)據(jù)按時間窗口進(jìn)行比如點擊數(shù),曝光數(shù)實時統(tǒng) 計,監(jiān)控指標(biāo)統(tǒng)計等實時統(tǒng)計,使用非常方便。
[0039] 可選地,在上述圖1所示實施例的技術(shù)方案的基礎(chǔ)上,其中步驟102 "根據(jù)配置信 息、至少一個字段、每個字段的值以及每個字段的值對應(yīng)的采集時間按照預(yù)設(shè)的時間窗進(jìn) 行數(shù)據(jù)統(tǒng)計,得到Key、Key對應(yīng)的Key值以及Key值對應(yīng)的當(dāng)前時間窗口值",具體可以包 括如下步驟:
[0040] (1)根據(jù)配置信息將至少一個字段統(tǒng)計為Key ;
[0041] 根據(jù)配置信息中的規(guī)則將至少一個字段統(tǒng)計合并為一個Key。
[0042] (2)根據(jù)每個字段的值對應(yīng)的采集時間和預(yù)設(shè)的時間窗,確定Key值對應(yīng)的當(dāng)前 時間窗口值;
[0043] 根據(jù)預(yù)設(shè)的時間窗及其大小,以及每個字段的值對應(yīng)的采集時間,可以確定每個 key值對應(yīng)的當(dāng)前的時間窗口值。需要說明的是,根據(jù)每個字段的值對應(yīng)的采集時間和預(yù)設(shè) 的時間窗,確定的當(dāng)前時間窗口值可以為一個或者多個,如兩個或者三個。例如,當(dāng)預(yù)設(shè)時 間窗為每分鐘是一個時間窗,如米集時間在12分1秒到12分59秒對于12分鐘的時間窗, 采集時間在13分1秒到13分59秒對于13分鐘的時間窗。當(dāng)至少一個字段中的字段值對 應(yīng)的采集時間既有12分1秒到12分59秒之間的時間,也有13分1秒到13分59秒之間 的時間。那么Key值對應(yīng)的當(dāng)前時間窗口值包括12分鐘的時間窗口值和13分鐘的時間窗 口值。
[0044] (3)根據(jù)配置信息和每個字段的值對應(yīng)的采集時間,將采集時間屬于同一當(dāng)前時 間窗口值對應(yīng)的時間窗口的字段的值進(jìn)行數(shù)據(jù)合并,得到Key對應(yīng)的Key值。
[0045] 例如配置信息的規(guī)則要求同一 Key中,屬于同一時間窗口的字段的值合并形成 Key的值。根據(jù)上述步驟確定的當(dāng)前時間窗口值,可以將屬于同一當(dāng)前時間窗口的各個字段 的值拼接即合并,得到當(dāng)前時間窗口下Key對應(yīng)的Key值。例如當(dāng)當(dāng)前時間窗口只有一個 時,即至少一個字段的值的采集時間都在當(dāng)前時間窗口中,這種情況比較簡單,將至少一個 字段的所有字段的值相拼接,得到當(dāng)前時間窗口下Key對應(yīng)的Key值。例如當(dāng)當(dāng)前時間窗 口有兩個時,至少一個字段的值的采集時間分布在兩個時間窗口中,將采集時間在同一個 時間窗口的字段的值相拼接,這樣各當(dāng)前時間窗口各對應(yīng)一個Key值。
[0046] 可選地,在上述圖1所示實施例的技術(shù)方案的基礎(chǔ)上,其中步驟103"根據(jù)Key、Key 對應(yīng)的Key值以及Key值對應(yīng)的當(dāng)前時間窗口值,在對K-V存儲系統(tǒng)中對Key對應(yīng)的Key 值按照時間窗進(jìn)行增量更新",具體可以包括:
[0047] (1)根據(jù)Key從K-V存儲系統(tǒng)中獲取Key對應(yīng)的Key值以及Key值對應(yīng)的時間窗 口值;
[0048] 由于需要進(jìn)行增量的合并更新,因此,先需要獲取從K-V存儲系統(tǒng)中獲取已經(jīng)存 儲的該Key對應(yīng)的Key值以及時間窗口值,在K-V存儲系統(tǒng)中,每個Key的值即Value采用 圖2所示的數(shù)據(jù)結(jié)構(gòu)存儲,Key的值Value以時間窗的結(jié)構(gòu)存儲。一個時間窗口對應(yīng)一個 Key的值,每個時間窗口值可以采用該時間窗口的初始時間值或者該時間窗口的共同特性 來標(biāo)識。例如預(yù)設(shè)時間窗為每分鐘是一個時間窗,如采集時間在12分1秒到12分59秒對 于12分鐘的時間窗口值可以采用12分鐘來標(biāo)識。
[0049] (2)判斷當(dāng)前時間窗口值是否包括在從K-V存儲系統(tǒng)中獲取的時間窗口值中;若 包括在,執(zhí)行步驟(3);若未包括在,執(zhí)行步驟(4);
[0050] 當(dāng)前時間窗口值是否包括在從K-V存儲系統(tǒng)中獲取的時間窗口值中,也可以理 解為判斷K-V存儲系統(tǒng)中是否已經(jīng)存儲有當(dāng)前時間窗口值。若當(dāng)前時間窗口值是包括在 從K-V存儲系統(tǒng)中獲取的時間窗口值中,即K-V存儲系統(tǒng)中已經(jīng)存儲有當(dāng)前時間窗口值, 此時需要在該當(dāng)前時間窗口的Key值中進(jìn)行Key值的增量更新。否則若未包括,確定K-V 存儲系統(tǒng)中還未存儲有當(dāng)前時間窗口值,即該當(dāng)前時間窗口值可能為該Key的一個新增量 的時間窗口,此時,可以在K-V存儲系統(tǒng)中增加該時間窗口,可以理解為在圖2中增加一個 Times 1 ot,并在其中存儲該當(dāng)前時間窗口值和該時間窗口中的Key的值。
[0051] (3)將當(dāng)前時間窗口值對應(yīng)的Key值與K-V存儲系統(tǒng)中同一時間窗口下Key對應(yīng) 的Key值進(jìn)行合并,并更新保存在K-V存儲系統(tǒng)中;
[0052] 即K-V存儲系統(tǒng)中已經(jīng)存儲有當(dāng)前時間窗口值,此時需要在該當(dāng)前時間窗口的 Key值中進(jìn)行Key值的增量更新,具體地,將當(dāng)前時間窗口下的Key值與K-V存儲系統(tǒng)中的 該當(dāng)前時間窗口中Key值合并,并保存在K-V存儲系統(tǒng)中,實現(xiàn)對K-V存儲系統(tǒng)中該當(dāng)前時 間窗口下Key值的更新。
[0053] (4)在K-V存儲系統(tǒng)中以增量的形式存儲Key對應(yīng)的Key值和Key值對應(yīng)的當(dāng)前 時間窗口值。
[0054] 若當(dāng)前時間窗口值未包括在從K-V存儲系統(tǒng)中獲取的時間窗口值,則可以確定 K-V存儲系統(tǒng)中還未存儲有當(dāng)前時間窗口值,即該當(dāng)前時間窗口值可能為該Key的一個新 增量的時間窗口,此時直接在K-V存儲系統(tǒng)中以增量的形式存儲Key對應(yīng)的Key值和Key 值對應(yīng)的當(dāng)前時間窗口值。
[0055] 根據(jù)上述實施例的記載,可以將時間窗分為滑動時間窗和非滑動時間窗,其中針 對滑動時間窗的Value,每次統(tǒng)計更新時都需要刪除超過時間范圍的過期數(shù)據(jù)。其中本實施 例中的時間范圍由用戶確定例如:可以只保留1個小時時間范圍的滑動數(shù)據(jù),那么隨著時 間的推移,更新數(shù)據(jù)的時候就會淘汰超過當(dāng)前時間1小時的數(shù)據(jù),而非滑動時間窗的Value 則不需要處理過期的數(shù)據(jù),非滑動時間窗存儲的是key值從系統(tǒng)啟動到當(dāng)前時間產(chǎn)生的全 部數(shù)據(jù)。為了靈活應(yīng)對基于時間窗統(tǒng)計的計算,需要設(shè)計一種可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)。如圖3 為本發(fā)明實施例中滑動時間窗和非滑動時間窗的結(jié)構(gòu)示意圖。將Key分為滑動時間窗key 和非滑動時間窗key。而Key的值Value :可以統(tǒng)一使用圖2所示結(jié)構(gòu)描述。
[0056] 可選地,在上述實施例的技術(shù)方案的基礎(chǔ)上,在步驟100 "對實時到達(dá)的原始數(shù)據(jù) 進(jìn)行解析"之前,還可以包括:從日志收集系統(tǒng)、中間件系統(tǒng)或者實時存儲系統(tǒng)獲取實時到 達(dá)的原始數(shù)據(jù)。例如可以實時地從Flume等日志收集系統(tǒng),或者Kafka等消息中間件系統(tǒng), 或者Redis,HBase等實時存儲系統(tǒng)實時的獲取原始數(shù)據(jù)。
[0057] 可選地,在上述實施例的技術(shù)方案的基礎(chǔ)上,本實施例的數(shù)據(jù)處理方法還可以包 括:對K-V存儲系統(tǒng)中的Key的值Value進(jìn)行管理,例如存儲時間較長的Key的值Value已 經(jīng)沒有實際意義,可以對其進(jìn)行刪除,或者對其進(jìn)行時間窗合并,便于讀取,即將存儲時間 較長的多個時間窗的數(shù)據(jù)合并為一個時間窗,這樣在讀取的時候,僅讀取一個時間窗的Key 值便獲取到,使用非常方便。
[0058] 上述實施例中的所有可選技術(shù)方案,可以采用可以結(jié)合的方式任意組合,形成本 發(fā)明的可選技術(shù)方案,在此不再一一贅述。
[0059] 上述實施例的數(shù)據(jù)處理方法,可以對實時到達(dá)的數(shù)據(jù)以時間窗口滑動形式進(jìn)行增 量更新,克服了現(xiàn)有技術(shù)中需要將有數(shù)據(jù)收集完畢一次進(jìn)行全量處理,無法及時處理實時 數(shù)據(jù)的缺陷,處理實時數(shù)據(jù)非常方便,沒有傳輸時延,確保數(shù)據(jù)的準(zhǔn)確性和時效性。本實施 例的技術(shù)方案,采用增量更新的方式處理實時數(shù)據(jù),能夠?qū)A繑?shù)據(jù)按照時間窗在秒,分 鐘,小時,天等粒度級別進(jìn)行實時統(tǒng)計,可以應(yīng)用在實時監(jiān)控,實時營銷,數(shù)據(jù)挖掘等眾多領(lǐng) 域中,對實時到達(dá)的數(shù)據(jù)按時間窗口進(jìn)行比如點擊數(shù),曝光數(shù)實時統(tǒng)計,監(jiān)控指標(biāo)統(tǒng)計等實 時統(tǒng)計,使用非常方便。
[0060] 圖4為本發(fā)明另一實施例提供的數(shù)據(jù)處理方法的流程圖。如圖4所示,本實施例 的數(shù)據(jù)處理方法,在上述圖1及后續(xù)可選技術(shù)方案的基礎(chǔ)上,進(jìn)一步更加詳細(xì)地介紹本發(fā) 明的技術(shù)方案。如圖4所示,本實施例的數(shù)據(jù)處理方法,具體可以包括如下步驟:
[0061] 200、從日志收集系統(tǒng)、中間件系統(tǒng)或者實時存儲系統(tǒng)獲取實時到達(dá)的原始數(shù)據(jù);
[0062] 例如,具體可以從從Flume等日志收集系統(tǒng),或者Kafka等消息中間件系統(tǒng),或者 Redis,HBase等實時存儲系統(tǒng)實時的獲取數(shù)據(jù)。
[0063] 201、將原始數(shù)據(jù)轉(zhuǎn)換為Field-Value的形式;
[0064] 其中原始數(shù)據(jù)可以文本,二進(jìn)制,PB等各種形式。
[0065] 202、根據(jù)配置信息從解析后的Field-Value的形式的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計 所需要的至少一個字段Field及每個字段的值Value ;
[0066] 該步驟的執(zhí)行需要依靠用戶預(yù)先配置好的配置信息,該配置信息中描述了配置的 規(guī)則,如后續(xù)數(shù)據(jù)統(tǒng)計需要的字段及其字段的值。該步驟的至少一個字段即為根據(jù)配置信 息獲取的。
[0067] 203、將至少一個字段Field統(tǒng)計合并為一個Key ;
[0068] 即根據(jù)配置信息規(guī)定的將哪些字段Field合并為一個Key。
[0069] 204、根據(jù)每個字段Field的值Value對應(yīng)的采集時間和預(yù)設(shè)的時間窗,確定每個 字段Field的值Value值對應(yīng)的當(dāng)前時間窗口值;
[0070] 預(yù)設(shè)的時間窗限定了時間窗的窗口大小,根據(jù)每個字段Field的值Value對應(yīng)的 采集時間,便可以確定每一個每個字段Field的值Value對應(yīng)的當(dāng)前時間窗口值。
[0071] 205、根據(jù)每個字段Field的值Value對應(yīng)的采集時間,將采集時間屬于同一當(dāng)前 時間窗口值對應(yīng)的時間窗口的字段Fie 1 d的值Value進(jìn)行數(shù)據(jù)合并,得到Key對應(yīng)的Key 值;
[0072] 該步驟中的數(shù)據(jù)合并亦即數(shù)據(jù)拼接,上述過程已經(jīng)將至少一個字段Field統(tǒng)計為 一個Key。那么該步驟便將至少一個字段Field的值Value進(jìn)行數(shù)據(jù)合并,得到Key的值與 Key對應(yīng)。
[0073] 206、根據(jù)Key從K-V存儲系統(tǒng)中獲取該Key對應(yīng)的Key值以及Key值對應(yīng)的時間 窗口值;
[0074] 如果不是第一次存儲該Key的信息,K-V存儲系統(tǒng)中已經(jīng)存儲有該Key的一些時 間窗口及時間窗口中包括的Key值,其存儲方式如圖2所示的結(jié)構(gòu)。該步驟即從K-V存儲 系統(tǒng)中獲取該Key對應(yīng)的Key值以及每個Key值的時間窗口值。
[0075] 207、判斷當(dāng)前時間窗口值是否包括在從K-V存儲系統(tǒng)中獲取的時間窗口值中,若 包括在,執(zhí)行步驟208 ;若未包括在,執(zhí)行步驟209 ;
[0076] 208、將當(dāng)前時間窗口值對應(yīng)的Key值與K-V存儲系統(tǒng)中同一時間窗口下Key對應(yīng) 的Key值進(jìn)行合并,并更新保存在K-V存儲系統(tǒng)中;
[0077] 該步驟通過將當(dāng)前時間窗口值對應(yīng)的Key值與K-V存儲系統(tǒng)中同一時間窗口下 Key對應(yīng)的Key值進(jìn)行合并,隨著時間的推移,如圖2所示的Value結(jié)構(gòu)中,時間窗口雖然沒 有新增加,但當(dāng)前時間窗口內(nèi)的Key值隨著時間滑動增加,實現(xiàn)以時間窗口滑動形式進(jìn)行 Key值的增量更新。
[0078] 209、在K-V存儲系統(tǒng)中以增量的形式存儲Key對應(yīng)的Key值和Key值對應(yīng)的當(dāng)前 時間窗口值。
[0079] 該步驟通過以增量的形式存儲Key對應(yīng)的Key值和Key值對應(yīng)的當(dāng)前時間窗口 值,隨著時間的推移,在如圖2所示的Value結(jié)構(gòu)中,增加新的時間窗口,實現(xiàn)以時間窗口滑 動形式進(jìn)行Key值的增量更新。
[0080] 上述實施例的數(shù)據(jù)處理方法,可以對實時到達(dá)的數(shù)據(jù)以時間窗口滑動形式進(jìn)行增 量更新,克服了現(xiàn)有技術(shù)中需要將有數(shù)據(jù)收集完畢一次進(jìn)行全量處理,無法及時處理實時 數(shù)據(jù)的缺陷,處理實時數(shù)據(jù)非常方便,沒有傳輸時延,確保數(shù)據(jù)的準(zhǔn)確性和時效性。本實施 例的技術(shù)方案,采用增量更新的方式處理實時數(shù)據(jù),能夠?qū)A繑?shù)據(jù)按照時間窗在秒,分 鐘,小時,天等粒度級別進(jìn)行實時統(tǒng)計,可以應(yīng)用在實時監(jiān)控,實時營銷,數(shù)據(jù)挖掘等眾多領(lǐng) 域中,對實時到達(dá)的數(shù)據(jù)按時間窗口進(jìn)行比如點擊數(shù),曝光數(shù)實時統(tǒng)計,監(jiān)控指標(biāo)統(tǒng)計等實 時統(tǒng)計,使用非常方便。
[0081] 圖5為本發(fā)明實施例提供的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖5所示,本實施例 的數(shù)據(jù)處理系統(tǒng),具體可以包括:解析組件10、提取組件11、統(tǒng)計組件12和更新組件13。
[0082] 其中解析組件10用于對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解析;提取組件11與解析組件 10連接,提取組件11用于根據(jù)配置信息從解析組件10解析后的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計 所需要的至少一個字段及每個字段的值;統(tǒng)計組件12與提取組件11連接,統(tǒng)計組件12用 于根據(jù)配置信息、提取組件11提取的至少一個字段、每個字段的值以及每個字段的值對應(yīng) 的采集時間按照預(yù)設(shè)的時間窗進(jìn)行數(shù)據(jù)統(tǒng)計,得到Key、Key對應(yīng)的Key值以及Key值對應(yīng) 的當(dāng)前時間窗口值;更新組件13與統(tǒng)計組件12連接,更新組建13用于根據(jù)統(tǒng)計組件12統(tǒng) 計得到的Key、Key對應(yīng)的Key值以及Key值對應(yīng)的當(dāng)前時間窗口值,在K-V存儲系統(tǒng)中對 Key對應(yīng)的Key值按照時間窗進(jìn)行增量更新。
[0083] 本實施例的數(shù)據(jù)處理系統(tǒng),通過采用上述組件實現(xiàn)數(shù)據(jù)處理與上述相關(guān)方式實施 例的實現(xiàn)機(jī)制相同,詳細(xì)可以參考上述實施例的記載,在此不再贅述。
[0084] 本實施例的數(shù)據(jù)處理系統(tǒng),通過采用上述組件實現(xiàn)對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解 析;根據(jù)配置信息從解析后的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計所需要的至少一個字段及每個字段 的值;根據(jù)配置信息、至少一個字段、每個字段的值以及每個字段的值對應(yīng)的采集時間按照 預(yù)設(shè)的時間窗進(jìn)行數(shù)據(jù)統(tǒng)計,得到Key、Key對應(yīng)的Key值以及Key值對應(yīng)的當(dāng)前時間窗口 值;根據(jù)Key、Key對應(yīng)的Key值以及Key值對應(yīng)的當(dāng)前時間窗口值,在對K-V存儲系統(tǒng)中 對Key對應(yīng)的Key值按照時間窗進(jìn)行增量更新。通過采用上述技術(shù)方案,本實施例可以對 實時到達(dá)的數(shù)據(jù)以時間窗口滑動形式進(jìn)行增量更新,克服了現(xiàn)有技術(shù)中需要將有數(shù)據(jù)收集 完畢一次進(jìn)行全量處理,無法及時處理實時數(shù)據(jù)的缺陷,處理實時數(shù)據(jù)非常方便,沒有傳輸 時延,確保數(shù)據(jù)的準(zhǔn)確性和時效性。本實施例的技術(shù)方案,采用增量更新的方式處理實時數(shù) 據(jù),能夠?qū)A繑?shù)據(jù)按照時間窗在秒,分鐘,小時,天等粒度級別進(jìn)行實時統(tǒng)計,可以應(yīng)用在 實時監(jiān)控,實時營銷,數(shù)據(jù)挖掘等眾多領(lǐng)域中,對實時到達(dá)的數(shù)據(jù)按時間窗口進(jìn)行比如點擊 數(shù),曝光數(shù)實時統(tǒng)計,監(jiān)控指標(biāo)統(tǒng)計等實時統(tǒng)計,使用非常方便。
[0085] 圖6為本發(fā)明另一實施例提供的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)圖。如圖6所示,本實施例 的數(shù)據(jù)處理系統(tǒng),在上述圖5所示實施例的技術(shù)方案的基礎(chǔ)上,進(jìn)一步包括如下技術(shù)方案。
[0086] 本實施例的數(shù)據(jù)處理系統(tǒng)中,解析組件10具體用于將原始數(shù)據(jù)轉(zhuǎn)換為字段-值的 形式,字段的值的類型為字符串、整型、浮點型、布爾型或者復(fù)合的對象類型。
[0087] 可選地,本實施例的數(shù)據(jù)處理系統(tǒng)中,統(tǒng)計組件12具體用于根據(jù)配置信息將提取 組件11提取的至少一個字段統(tǒng)計為Key ;根據(jù)提取組件11提取的每個字段的值對應(yīng)的采 集時間和預(yù)設(shè)的時間窗,確定Key值對應(yīng)的當(dāng)前時間窗口值;根據(jù)配置信息和提取組件11 提取的每個字段的值對應(yīng)的采集時間,將采集時間屬于同一當(dāng)前時間窗口值對應(yīng)的時間窗 口的字段的值進(jìn)行數(shù)據(jù)合并,得到Key對應(yīng)的Key值。
[0088] 可選地,本實施例的數(shù)據(jù)處理系統(tǒng)中,更新組件13具體用于根據(jù)Key從K-V存儲 系統(tǒng)中獲取統(tǒng)計組件12統(tǒng)計的Key對應(yīng)的Key值以及Key值對應(yīng)的時間窗口值;判斷當(dāng)前 時間窗口值是否包括在從K-V存儲系統(tǒng)中獲取的時間窗口值中;若包括在,將當(dāng)前時間窗 口值對應(yīng)的Key值與K-V存儲系統(tǒng)中同一時間窗口下Key對應(yīng)的Key值進(jìn)行合并,并更新 保存在K-V存儲系統(tǒng)中;若未包括在,在K-V存儲系統(tǒng)中以增量的形式存儲Key對應(yīng)的Key 值和Key值對應(yīng)的當(dāng)前時間窗口值。
[0089] 如圖5所示,本實施例的數(shù)據(jù)處理系統(tǒng)中還包括獲取組件14。該獲取組件14與解 析組件10連接,獲取組件14用于從日志收集系統(tǒng)、中間件系統(tǒng)或者實時存儲系統(tǒng)獲取實時 到達(dá)的原始數(shù)據(jù)。解析組件10用于從獲取組件14獲取實時到達(dá)的原始數(shù)據(jù)。
[0090] 例如獲取組件14可以連接Flume等日志收集系統(tǒng),或者Kafka等消息中間件系 統(tǒng),或者Redis,HBase等實時存儲系統(tǒng)用于實時的接收原始數(shù)據(jù)。
[0091] 可選地,本實施例的數(shù)據(jù)存儲系統(tǒng)中還可以包括管理組件,用于對Κ-ν存儲系統(tǒng) 中的Key的值Value進(jìn)行管理,例如存儲時間較長的Key的值Value已經(jīng)沒有實際意義,可 以對其進(jìn)行刪除,或者對其進(jìn)行時間窗合并,便于讀取,即將存儲時間較長的多個時間窗的 數(shù)據(jù)合并為一個時間窗,這樣在讀取的時候,僅讀取一個時間窗的Key值便獲取到,使用非 常方便。
[0092] 需要說明的是,上述實施例的數(shù)據(jù)處理系統(tǒng)中是以包括上述獲取組件、解析組件, 提取組件、統(tǒng)計組件和更新組件各一個為例,實際應(yīng)用中,為了能夠應(yīng)對海量的實時數(shù)據(jù), 獲取組件14、解析組件10,提取組件11、統(tǒng)計組件12和更新組件13分別包括線性擴(kuò)展的多 個,即各組件使用的物理機(jī)器數(shù),進(jìn)程數(shù),線程數(shù)都是可以進(jìn)行分布式線性擴(kuò)展的,組件與 組件之間通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換,可以做到靈活應(yīng)對實時數(shù)據(jù)上百億級別的海量數(shù)據(jù)。
[0093] 其中提取組件11統(tǒng)計組件12和更新組件13通過所處理的字段以及根據(jù)字段統(tǒng) 計后得到的Key關(guān)聯(lián)起來,這樣可以保證同一個字段或者同一個Key始終由相同的組件處 理,例如前一次處理完的數(shù)據(jù)可以放入組件的本地內(nèi)存緩存,在下次相同值的字段field 或者Key到達(dá)時,直接從緩存中讀取,提高數(shù)據(jù)處理效率。
[0094] 本實施例中的所有可選技術(shù)方案,可以采用可以結(jié)合的方式任意組合,形成本發(fā) 明的可選技術(shù)方案,在此不再一一贅述。
[0095] 本實施例的數(shù)據(jù)處理系統(tǒng),通過采用上述組件實現(xiàn)數(shù)據(jù)處理與上述相關(guān)方式實施 例的實現(xiàn)機(jī)制相同,詳細(xì)可以參考上述實施例的記載,在此不再贅述。
[0096] 本實施例的數(shù)據(jù)處理系統(tǒng),通過采用上述組件可以對實時到達(dá)的數(shù)據(jù)以時間窗口 滑動形式進(jìn)行增量更新,克服了現(xiàn)有技術(shù)中需要將有數(shù)據(jù)收集完畢一次進(jìn)行全量處理,無 法及時處理實時數(shù)據(jù)的缺陷,處理實時數(shù)據(jù)非常方便,沒有傳輸時延,確保數(shù)據(jù)的準(zhǔn)確性和 時效性。本實施例的技術(shù)方案,采用增量更新的方式處理實時數(shù)據(jù),能夠?qū)A繑?shù)據(jù)按照時 間窗在秒,分鐘,小時,天等粒度級別進(jìn)行實時統(tǒng)計,可以應(yīng)用在實時監(jiān)控,實時營銷,數(shù)據(jù) 挖掘等眾多領(lǐng)域中,對實時到達(dá)的數(shù)據(jù)按時間窗口進(jìn)行比如點擊數(shù),曝光數(shù)實時統(tǒng)計,監(jiān)控 指標(biāo)統(tǒng)計等實時統(tǒng)計,使用非常方便。
[0097] 圖7為本發(fā)明實施例的數(shù)據(jù)處理系統(tǒng)的應(yīng)用場景圖。如圖7所示,本實施例的數(shù) 據(jù)處理系統(tǒng),通過采用上述圖5或者圖所示的數(shù)據(jù)處理系統(tǒng)進(jìn)行數(shù)據(jù)處理的整個過程在應(yīng) 用層面可以分為數(shù)據(jù)解析,數(shù)據(jù)關(guān)聯(lián)和統(tǒng)計Key的生成,按時間窗增量合并更新三層架構(gòu), 并借用基于內(nèi)存的K-V存儲系統(tǒng)做到實時的數(shù)據(jù)存取。本實施例中基于內(nèi)存的K-V存儲系 統(tǒng)對上述實施例中的K-V存儲系統(tǒng)進(jìn)一步進(jìn)行限定,提升K-V存儲系統(tǒng)的性能。其中數(shù)據(jù) 解析實現(xiàn)上述圖5和圖6所示實施例中解析組件10的和提取組件11功能,將原始數(shù)據(jù)轉(zhuǎn) 換為Field-Value值的形式,而且還從解析后的數(shù)據(jù)源中提取需要的字段Field以及相應(yīng) 的值Value,提取出來后,不落地直接通過網(wǎng)絡(luò)隨機(jī)分發(fā)給統(tǒng)計組件11進(jìn)行數(shù)據(jù)關(guān)聯(lián),并根 據(jù)要統(tǒng)計的字段拼湊出要統(tǒng)計的Key,然后直接通過網(wǎng)絡(luò)按照Key分發(fā)給更新組件12,使其 按時間窗進(jìn)行合并更新的計算組件,并通過基于內(nèi)存的K-V存儲系統(tǒng)進(jìn)行數(shù)據(jù)的更新和存 儲。
[0098] 整個技術(shù)方案,為了對實時到達(dá)的數(shù)據(jù)能夠做到在秒級別的時間窗口內(nèi)統(tǒng)計,數(shù) 據(jù)從解析成字段表示形式,到傳輸給數(shù)據(jù)關(guān)聯(lián)組件進(jìn)行統(tǒng)計key的生成,再到傳輸給統(tǒng)計 模塊進(jìn)行合并更新,再到結(jié)果更新和存儲到基于內(nèi)存的κ-v存儲系統(tǒng)中,整個過程是數(shù)據(jù) 是完全不落地的,全部通過網(wǎng)絡(luò)和內(nèi)存交互。
[0099] 為了能夠應(yīng)對海量的實時數(shù)據(jù),整個方案中,解析組件,統(tǒng)計組件,更新組件使用 的物理機(jī)器數(shù),進(jìn)程數(shù),線程數(shù)都是可以進(jìn)行分布式線性擴(kuò)展的,組件與組件之間通過網(wǎng)絡(luò) 進(jìn)行數(shù)據(jù)交換,可以做到靈活應(yīng)對實時數(shù)據(jù)上百億級別的海量數(shù)據(jù)。
[0100] 本實施例的數(shù)據(jù)處理系統(tǒng),通過采用上述組件可以對實時到達(dá)的數(shù)據(jù)以時間窗口 滑動形式進(jìn)行增量更新,克服了現(xiàn)有技術(shù)中需要將有數(shù)據(jù)收集完畢一次進(jìn)行全量處理,無 法及時處理實時數(shù)據(jù)的缺陷,處理實時數(shù)據(jù)非常方便,沒有傳輸時延,確保數(shù)據(jù)的準(zhǔn)確性和 時效性。本實施例的技術(shù)方案,采用增量更新的方式處理實時數(shù)據(jù),能夠?qū)A繑?shù)據(jù)按照時 間窗在秒,分鐘,小時,天等粒度級別進(jìn)行實時統(tǒng)計,可以應(yīng)用在實時監(jiān)控,實時營銷,數(shù)據(jù) 挖掘等眾多領(lǐng)域中,對實時到達(dá)的數(shù)據(jù)按時間窗口進(jìn)行比如點擊數(shù),曝光數(shù)實時統(tǒng)計,監(jiān)控 指標(biāo)統(tǒng)計等實時統(tǒng)計,使用非常方便。
[0101] 由上所述,本發(fā)明實施例的技術(shù)方案能夠給各種依賴實時數(shù)據(jù)的系統(tǒng)帶來非常有 益的效果,例如:
[0102] a.通過實際的廣告業(yè)務(wù)驗證了此方法通過提供秒級實時的數(shù)據(jù),有效提的提高了 在廣告推薦中算法推薦的精準(zhǔn)度。
[0103] b.通過提供秒級實時的監(jiān)控數(shù)據(jù),能夠更快速及時的發(fā)現(xiàn)系統(tǒng)的問題,減小或避 免損失。
[0104] c.通過實時反饋tips營銷效果數(shù)據(jù),進(jìn)行策略的實時調(diào)整,極大的提高了 tips投 放的精準(zhǔn)度,提升tips彈窗的用戶體驗。
[0105] d.通過提供實時的特征數(shù)據(jù),在數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí)領(lǐng)域,能夠有效的提高模型預(yù) 測的準(zhǔn)確性。
[0106] 需要說明的是:上述實施例提供的數(shù)據(jù)處理系統(tǒng)在數(shù)據(jù)處理時,僅以上述各功能 組件的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能組 件完成,即將系統(tǒng)的內(nèi)部結(jié)構(gòu)劃分成不同的功能組件,以完成以上描述的全部或者部分功 能。另外,上述實施例提供的數(shù)據(jù)處理系統(tǒng)與數(shù)據(jù)處理方法實施例屬于同一構(gòu)思,其具體實 現(xiàn)過程詳見方法實施例,這里不再贅述。
[0107] 上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0108] 本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件 來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀 存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0109] 以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 一種數(shù)據(jù)處理方法,其特征在于,所述方法包括: 對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解析; 根據(jù)配置信息從解析后的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計所需要的至少一個字段及每個所 述字段的值; 根據(jù)所述配置信息、至少一個字段、每個所述字段的值以及每個所述字段的值對應(yīng)的 采集時間按照預(yù)設(shè)的時間窗進(jìn)行數(shù)據(jù)統(tǒng)計,得到鍵、所述鍵對應(yīng)的鍵值以及所述鍵值對應(yīng) 的當(dāng)前時間窗口值; 根據(jù)所述鍵、所述鍵對應(yīng)的鍵值以及所述鍵值對應(yīng)的當(dāng)前時間窗口值,在鍵值存儲系 統(tǒng)中對所述鍵對應(yīng)的所述鍵值按照時間窗進(jìn)行增量更新。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解析,包 括:將所述原始數(shù)據(jù)轉(zhuǎn)換為字段-值的形式,所述字段的值的類型為字符串、整型、浮點型、 布爾型或者復(fù)合的對象類型。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述配置信息、至少一個字段、每個 所述字段的值以及每個所述字段的值對應(yīng)的采集時間按照預(yù)設(shè)的時間窗進(jìn)行數(shù)據(jù)統(tǒng)計,得 到鍵、所述鍵對應(yīng)的鍵值以及所述鍵值對應(yīng)的當(dāng)前時間窗口值,包括 : 根據(jù)所述配置信息將所述至少一個字段統(tǒng)計為所述鍵; 根據(jù)每個所述字段的值對應(yīng)的采集時間和所述預(yù)設(shè)的時間窗,確定所述鍵值對應(yīng)的當(dāng) 前時間窗口值; 根據(jù)所述配置信息和每個所述字段的值對應(yīng)的采集時間,將采集時間屬于同一所述 當(dāng)前時間窗口值對應(yīng)的時間窗口的所述字段的值進(jìn)行數(shù)據(jù)合并,得到所述鍵對應(yīng)的所述鍵 值。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述鍵、所述鍵對應(yīng)的鍵值以及 所述鍵值對應(yīng)的當(dāng)前時間窗口值,在對鍵值存儲系統(tǒng)中對所述鍵對應(yīng)的所述鍵值按照時間 窗進(jìn)行增量更新,包括: 所述根據(jù)所述鍵從所述鍵值存儲系統(tǒng)中獲取所述鍵對應(yīng)的鍵值以及所述鍵值對應(yīng)的 時間窗口值; 判斷所述當(dāng)前時間窗口值是否包括在從所述鍵值存儲系統(tǒng)中獲取的所述時間窗口值 中; 若包括在,將所述當(dāng)前時間窗口值對應(yīng)的所述鍵值與所述鍵值存儲系統(tǒng)中同一時間窗 口下所述鍵對應(yīng)的鍵值進(jìn)行合并,并更新保存在所述鍵值存儲系統(tǒng)中; 若未包括在,在所述鍵值存儲系統(tǒng)中以增量的形式存儲所述鍵對應(yīng)的所述鍵值和所述 鍵值對應(yīng)的當(dāng)前時間窗口值。
5. 根據(jù)權(quán)利要求1-4任一所述的方法,其特征在于,對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解析 之前,所述方法還包括: 從日志收集系統(tǒng)、中間件系統(tǒng)或者實時存儲系統(tǒng)獲取實時到達(dá)的所述原始數(shù)據(jù)。
6. -種數(shù)據(jù)處理系統(tǒng),其特征在于,所述系統(tǒng)包括: 解析組件,用于對實時到達(dá)的原始數(shù)據(jù)進(jìn)行解析; 提取組件,用于根據(jù)配置信息從解析后的原始數(shù)據(jù)中提取數(shù)據(jù)統(tǒng)計所需要的至少一個 字段及每個所述字段的值; 統(tǒng)計組件,用于根據(jù)所述配置信息、至少一個字段、每個所述字段的值以及每個所述字 段的值對應(yīng)的采集時間按照預(yù)設(shè)的時間窗進(jìn)行數(shù)據(jù)統(tǒng)計,得到鍵、所述鍵對應(yīng)的鍵值以及 所述鍵值對應(yīng)的當(dāng)前時間窗口值; 更新組件,用于根據(jù)所述鍵、所述鍵對應(yīng)的鍵值以及所述鍵值對應(yīng)的當(dāng)前時間窗口值, 在鍵值存儲系統(tǒng)中對所述鍵對應(yīng)的所述鍵值按照時間窗進(jìn)行增量更新。
7. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述解析組件,具體用于將所述原始數(shù)據(jù) 轉(zhuǎn)換為字段-值的形式,所述字段的值的類型為字符串、整型、浮點型、布爾型或者復(fù)合的 對象類型。
8. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述統(tǒng)計組件,具體用于根據(jù)所述配置信 息將所述至少一個字段統(tǒng)計為所述鍵;根據(jù)每個所述字段的值對應(yīng)的采集時間和所述預(yù)設(shè) 的時間窗,確定所述鍵值對應(yīng)的當(dāng)前時間窗口值;根據(jù)所述配置信息和每個所述字段的值 對應(yīng)的采集時間,將采集時間屬于同一所述當(dāng)前時間窗口值對應(yīng)的時間窗口的所述字段的 值進(jìn)行數(shù)據(jù)合并,得到所述鍵對應(yīng)的所述鍵值。
9. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述更新組件,具體用于所述根據(jù)所述鍵 從所述鍵值存儲系統(tǒng)中獲取所述鍵對應(yīng)的鍵值以及所述鍵值對應(yīng)的時間窗口值;判斷所述 當(dāng)前時間窗口值是否包括在從所述鍵值存儲系統(tǒng)中獲取的所述時間窗口值中;若包括在, 將所述當(dāng)前時間窗口值對應(yīng)的所述鍵值與所述鍵值存儲系統(tǒng)中同一時間窗口下所述鍵對 應(yīng)的鍵值進(jìn)行合并,并更新保存在所述鍵值存儲系統(tǒng)中;若未包括在,在所述鍵值存儲系統(tǒng) 中以增量的形式存儲所述鍵對應(yīng)的所述鍵值和所述鍵值對應(yīng)的當(dāng)前時間窗口值。
10. 根據(jù)權(quán)利要求6-9任一所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括:獲取組件,用于 在所述解析組件對實時到達(dá)的所述原始數(shù)據(jù)進(jìn)行解析之前,從日志收集系統(tǒng)、中間件系統(tǒng) 或者實時存儲系統(tǒng)獲取實時到達(dá)的所述原始數(shù)據(jù)。
11. 根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述系統(tǒng)中的所述獲取組件、所述解析 組件,所述提取組件、所述統(tǒng)計組件和所述更新組件分別包括線性擴(kuò)展的多個。
12. 根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述提取組件、所述統(tǒng)計組件和所述更 新組件通過所處理的所述字段以及根據(jù)所述字段統(tǒng)計后得到的所述鍵關(guān)聯(lián)起來。
【文檔編號】G06F17/30GK104090889SQ201310680626
【公開日】2014年10月8日 申請日期:2013年12月12日 優(yōu)先權(quán)日:2013年12月12日
【發(fā)明者】張文郁 申請人:深圳市騰訊計算機(jī)系統(tǒng)有限公司