分析用戶業(yè)務(wù)量的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及計算機通信技術(shù)領(lǐng)域,具體涉及互聯(lián)網(wǎng)通信數(shù)據(jù)傳輸技術(shù)領(lǐng)域,尤其涉及分析用戶業(yè)務(wù)量的方法和系統(tǒng)。
【背景技術(shù)】
[0002]為了滿足用戶對業(yè)務(wù)量的分析結(jié)果(例如根據(jù)業(yè)務(wù)量得到的計費結(jié)果)的需求,對象存儲系統(tǒng)需要根據(jù)用戶的業(yè)務(wù)量數(shù)據(jù)(流量數(shù)據(jù)、容量數(shù)據(jù)和應(yīng)用程序編程接口 API的調(diào)用數(shù)據(jù)等)進行實時業(yè)務(wù)結(jié)算,具有數(shù)據(jù)量大、實時性要求高的特點。一方面,對象存儲系統(tǒng)的海量用戶導致了需要分析的數(shù)據(jù)量巨大,會對數(shù)據(jù)傳輸和后端的分析服務(wù)造成較大的壓力。另一方面,對象存儲系統(tǒng)要求對每個用戶的業(yè)務(wù)量數(shù)據(jù)間隔一分鐘記錄一次,用戶的操作要在幾分鐘之內(nèi)展現(xiàn)在圖表當中以供查看,對實時性提出了很高的要求。
[0003]目前,分析這種密集更新的業(yè)務(wù)量數(shù)據(jù)的方法主要有兩種:一種是將用戶請求日志傳輸?shù)椒植际较到y(tǒng)基礎(chǔ)架構(gòu)Hadoop之類的大規(guī)模數(shù)據(jù)批處理平臺上,統(tǒng)一進行分析;另一種方法是使用內(nèi)存數(shù)據(jù)庫對數(shù)據(jù)的更新進行緩存,然后再將數(shù)據(jù)推送給后端完成業(yè)務(wù)量數(shù)據(jù)分析的業(yè)務(wù)節(jié)點。
[0004]然而,如果使用Hadoop之類的大規(guī)模數(shù)據(jù)批處理平臺,首先,數(shù)據(jù)需要湊齊一個批次才能夠進行分析,計算延遲比較高;其次,由于Hadoop本身就是針對大吞吐量而非低延遲進行設(shè)計和優(yōu)化的,每個作業(yè)任務(wù)之間還需要進行同步和調(diào)度,數(shù)據(jù)在不同節(jié)點之間傳輸,都會引入新的延遲。如果考慮到實時性,以分鐘為間隔對數(shù)據(jù)進行批處理,則會在分布式文件系統(tǒng)HDFS中產(chǎn)生大量的小文件,從而給元數(shù)據(jù)服務(wù)器MetaServer造成很大壓力。如果以小時為間隔對數(shù)據(jù)進行批處理,則用戶需要等待一段時間才能查詢到上一小時的數(shù)據(jù)。如果使用內(nèi)存數(shù)據(jù)庫,由于大部分內(nèi)存數(shù)據(jù)庫都不提供完整的持久化支持。因此只能間隔一段時間產(chǎn)生一份內(nèi)存數(shù)據(jù)快照,如果在間隔的這段時間內(nèi)系統(tǒng)宕機,則會丟失一部分修改。需要注意的是,如果在將數(shù)據(jù)發(fā)送給后端的業(yè)務(wù)節(jié)點后出現(xiàn)系統(tǒng)宕機的情況,而將內(nèi)存中的數(shù)據(jù)刪除這一改動還沒有來得及同步到硬盤中,將會提供給用戶額外的、不公平的業(yè)務(wù)結(jié)算結(jié)果。
【發(fā)明內(nèi)容】
[0005]本申請的目的在于提出一種改進的分析用戶業(yè)務(wù)量的方法和系統(tǒng),來解決以上【背景技術(shù)】部分提到的技術(shù)問題。
[0006]第一方面,本申請?zhí)峁┝艘环N分析用戶業(yè)務(wù)量的方法,所述方法包括:單機節(jié)點以分鐘為間隔執(zhí)行以下第一操作流程:獲取具有同一時間戳的請求日志,從所述請求日志中解析初始業(yè)務(wù)量數(shù)據(jù),合并屬于同一用戶的初始業(yè)務(wù)量數(shù)據(jù),得到第一業(yè)務(wù)量數(shù)據(jù),發(fā)送所述第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點,其中,所述請求日志用于記錄用戶的業(yè)務(wù)量請求,所述時間戳的格式為年月日時分;所述數(shù)據(jù)處理節(jié)點以分鐘為間隔執(zhí)行以下第二操作流程:根據(jù)用戶信息,合并來自于不同單機節(jié)點且具有所述同一時間戳的所述第一業(yè)務(wù)量數(shù)據(jù),得到第二業(yè)務(wù)量數(shù)據(jù),發(fā)送所述第二業(yè)務(wù)量數(shù)據(jù)至業(yè)務(wù)節(jié)點;所述業(yè)務(wù)節(jié)點根據(jù)接收的所述第二業(yè)務(wù)量數(shù)據(jù),分析用戶業(yè)務(wù)量。
[0007]第二方面,本申請?zhí)峁┝艘环N分析用戶業(yè)務(wù)量的系統(tǒng),所述系統(tǒng)包括:單機節(jié)點,用于以分鐘為間隔進行以下操作:獲取具有同一時間戳的請求日志,從所述請求日志中解析初始業(yè)務(wù)量數(shù)據(jù),合并屬于同一用戶的初始業(yè)務(wù)量數(shù)據(jù),得到第一業(yè)務(wù)量數(shù)據(jù),發(fā)送所述第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點,其中,所述請求日志用于記錄用戶的業(yè)務(wù)量請求,所述時間戳的格式為年月日時分;所述數(shù)據(jù)處理節(jié)點,用于以分鐘為間隔進行以下操作:根據(jù)用戶信息,合并來自于不同單機節(jié)點且具有所述同一時間戳的所述第一業(yè)務(wù)量數(shù)據(jù),得到第二業(yè)務(wù)量數(shù)據(jù),發(fā)送所述第二業(yè)務(wù)量數(shù)據(jù)至業(yè)務(wù)節(jié)點;所述業(yè)務(wù)節(jié)點,根據(jù)接收的所述第二業(yè)務(wù)量數(shù)據(jù),分析用戶業(yè)務(wù)量。
[0008]本申請?zhí)峁┑姆治鲇脩魳I(yè)務(wù)量的方法和系統(tǒng),首先通過單機節(jié)點以分鐘為間隔執(zhí)行以下第一操作流程:獲取具有同一時間戳的請求日志,從請求日志中解析初始業(yè)務(wù)量數(shù)據(jù),合并屬于同一用戶的初始業(yè)務(wù)量數(shù)據(jù),得到第一業(yè)務(wù)量數(shù)據(jù),發(fā)送第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點;之后通過數(shù)據(jù)處理節(jié)點以分鐘為間隔執(zhí)行以下第二操作流程:根據(jù)用戶信息,合并來自于不同單機節(jié)點且具有同一時間戳的第一業(yè)務(wù)量數(shù)據(jù),得到第二業(yè)務(wù)量數(shù)據(jù),發(fā)送第二業(yè)務(wù)量數(shù)據(jù)至業(yè)務(wù)節(jié)點;最后通過業(yè)務(wù)節(jié)點根據(jù)接收的第二業(yè)務(wù)量數(shù)據(jù),分析用戶業(yè)務(wù)量。由于在業(yè)務(wù)量數(shù)據(jù)傳輸?shù)倪^程中進行了兩次數(shù)據(jù)合并,減少了不必要的重復數(shù)據(jù)的傳輸,并實現(xiàn)了按分鐘處理業(yè)務(wù)量數(shù)據(jù),計算延遲較低。
【附圖說明】
[0009]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
[0010]圖1是本申請可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;
[0011]圖2是根據(jù)本申請實施例的分析用戶業(yè)務(wù)量的方法的一個示意性流程圖;
[0012]圖3是根據(jù)本申請實施例的圖2的分析用戶業(yè)務(wù)量的方法的一個應(yīng)用場景所應(yīng)用的框架示意圖;
[0013]圖4是根據(jù)本申請實施例的基于圖2的分析用戶業(yè)務(wù)量的方法的一個示意性流程圖;
[0014]圖5是根據(jù)本申請實施例的基于圖4的分析用戶業(yè)務(wù)量的方法的一個示意性流程圖;
[0015]圖6是根據(jù)本申請實施例的基于圖5的分析用戶業(yè)務(wù)量的方法的一個示意性流程圖;
[0016]圖7是根據(jù)本申請實施例的基于圖6的分析用戶業(yè)務(wù)量的方法的一個示意性流程圖;
[0017]圖8是根據(jù)本申請實施例的基于圖2至圖7中任意一方法的分析用戶業(yè)務(wù)量的方法的一個示意性流程圖。
[0018]圖9是根據(jù)本申請實施例的基于圖8的分析用戶業(yè)務(wù)量的方法的一個示意性流程圖;
[0019]圖10是根據(jù)本申請實施例的基于圖9的分析用戶業(yè)務(wù)量的方法的一個示意性流程圖;
[0020]圖11是根據(jù)本申請實施例的基于圖10的分析用戶業(yè)務(wù)量的方法的一個示意性流程圖;
[0021]圖12是根據(jù)本申請實施例的分析用戶業(yè)務(wù)量的系統(tǒng)的一個示例性結(jié)構(gòu)圖;
[0022]圖13是適于用來實現(xiàn)本申請實施例的服務(wù)器的計算機系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0023]下面結(jié)合附圖和實施例對本申請作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
[0024]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細說明本申請。
[0025]圖1示出了可以應(yīng)用本申請的分析用戶業(yè)務(wù)量的方法或分析用戶業(yè)務(wù)量的系統(tǒng)的實施例的示例性系統(tǒng)架構(gòu)100。
[0026]如圖1所示,系統(tǒng)架構(gòu)100可以包括終端設(shè)備101、102和多個服務(wù)器104。網(wǎng)絡(luò)103用以在終端設(shè)備101、102和服務(wù)器104之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)103可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。
[0027]用戶110可以使用終端設(shè)備101、102通過網(wǎng)絡(luò)103與服務(wù)器104交互,以上傳或下載數(shù)據(jù)等。終端設(shè)備101、102上可以安裝有各種客戶端應(yīng)用,例如網(wǎng)頁瀏覽器應(yīng)用、搜索類應(yīng)用、即時通信工具、郵箱客戶端、社交平臺軟件、云平臺應(yīng)用等。
[0028]終端設(shè)備101、102可以是具有顯示屏并且支持數(shù)據(jù)上傳下載的各種電子設(shè)備,包括但不限于移動智能終端、平板電腦、膝上型便攜計算機、臺式計算機、多媒體播放器和電子閱讀器等等。
[0029]服務(wù)器104可以是提供對象存儲或數(shù)據(jù)處理的服務(wù)器,數(shù)量可以為多個,并且多個服務(wù)器104可以形成服務(wù)器集群。例如對終端設(shè)備101、102上網(wǎng)頁顯示的文件提供對象存儲的服務(wù)器或?qū)Υ鎯Φ臉I(yè)務(wù)量數(shù)據(jù)進行分析處理的服務(wù)器。提供對象存儲的服務(wù)器可以對接收到的上傳請求或下載請求等數(shù)據(jù)進行分析處理,并將處理結(jié)果(例如上傳或下載的文件數(shù)據(jù))反饋給終端設(shè)備。
[0030]需要說明的是,本申請實施例所提供的分析用戶業(yè)務(wù)量的方法中的操作步驟一般由服務(wù)器104形成的服務(wù)器集群執(zhí)行,相應(yīng)地,分析用戶業(yè)務(wù)量的系統(tǒng)中的節(jié)點一般設(shè)置于各服務(wù)器104中。
[0031]應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器的數(shù)目僅僅是示意性的。根據(jù)實現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器。
[0032]繼續(xù)參考圖2,其示出了根據(jù)本申請實施例的分析用戶業(yè)務(wù)量的方法的一個示意性流程圖200。該分析用戶業(yè)務(wù)量的方法200,包括以下步驟:
[0033]步驟201,單機節(jié)點以分鐘為間隔執(zhí)行以下第一操作流程:獲取具有同一時間戳的請求日志,從請求日志中解析初始業(yè)務(wù)量數(shù)據(jù),合并屬于同一用戶的初始業(yè)務(wù)量數(shù)據(jù),得到第一業(yè)務(wù)量數(shù)據(jù),發(fā)送第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點。
[0034]在本實施例中,第一操作流程可以同時運行于服務(wù)器集群中的多個服務(wù)器上,而服務(wù)器集群是指將很多服務(wù)器集中起來一起進行同一種服務(wù),在客戶端看來就像是只有一個服務(wù)器。服務(wù)器集群可以利用多個計算機進行并行計算從而獲得很高的計算速度,也可以用多個計算機做備份,從而使得任何一個服務(wù)器壞了整個服務(wù)器集群還是能正常運行。
[0035]在上述的多個服務(wù)器中,每一個服務(wù)器可以作為一個單機節(jié)點,獲取本地具有同一時間戳Ti的請求日志。通常,獲取的請求日志記錄了用戶的業(yè)務(wù)量請求,例如記錄用戶的流量、容量和API調(diào)用等業(yè)務(wù)量請求,該請求日志的時間戳的格式可以為年月日時分。
[0036]之后,各單機節(jié)點從各自獲取的請求日志中解析出分析業(yè)務(wù)量所需要的初始業(yè)務(wù)量數(shù)據(jù),并將屬于同一用戶的初始業(yè)務(wù)量數(shù)據(jù)進行合并,得到第一業(yè)務(wù)量數(shù)據(jù)。
[0037]單機節(jié)點在進行初始業(yè)務(wù)量數(shù)據(jù)的合并時,可以僅根據(jù)屬于同一用戶這一特征合并初始業(yè)務(wù)量數(shù)據(jù),例如將解析出的初始業(yè)務(wù)量數(shù)據(jù)分別合并至張某、王某及其他用戶名下;也可以根據(jù)屬于同一用戶之下的同一業(yè)務(wù)量種類,分別合并初始業(yè)務(wù)量數(shù)據(jù),例如將解析出的屬于張某的初始業(yè)務(wù)量數(shù)據(jù)分別合并至張某的流量、容量和API調(diào)用這三種業(yè)務(wù)量種類下。
[0038]單機節(jié)點在進行上述合并步驟之后,將合并得到的第一業(yè)務(wù)量數(shù)據(jù)發(fā)送給數(shù)據(jù)處理節(jié)點,以便進行下一步處理。
[0039]在本實施例的一些可選實現(xiàn)方式中,在發(fā)送第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點時,可以記錄第一發(fā)送事務(wù)的處理標記至預設(shè)的第一重做日志。
[0040]需要說明的是,上述的第一發(fā)送事務(wù)為發(fā)送第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點的事務(wù);第一發(fā)送事務(wù)的處理標記至少包括第一發(fā)送事務(wù)的開始標記和結(jié)束標記。
[0041]在本實施例的一些可選實現(xiàn)方式中,上述的單機節(jié)點發(fā)送第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點還可以包括但不限于:響應(yīng)于發(fā)送第一業(yè)務(wù)量數(shù)據(jù)成功,間隔第一預定時間刪除內(nèi)存中發(fā)送成功的第一業(yè)務(wù)量數(shù)據(jù);響應(yīng)于將發(fā)送失敗的第一業(yè)務(wù)量數(shù)據(jù)合并回內(nèi)存的次數(shù)超過第一預置次數(shù)或持續(xù)發(fā)送失敗的時間超過第一預置時間,觸發(fā)報警提醒。
[0042]需要說明的是,上述的第一預定時間,是指預先設(shè)定的用于刪除內(nèi)存中發(fā)送成功的第一業(yè)務(wù)量數(shù)據(jù)的間隔時間,當發(fā)送第一業(yè)務(wù)量數(shù)據(jù)成功第一預定時間后,刪除發(fā)送成功的第一業(yè)務(wù)量數(shù)據(jù);上述的第一預置次數(shù),是指預先設(shè)置的允許將發(fā)送失敗的第一業(yè)務(wù)量數(shù)據(jù)合并回內(nèi)存的次數(shù),當將發(fā)送失敗的第一業(yè)務(wù)量數(shù)據(jù)合并回內(nèi)存的次數(shù)超過第一預置次數(shù)時,觸發(fā)報警提醒;上述的第一預置時間,是指預先設(shè)置的允許持續(xù)發(fā)送失敗的時間,當持續(xù)發(fā)送失敗的時間超過第一預置時間時,觸發(fā)報警提醒。
[0043]在本實施例的一些可選實現(xiàn)方式中,在獲取具有同一時間戳的請求日志,從請求日志中解析初始業(yè)務(wù)量數(shù)據(jù),合并屬于同一用戶的初始業(yè)務(wù)量數(shù)據(jù),得到第一業(yè)務(wù)量數(shù)據(jù)時,可以記錄第一獲取事務(wù)的處理標記至第一重做日志。
[0044]需要說明的是,上述的第一獲取事務(wù)為獲取具有同一時間戳的請求日志,從請求日志中解析初始業(yè)務(wù)量數(shù)據(jù),合并屬于同一用戶的初始業(yè)務(wù)量數(shù)據(jù),得到第一業(yè)務(wù)量數(shù)據(jù)的事務(wù);第一獲取事務(wù)的處理標記至少包括第一獲取事務(wù)的開始標記和結(jié)束標記。
[0045]步驟202,數(shù)據(jù)處理節(jié)點以分鐘為間隔執(zhí)行以下第二操作流程:根據(jù)用戶信息,合并來自于不同單機節(jié)點且具有同一時間戳的第一業(yè)務(wù)量數(shù)據(jù),得到第二業(yè)務(wù)量數(shù)據(jù),發(fā)送第二業(yè)務(wù)量數(shù)據(jù)至業(yè)務(wù)節(jié)點。
[0046]在本實施例中,第二操作流程可以運行于數(shù)據(jù)處理節(jié)點上。該數(shù)據(jù)處理節(jié)點,可以根據(jù)接收的第一業(yè)務(wù)量數(shù)據(jù)以及服務(wù)器的硬件配置來確定:當接收的第一業(yè)務(wù)量數(shù)據(jù)較少能夠和處理初始業(yè)務(wù)量數(shù)據(jù)的單機節(jié)點合并時,數(shù)據(jù)處理節(jié)點可以是上述的單機節(jié)點中的一個;當接收的第一業(yè)務(wù)量數(shù)據(jù)需要使用單獨的服務(wù)器進行處理時,數(shù)據(jù)處理節(jié)點也可以是獨立于上述的單機節(jié)點的專用服務(wù)器,該專用服務(wù)器可以位于上述的包括單機節(jié)點的服務(wù)器集群中,也可以獨立于上述的包括單機節(jié)點的服務(wù)器集群存在;當接收的第一業(yè)務(wù)量數(shù)據(jù)特別多需要使用多臺服務(wù)器組成專用服務(wù)器集群進行處理時,數(shù)據(jù)處理節(jié)點還可以是專用的服務(wù)器集群。
[0047]數(shù)據(jù)處理節(jié)點在接收到上述的多個單機節(jié)點在步驟201中發(fā)送的第一業(yè)務(wù)量數(shù)據(jù)之后,可以按照用戶信息,合并來自于不同單機節(jié)點且具有統(tǒng)一時間戳的第一業(yè)務(wù)量數(shù)據(jù)。
[0048]數(shù)據(jù)處理節(jié)點在合并第一業(yè)務(wù)量數(shù)據(jù)時,可以按照單機節(jié)點合并初始業(yè)務(wù)量的格式進行第一業(yè)務(wù)量數(shù)據(jù)的合并:當單機節(jié)點僅按照屬于同一用戶這一特征合并第一業(yè)務(wù)