一種基于大數(shù)據(jù)處理的積分計(jì)算方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于大數(shù)據(jù)處理的積分計(jì)算方法,其中,所述方法包括:通過大數(shù)據(jù)同步工具將交易流水信息上傳至分布式文件系統(tǒng);對(duì)所述上傳后的所述交易流水信息進(jìn)行預(yù)處理,得到有效流水文件;對(duì)所述有效流水文件中的積分信息進(jìn)行計(jì)算并生成積分結(jié)果;對(duì)所述積分結(jié)果進(jìn)行調(diào)整處理,生成調(diào)整后的有效積分流水文件;讀取所述有效積分流水文件,再根據(jù)不同維度類別對(duì)所述有效積分流水文件進(jìn)行匯總處理,生成積分匯總明細(xì)。采用本發(fā)明,通過分布式文件系統(tǒng)存儲(chǔ)海量數(shù)據(jù),并通過分布式計(jì)算特點(diǎn)實(shí)現(xiàn)計(jì)算客戶積分的運(yùn)算邏輯,不僅簡(jiǎn)化了計(jì)算過程,提高了客戶積分的運(yùn)算效率和數(shù)據(jù)管理的時(shí)效性。
【專利說明】
一種基于大數(shù)據(jù)處理的積分計(jì)算方法和系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及大數(shù)據(jù)處理領(lǐng)域,更為具體而言,涉及一種基于大數(shù)據(jù)處理的積分計(jì)算方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著銀行業(yè)務(wù)的不斷擴(kuò)展深入,銀行業(yè)務(wù)對(duì)于后臺(tái)系統(tǒng)的要求不斷提升,主要體現(xiàn)在實(shí)時(shí)性要求高、數(shù)據(jù)量大等方面。特別是針對(duì)日終批處理類,特別是綜合積分計(jì)算,在當(dāng)前后臺(tái)大數(shù)據(jù)量的背景下,批處理任務(wù)的完成實(shí)效性,綜合積分的及時(shí)更新,后臺(tái)大數(shù)據(jù)量處理為銀行信息技術(shù)提出了新的挑戰(zhàn)。
[0003]同時(shí),隨著銀行數(shù)據(jù)來源的多元化,渠道的多元化,業(yè)務(wù)服務(wù)的多元化,需要處理的數(shù)據(jù)量有了質(zhì)的變化。同時(shí)互聯(lián)網(wǎng)金融的發(fā)展對(duì)于銀行根據(jù)客戶需求開發(fā)新興業(yè)務(wù)產(chǎn)品提出挑戰(zhàn),這種挑戰(zhàn)對(duì)于大量數(shù)據(jù)有更深層次的挖掘需求。
[0004]現(xiàn)有技術(shù)處理方式下,批處理計(jì)算作業(yè)一般是通過自動(dòng)任務(wù)的方式日終統(tǒng)一處理即集中式計(jì)算。但這種模式難以適應(yīng)日益復(fù)雜的應(yīng)用需求。在信息時(shí)代,很多方面都需要處理龐大信息量,動(dòng)輒百萬的數(shù)據(jù)量,集中式計(jì)算很難滿足這些需求。
【發(fā)明內(nèi)容】
[0005]鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明實(shí)施方式提供了一種基于大數(shù)據(jù)處理的積分計(jì)算方法,能夠解決當(dāng)前銀行處理客戶積分時(shí),數(shù)據(jù)量大、時(shí)效性要求高和批處理計(jì)算無法得到滿足的要求。
[0006]具體地,本發(fā)明實(shí)施方式提供了一種基于大數(shù)據(jù)處理的積分計(jì)算方法,其包括:
[0007]通過大數(shù)據(jù)同步工具將交易流水信息上傳至分布式文件系統(tǒng);
[0008]對(duì)所述上傳后的所述交易流水信息進(jìn)行預(yù)處理,得到有效流水文件;
[0009]對(duì)所述有效流水文件中的積分信息進(jìn)行計(jì)算并生成積分結(jié)果;
[0010]對(duì)所述積分結(jié)果進(jìn)行調(diào)整處理,生成調(diào)整后的有效積分流水文件;
[0011]讀取所述有效積分流水文件,再根據(jù)不同維度類別對(duì)所述有效積分流水文件進(jìn)行匯總處理,生成積分匯總明細(xì)。
[0012]相應(yīng)地,本發(fā)明實(shí)施方式還提供了一種基于大數(shù)據(jù)處理的積分計(jì)算系統(tǒng),其包括:
[0013]輸入模塊,用于通過大數(shù)據(jù)同步工具將交易流水信息上傳至分布式文件系統(tǒng);
[0014]預(yù)處理模塊,用于對(duì)所述上傳后的所述交易流水信息進(jìn)行預(yù)處理,得到有效流水文件;
[0015]計(jì)算模塊,用于對(duì)所述有效流水文件中的積分信息進(jìn)行計(jì)算并生成積分結(jié)果;
[0016]調(diào)整模塊,用于對(duì)所述積分結(jié)果進(jìn)行調(diào)整處理,生成調(diào)整后的有效積分流水文件;
[0017]匯總模塊,用于讀取所述有效積分流水文件,再根據(jù)不同維度類別對(duì)所述有效積分流水文件進(jìn)行匯總處理,生成積分匯總明細(xì)。
[0018]采用本發(fā)明實(shí)施方式具有下述有益效果:
[0019]通過分布式文件系統(tǒng)(HDFS)存儲(chǔ)海量數(shù)據(jù),并通過分布式計(jì)算特點(diǎn)實(shí)現(xiàn)計(jì)算客戶積分的運(yùn)算邏輯,不僅簡(jiǎn)化了計(jì)算過程,提高了客戶積分的運(yùn)算效率和數(shù)據(jù)管理的時(shí)效性。
【附圖說明】
[0020]圖1是根據(jù)本發(fā)明實(shí)施方式的一種基于大數(shù)據(jù)處理的積分計(jì)算方法的流程示意圖;
[0021]圖2是根據(jù)本發(fā)明實(shí)施方式的一種基于大數(shù)據(jù)處理的積分計(jì)算系統(tǒng)的架構(gòu)圖;
[0022]圖3示出了圖2所示的預(yù)處理模塊200的框圖;
[0023]圖4示出了圖2所示的計(jì)算模塊300的框圖;
[0024]圖5示出了圖2所示的調(diào)整模塊400的框圖。
【具體實(shí)施方式】
[0025]為了便于理解本發(fā)明技術(shù)方案的各個(gè)方面、特征以及優(yōu)點(diǎn),下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行具體描述。應(yīng)當(dāng)理解,下述的各種實(shí)施方式只用于舉例說明,而非用于限制本發(fā)明的保護(hù)范圍。
[0026]首先對(duì)根據(jù)本發(fā)明可能涉及到的名稱或術(shù)語進(jìn)行解釋。
[0027]大數(shù)據(jù):官方定義是指那些數(shù)據(jù)量特別大、數(shù)據(jù)類別特別復(fù)雜的數(shù)據(jù)集,這種數(shù)據(jù)集無法用傳統(tǒng)的數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ),管理和處理。大數(shù)據(jù)的主要特點(diǎn)為數(shù)據(jù)量大(Volume),數(shù)據(jù)類別復(fù)雜(Variety),數(shù)據(jù)處理速度快(Velocity)和數(shù)據(jù)真實(shí)性高(Veracity),合起來被稱為4V。
[0028]集中式計(jì)算:通過不斷增加處理器的數(shù)量來增強(qiáng)單個(gè)計(jì)算機(jī)的計(jì)算能力,從而提高處理數(shù)據(jù)的速度
[0029]分布式計(jì)算:把一組計(jì)算機(jī)通過網(wǎng)絡(luò)相互連接組成分散系統(tǒng),然后將需要處理的大量數(shù)據(jù)分散成多個(gè)部分,交由分散系統(tǒng)內(nèi)的計(jì)算機(jī)組同時(shí)計(jì)算,最后將這些計(jì)算結(jié)果合并得到最終的結(jié)果。盡管分散系統(tǒng)內(nèi)的單個(gè)計(jì)算機(jī)的計(jì)算能力不強(qiáng),但是由于每個(gè)計(jì)算機(jī)只計(jì)算一部分?jǐn)?shù)據(jù),而且是多臺(tái)計(jì)算機(jī)同時(shí)計(jì)算,所以就分散系統(tǒng)而言,處理數(shù)據(jù)的速度會(huì)遠(yuǎn)高于單個(gè)計(jì)算機(jī)。
[°03°] MapReduce:MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。概念"Map(映射)〃和"Reduce(歸約)〃,是它們的主要思想,都是從函數(shù)式編程語言里借來的,還有從矢量編程語言里借來的特性。它極大地方便了編程人員在不會(huì)分布式并行編程的情況下,將自己的程序運(yùn)行在分布式系統(tǒng)上。當(dāng)前的軟件實(shí)現(xiàn)是指定一個(gè)Map(映射)函數(shù),用來把一組鍵值對(duì)映射成一組新的鍵值對(duì),指定并發(fā)的Reduce(歸約)函數(shù),用來保證所有映射的鍵值對(duì)中的每一個(gè)共享相同的鍵組。
[0031 ] Hadoop: 一種分布式計(jì)算系統(tǒng)。采用MapReduce分布式計(jì)算框架,并根據(jù)GFS(Google File System)開發(fā)了HDFS分布式文件系統(tǒng),根據(jù)BigTable開發(fā)了HBase數(shù)據(jù)存儲(chǔ)系統(tǒng)。Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduceADFS為海量的數(shù)據(jù)提供了存儲(chǔ),MapReduce為海量的數(shù)據(jù)提供了計(jì)算。
[0032]HDFS:Hadoop Distributed File System的縮寫。Hadoop實(shí)現(xiàn)的文件系統(tǒng)。HDFS有高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。
[0033]Spark:Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的并行計(jì)算框架,Spark基于map reduce算法實(shí)現(xiàn)的分布式計(jì)算,擁有Hadoop MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是Job中間輸出和結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的mapreduce的算法。
[0034]RDD:彈性分布式數(shù)據(jù)集(resilient distributed dataset) aSpark提出的最主要抽象概念。這是一個(gè)有容錯(cuò)機(jī)制并可以被并行操作的元素集合。它是一個(gè)元素集合,劃分到集群的各個(gè)節(jié)點(diǎn)上,可以被并行操作。
[0035]實(shí)施例1:
[0036]圖1是根據(jù)本發(fā)明實(shí)施方式的一種基于大數(shù)據(jù)處理的積分計(jì)算方法的流程示意圖;參照?qǐng)D1,所述方法包括:
[0037]處理SI,通過大數(shù)據(jù)同步工具將交易流水信息上傳至分布式文件系統(tǒng);
[0038]處理S2,對(duì)所述上傳后的所述交易流水信息進(jìn)行預(yù)處理,得到有效流水文件;
[0039]處理S3,對(duì)所述有效流水文件中的積分信息進(jìn)行計(jì)算并生成積分結(jié)果;
[0040]處理S4,對(duì)所述積分結(jié)果進(jìn)行調(diào)整處理,生成調(diào)整后的有效積分流水文件;
[0041]處理S5,讀取所述有效積分流水文件,再根據(jù)不同維度類別對(duì)所述有效積分流水文件進(jìn)行匯總處理,生成積分匯總明細(xì)。
[0042]其中,在處理SI中,所述通過大數(shù)據(jù)同步工具將交易流水信息上傳至分布式文件系統(tǒng)包括:通過所述大數(shù)據(jù)同步工具將所述交易流水信息上傳至NAS服務(wù)器,在所述NAS月艮務(wù)器上安裝分布式客戶端,再通過所述客戶端將所述交易流水信息上傳至所述分布式文件系統(tǒng)。
[0043]另外,需要說明的是,本發(fā)明的實(shí)施方式在實(shí)踐應(yīng)用過程中,可基于下述技術(shù)內(nèi)容:
[0044]l)Hadoop MapReduce是大規(guī)模數(shù)據(jù)(TB級(jí))計(jì)算的利器,Map和Reduce是它的主要思想,原理如下所示:Map負(fù)責(zé)將數(shù)據(jù)打散,Reduce負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行聚集,用戶只需要實(shí)現(xiàn)map和reduce兩個(gè)接口,即可完成TB級(jí)數(shù)據(jù)的計(jì)算。常見的應(yīng)用包括:日志分析和數(shù)據(jù)挖掘等數(shù)據(jù)分析應(yīng)用C3MapReduce的實(shí)現(xiàn)也采用了 Master/Slave結(jié)構(gòu)。
[0045]MapReduce框架的核心步驟主要分兩部分:Map和Reduce。當(dāng)向MapReduce框架提交一個(gè)計(jì)算作業(yè)時(shí),它會(huì)首先把計(jì)算作業(yè)拆分成若干個(gè)Map任務(wù),然后分配到不同的節(jié)點(diǎn)上去執(zhí)行,每一個(gè)Map任務(wù)處理輸入數(shù)據(jù)中的一部分,當(dāng)Map任務(wù)完成后,它會(huì)生成一些中間文件,這些中間文件將會(huì)作為Reduce任務(wù)的輸入數(shù)據(jù)。Reduce任務(wù)的主要目標(biāo)就是把前面若干個(gè)Map的輸出匯總到一起并輸出。
[0046]總結(jié)Hadoop的處理特點(diǎn):(I)Hadoop是數(shù)據(jù)并行,處理串行.在一個(gè)工作中job,并行只在一個(gè)map段和一個(gè)reduce段中發(fā)生。但是這兩個(gè)段不能并行運(yùn)行,reduce段直到map段完全完成后才能開始。(2)所有被map過程訪問的數(shù)據(jù)都必須被凍結(jié)(也不能有修改發(fā)生),直至整個(gè)工作job完成.這就意味做Hadoop處理數(shù)據(jù)是在一個(gè)面向批處理batch_oriented風(fēng)格的鏈條中實(shí)現(xiàn)的,這就注定它不適合在基于流stream-based處理的方式,在流處理中,數(shù)據(jù)流是持續(xù)的必須立即得到及時(shí)處理。(3)數(shù)據(jù)之間聯(lián)系是通過一個(gè)分布式文件系統(tǒng)(HDFS)完成。延遲會(huì)因?yàn)榫W(wǎng)絡(luò)I/O開銷發(fā)生了,這種延遲不會(huì)成為面向批處理模式的主要問題,在面向批處理模式中,吞吐量才是首要考慮的,但是這意味做Hadoop不適合實(shí)現(xiàn)對(duì)延遲要求很嚴(yán)格,甚至不允許有延遲發(fā)生的在線實(shí)時(shí)系統(tǒng)。
[0047]2)Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的并行計(jì)算框架,Spark基于map reduce算法實(shí)現(xiàn)的分布式計(jì)算,擁有Hadoop MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是Job中間輸出和結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的map reduce的算法。Spark支持三種分布式部署模式:Standalone模式、Mesoes模式和Yarn模式。其中,第一種類似于MapReduce 1.0所采用的模式,內(nèi)部實(shí)現(xiàn)了容錯(cuò)性和資源管理,后兩種則是未來發(fā)展的趨勢(shì),部分容錯(cuò)性和資源管理交由統(tǒng)一的資源管理系統(tǒng)完成:讓Spark運(yùn)行在一個(gè)通用的資源管理系統(tǒng)之上,這樣可以與其他計(jì)算框架,比如MapReduce,共用一個(gè)集群資源,最大的好處是降低運(yùn)維成本和提高資源利用率(資源按需分配)。
[0048]銀行積分系統(tǒng)目前是采取批處理模式計(jì)算。Hadoop可以暫時(shí)滿足計(jì)算需求。但是考慮到數(shù)據(jù)量的不斷增多,計(jì)算過程中不斷的寫文件導(dǎo)致網(wǎng)絡(luò)帶寬的成為一個(gè)很大的瓶頸。此外,客戶對(duì)積分的重視也會(huì)導(dǎo)致其對(duì)于積分實(shí)時(shí)性的需求強(qiáng)烈。在實(shí)現(xiàn)方面,與MapReduce不同,Spark并不局限于編寫map和reduce兩個(gè)方法,其提供了更為強(qiáng)大的內(nèi)存計(jì)算(in-memory computing)模型,使得用戶可以通過編程將數(shù)據(jù)讀取到集群的內(nèi)存當(dāng)中,并且可以方便用戶快速地重復(fù)查詢,非常適合用于實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法。
[0049]鑒于上述原因,將Spark引入積分計(jì)算,在內(nèi)存中通過迭代計(jì)算處理大數(shù)據(jù)量的同時(shí)處理速度更快。應(yīng)用開發(fā)層面也更方便,其生態(tài)系統(tǒng)的結(jié)構(gòu)今后對(duì)實(shí)時(shí)性也可以通過簡(jiǎn)單的改造支持。
[0050]積分計(jì)算就是根據(jù)客戶交易產(chǎn)生的流水中金額筆數(shù)等信息,按照預(yù)先設(shè)定的規(guī)則活動(dòng)信息計(jì)算其該筆交易參加活動(dòng)產(chǎn)生的積分值。根據(jù)單筆交易積分值再按各個(gè)維度計(jì)算出累計(jì)積分總值。本方案就是基于已搭建完整且可執(zhí)行的分布式集群環(huán)境。該分布式環(huán)境上需裝有JDKl.7,scala-2.10.4,Hadoop2.6.0,Sparkl.1.0。利用Spark分布式計(jì)算框架,使用Spark提供的JavaAPI,在現(xiàn)有工程框架下開發(fā)積分計(jì)算模型。有效提升客戶獲取積分的時(shí)效性,并降低了讀寫文件造成的網(wǎng)絡(luò)寬帶瓶頸。
[0051]通過本發(fā)明的實(shí)施方式,可利用分布式文件系統(tǒng)(HDFS)存儲(chǔ)海量數(shù)據(jù),并通過分布式計(jì)算特點(diǎn)實(shí)現(xiàn)計(jì)算客戶積分的運(yùn)算邏輯,不僅簡(jiǎn)化了計(jì)算過程,提高了客戶積分的運(yùn)算效率和數(shù)據(jù)管理的時(shí)效性。
[0052]實(shí)施例2:
[0053]在本發(fā)明的另一種實(shí)施方式中,所述方法除了上述處理SI至處理S5外,在所述處理S2中,對(duì)所述上傳后的交易流水信息進(jìn)行預(yù)處理進(jìn)一步包括:讀取所述分布式文件系統(tǒng)的交易流水信息,對(duì)所述交易流水信息進(jìn)行流水合法性校驗(yàn)、黑名單過濾和規(guī)則匹配。
[0054]在實(shí)際應(yīng)用中,可應(yīng)用下述技術(shù)步驟進(jìn)行處理:首先讀取hdfs上的流水文件,根據(jù)報(bào)文配置轉(zhuǎn)換為文件類型。積分計(jì)算的關(guān)鍵是要用流水和活動(dòng)信息匹配。匹配上的才可以參與到積分計(jì)算中。封裝了通過Spark提供的javaAPI。使用textF i Ie方法,將交易流水文件記錄讀取為RDD〈String> ,再配置文件,通過map方法轉(zhuǎn)換為RDD〈Map>類型。初始化spark環(huán)境,創(chuàng)建一個(gè)SparkContext對(duì)象,指定訪問集群。讀取已經(jīng)導(dǎo)入hdf s的輸入數(shù)據(jù)源,包括流水文件,積分計(jì)算規(guī)則文件,積分計(jì)算規(guī)則項(xiàng)等,生成spark支持的彈性分布式數(shù)據(jù)集RDD。流水合法性校驗(yàn):負(fù)責(zé)校驗(yàn)流水字段類型,長(zhǎng)度等數(shù)據(jù)合法性。通過filter方法,返回有效流水。其中DcompJavaRDD是對(duì)Spark的javaRDD的封裝。在開發(fā)的過程中,不用開發(fā)人員不用直接面對(duì)最底層的j avaAPI。黑名單過濾:對(duì)于指定商戶,客戶黑名單進(jìn)行流水過濾。該類商戶、客戶不用積分計(jì)算。同樣是filter方法,返回不在黑名單里的流水信息。調(diào)用規(guī)則引擎校驗(yàn)流水是否匹配上規(guī)則,規(guī)則引擎返回匹配到的規(guī)則列表。將所有匹配到的規(guī)則以Map〈RuleIdList,[ruleid]〉添加的流水Map中,調(diào)用SaveTextFileAPI保存有效流水文件。
[0055]實(shí)施例3:
[0056]在本發(fā)明的另一種實(shí)施方式中,所述方法除了上述處理SI至處理S5外,在所述處理S3中,所述計(jì)算包括下述中的一種或多種:
[0057]可直接計(jì)算積分計(jì)算,用于對(duì)所述有效流水文件進(jìn)行基本積分計(jì)算、單筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算和多筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算;
[0058]關(guān)聯(lián)積分計(jì)算,用于對(duì)所述有效流水文件進(jìn)行關(guān)聯(lián)單筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算和關(guān)聯(lián)多筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算;
[0059]累計(jì)暫不計(jì)算,用于對(duì)所述有效流水文件只調(diào)用數(shù)據(jù)庫(kù)接口更新數(shù)據(jù)。
[0060]實(shí)施例4:
[0061 ]在本發(fā)明的另一種實(shí)施方式中,所述方法除了上述處理SI至處理S5外,在所述處理S3中,所述對(duì)所述積分結(jié)果進(jìn)行調(diào)整處理包括:
[0062]根據(jù)自定義上限規(guī)則調(diào)整所述積分結(jié)果,并按照自定義類別將所述積分結(jié)果進(jìn)行歸并處理。
[0063]其中,所述自定義上限規(guī)則可例如:獎(jiǎng)勵(lì)類型的活動(dòng)需要根據(jù)規(guī)則設(shè)置的積分封頂類型。包括日上限,月上限,活動(dòng)期內(nèi)累計(jì)上限。調(diào)整積分:每月封頂值〉每日封頂值;按活動(dòng)封頂值〉每日封頂。所述歸并可根據(jù)積分上限是以客戶+活動(dòng)維度的,所以對(duì)于計(jì)算生成就積分試算結(jié)果明細(xì),需要按照客戶+規(guī)則歸并,利用Spark的mapToPair方法,實(shí)現(xiàn)自定義函數(shù)func,以客戶+活動(dòng)號(hào)為key,流水和積分值為value,生成JavaPairRDD鍵值對(duì)。之后匯總客戶在該活動(dòng)下的所有流水產(chǎn)生的積分值,調(diào)整積分。并利用List返回流水信息。利用filter方法,以調(diào)整后的流水為源,過濾積分值>0的流水,生成調(diào)整后的有效積分流水明細(xì)文件。
[0064]實(shí)施例5:
[0065]在本發(fā)明的另一種實(shí)施方式中,所述方法除了上述處理SI至處理S5外,所述方法還包括:
[0066]讀取所述積分匯總明細(xì),通過調(diào)用積分更新組件,對(duì)客戶積分明細(xì)進(jìn)行實(shí)時(shí)更新。
[0067]在實(shí)際應(yīng)用中,可利用流式計(jì)算框架Strom讀取生成的積分匯總結(jié)果明細(xì),調(diào)用積分更新組件,實(shí)時(shí)更新積分值客戶積分明細(xì)表中。積分計(jì)算完成以后,積分累計(jì)明細(xì)需要通過批量更新Oracle數(shù)據(jù)庫(kù)中。將HDFS格式的積分結(jié)果通過Sqoop導(dǎo)出到Oracle數(shù)據(jù)庫(kù),再通過存儲(chǔ)過程批量更新數(shù)據(jù)。
[0068]本發(fā)明在實(shí)現(xiàn)個(gè)人綜合積分計(jì)算的業(yè)務(wù)背景下,利用大數(shù)據(jù)的解決方案,實(shí)現(xiàn)了以更高的效率計(jì)算客戶積分。利用內(nèi)存迭代計(jì)算,降低了文件讀寫造成的網(wǎng)絡(luò)帶寬瓶頸。不僅利用大數(shù)據(jù)同步工具解決了分布式存儲(chǔ)和關(guān)系數(shù)據(jù)庫(kù)的交互問題。而且可實(shí)現(xiàn)將oracle中保存的客戶信息和積分計(jì)算的規(guī)則信息存儲(chǔ)到HDFS。對(duì)Spark提供的javaAPI進(jìn)行封裝,提供積分計(jì)算常用方法,運(yùn)用其過濾、映射、歸并和歸約等多種RDD操作的實(shí)現(xiàn)了積分計(jì)算的業(yè)務(wù)邏輯。另外經(jīng)非功能測(cè)試,Spark只用了Hadoop所用1/10的計(jì)算資源,耗時(shí)只有Hadoop的l/^aSpark生態(tài)系統(tǒng)中的Spark streaming可以用于后期的積分更新中,完成實(shí)時(shí)結(jié)果更新。提供了充分的可擴(kuò)展性。
[0069]圖2是根據(jù)本發(fā)明實(shí)施方式的一種基于大數(shù)據(jù)處理的積分計(jì)算系統(tǒng)的架構(gòu)圖;參見圖2,所述系統(tǒng)包括:
[0070]上傳模塊100,用于通過大數(shù)據(jù)同步工具將交易流水信息上傳至分布式文件系統(tǒng);
[0071]預(yù)處理模塊200,用于對(duì)所述上傳后的所述交易流水信息進(jìn)行預(yù)處理,得到有效流水文件;
[0072]計(jì)算模塊300,用于對(duì)所述有效流水文件中的積分信息進(jìn)行計(jì)算并生成積分結(jié)果;
[0073]調(diào)整模塊400,用于對(duì)所述積分結(jié)果進(jìn)行調(diào)整處理,生成調(diào)整后的有效積分流水文件;
[0074]匯總模塊500,用于讀取所述有效積分流水文件,再根據(jù)不同維度類別對(duì)所述有效積分流水文件進(jìn)行匯總處理,生成積分匯總明細(xì)。
[0075]其中,在所述輸入模塊100中,所述通過大數(shù)據(jù)同步工具將交易流水信息上傳至分布式文件系統(tǒng)包括:通過所述大數(shù)據(jù)同步工具將所述交易流水信息上傳至NAS服務(wù)器,在所述NAS服務(wù)器上安裝分布式客戶端,再通過所述客戶端將所述交易流水信息上傳至所述分布式文件系統(tǒng)。
[0076]通過本發(fā)明的實(shí)施方式,可利用分布式文件系統(tǒng)(HDFS)存儲(chǔ)海量數(shù)據(jù),并通過分布式計(jì)算特點(diǎn)實(shí)現(xiàn)計(jì)算客戶積分的運(yùn)算邏輯,不僅簡(jiǎn)化了計(jì)算過程,提高了客戶積分的運(yùn)算效率和數(shù)據(jù)管理的時(shí)效性。
[0077]圖3示出了圖2所示的預(yù)處理模塊的框圖;參見圖3,在本發(fā)明的另一實(shí)施方式中,所述系統(tǒng)除了具有上面實(shí)施方式所述的多個(gè)模塊外,所述預(yù)處理模塊可進(jìn)一步包括:
[0078]流水合法性校驗(yàn)單元210,用于對(duì)所述流水信息進(jìn)行流水合法性校驗(yàn)的預(yù)處理;
[0079]黑名單過濾單元220,用于對(duì)所述流水信息進(jìn)行黑名單過濾的預(yù)處理;
[0080]規(guī)則匹配單元230,用于對(duì)所述流水信息進(jìn)行調(diào)用規(guī)則引擎進(jìn)行規(guī)則匹配的預(yù)處理。
[0081]圖4示出了圖2所示的計(jì)算模塊的框圖;參見圖4,在本發(fā)明的另一實(shí)施方式中,所述系統(tǒng)除了具有上面實(shí)施方式所述的多個(gè)模塊外,所述計(jì)算模塊可進(jìn)一步包括下述單元中的一個(gè)或多個(gè):
[0082]可直接計(jì)算單元310,用于對(duì)所述有效流水文件進(jìn)行基本積分計(jì)算、單筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算和多筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算;
[0083]關(guān)聯(lián)計(jì)算單元320,用于對(duì)所述有效流水文件進(jìn)行關(guān)聯(lián)單筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算和關(guān)聯(lián)多筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算;
[0084]累計(jì)暫不計(jì)算單元330,用于對(duì)所述有效流水文件只調(diào)用數(shù)據(jù)庫(kù)接口更新數(shù)據(jù)。
[0085]圖5示出了圖2所示的調(diào)整模塊的框圖;參見圖5,在本發(fā)明的另一實(shí)施方式中,所述系統(tǒng)除了具有上面實(shí)施方式所述的多個(gè)模塊外,所述調(diào)整模塊可進(jìn)一步包括:
[0086]上限調(diào)整單元410,用于根據(jù)自定義上限規(guī)則調(diào)整所述積分結(jié)果;
[0087]歸并單元420,用于按照自定義類別將所述積分結(jié)果進(jìn)行歸并處理。
[0088]另外,在本發(fā)明的另一實(shí)施方式中,所述系統(tǒng)除了具有上面實(shí)施方式所述的多個(gè)模塊外,所述系統(tǒng)還可包括:
[0089]更新模塊,用于讀取所述積分匯總明細(xì),通過調(diào)用積分更新組件,對(duì)客戶積分明細(xì)進(jìn)行實(shí)時(shí)更新。
[0090]需要說明的是,所述基于大數(shù)據(jù)處理的積分計(jì)算方法的【具體實(shí)施方式】,與上述基于大數(shù)據(jù)處理的積分計(jì)算系統(tǒng)對(duì)應(yīng)的實(shí)施例的內(nèi)容和效果完全一致,相關(guān)重復(fù)內(nèi)容在此不再贅述。
[0091]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件結(jié)合硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案對(duì)【背景技術(shù)】做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0092]本領(lǐng)技術(shù)人員應(yīng)當(dāng)理解,以上所公開的僅為本發(fā)明的實(shí)施方式而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,依本發(fā)明實(shí)施方式所作的等同變化,仍屬本發(fā)明權(quán)利要求所涵蓋的范圍。
【主權(quán)項(xiàng)】
1.一種基于大數(shù)據(jù)處理的積分計(jì)算方法,其特征在于,所述方法包括: 通過大數(shù)據(jù)同步工具將交易流水信息上傳至分布式文件系統(tǒng); 對(duì)所述上傳后的所述交易流水信息進(jìn)行預(yù)處理,得到有效流水文件; 對(duì)所述有效流水文件中的積分信息進(jìn)行計(jì)算并生成積分結(jié)果; 對(duì)所述積分結(jié)果進(jìn)行調(diào)整處理,生成調(diào)整后的有效積分流水文件; 讀取所述有效積分流水文件,再根據(jù)不同維度類別對(duì)所述有效積分流水文件進(jìn)行匯總處理,生成積分匯總明細(xì)。2.如權(quán)利要求1所述的方法,其特征在于,所述通過大數(shù)據(jù)同步工具將交易流水信息上傳至分布式文件系統(tǒng)包括: 通過所述大數(shù)據(jù)同步工具將所述交易流水信息上傳至NAS服務(wù)器,在所述NAS服務(wù)器上安裝分布式客戶端,再通過所述客戶端將所述交易流水信息上傳至所述分布式文件系統(tǒng)。3.如權(quán)利要求2所述的方法,其特征在于,對(duì)所述上傳后的交易流水信息進(jìn)行預(yù)處理包括: 讀取所述分布式文件系統(tǒng)的交易流水信息,對(duì)所述交易流水信息進(jìn)行流水合法性校驗(yàn)、黑名單過濾和規(guī)則匹配。4.如權(quán)利要求3所述的方法,其特征在于,所述計(jì)算包括下述中的一種或多種: 可直接計(jì)算積分計(jì)算,用于對(duì)所述有效流水文件進(jìn)行基本積分計(jì)算、單筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算和多筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算; 關(guān)聯(lián)積分計(jì)算,用于對(duì)所述有效流水文件進(jìn)行關(guān)聯(lián)單筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算和關(guān)聯(lián)多筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算; 累計(jì)暫不計(jì)算,用于對(duì)所述有效流水文件只調(diào)用數(shù)據(jù)庫(kù)接口更新數(shù)據(jù)。5.如權(quán)利要求4所述的方法,其特征在于,所述對(duì)所述積分結(jié)果進(jìn)行調(diào)整處理包括: 根據(jù)自定義上限規(guī)則調(diào)整所述積分結(jié)果,并按照自定義類別將所述積分結(jié)果進(jìn)行歸并處理。6.如權(quán)利要求1至5中任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 讀取所述積分匯總明細(xì),通過調(diào)用積分更新組件,對(duì)客戶積分明細(xì)進(jìn)行實(shí)時(shí)更新。7.一種基于大數(shù)據(jù)處理的積分計(jì)算系統(tǒng),其特征在于,所述系統(tǒng)包括: 上傳模塊,用于通過大數(shù)據(jù)同步工具將交易流水信息上傳至分布式文件系統(tǒng); 預(yù)處理模塊,用于對(duì)所述上傳后的所述交易流水信息進(jìn)行預(yù)處理,得到有效流水文件; 計(jì)算模塊,用于對(duì)所述有效流水文件中的積分信息進(jìn)行計(jì)算并生成積分結(jié)果; 調(diào)整模塊,用于對(duì)所述積分結(jié)果進(jìn)行調(diào)整處理,生成調(diào)整后的有效積分流水文件; 匯總模塊,用于讀取所述有效積分流水文件,再根據(jù)不同維度類別對(duì)所述有效積分流水文件進(jìn)行匯總處理,生成積分匯總明細(xì)。8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述通過大數(shù)據(jù)同步工具將交易流水信息上傳至分布式文件系統(tǒng)包括: 通過大數(shù)據(jù)同步工具將所述交易流水信息上傳至NAS服務(wù)器,在所述NAS服務(wù)器上安裝分布式客戶端,再通過所述客戶端將所述交易流水信息上傳至所述分布式文件系統(tǒng)。9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述預(yù)處理模塊包括: 流水合法性校驗(yàn)單元,用于對(duì)所述流水信息進(jìn)行流水合法性校驗(yàn)的預(yù)處理; 黑名單過濾單元,用于對(duì)所述流水信息進(jìn)行黑名單過濾的預(yù)處理; 規(guī)則匹配單元,用于對(duì)所述流水信息進(jìn)行調(diào)用規(guī)則引擎進(jìn)行規(guī)則匹配的預(yù)處理。10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述計(jì)算模塊包括下述單元中的一種或多種: 可直接計(jì)算單元,用于對(duì)所述有效流水文件進(jìn)行基本積分計(jì)算、單筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算和多筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算; 關(guān)聯(lián)計(jì)算單元,用于對(duì)所述有效流水文件進(jìn)行關(guān)聯(lián)單筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算和關(guān)聯(lián)多筆獎(jiǎng)勵(lì)活動(dòng)積分計(jì)算; 累計(jì)暫不計(jì)算單元,用于對(duì)所述有效流水文件只調(diào)用數(shù)據(jù)庫(kù)接口更新數(shù)據(jù)。11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述調(diào)整模塊包括: 上限調(diào)整單元,用于根據(jù)自定義上限規(guī)則調(diào)整所述積分結(jié)果; 歸并單元,用于按照自定義類別將所述積分結(jié)果進(jìn)行歸并處理。12.如權(quán)利要求7至11中任一項(xiàng)所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 更新模塊,用于讀取所述積分匯總明細(xì),通過調(diào)用積分更新組件,對(duì)客戶積分明細(xì)進(jìn)行實(shí)時(shí)更新。
【文檔編號(hào)】G06F17/30GK105843959SQ201610238150
【公開日】2016年8月10日
【申請(qǐng)日】2016年4月18日
【發(fā)明人】張欣, 李卓, 黎育龍, 常濤
【申請(qǐng)人】中國(guó)建設(shè)銀行股份有限公司