一種大數(shù)據(jù)分析方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種大數(shù)據(jù)分析方法和系統(tǒng),其中,所述方法包括:對數(shù)據(jù)實體進行分析,得到數(shù)據(jù)實體分析結果;對所述數(shù)據(jù)實體的應用場景進行分析,得到數(shù)據(jù)應用場景分析結果;根據(jù)所述數(shù)據(jù)實體分析結果和所述數(shù)據(jù)應用場景分析結果,對數(shù)據(jù)結構進行分析。采用本發(fā)明,通過對大數(shù)據(jù)進行分析,有效提升讀取性能。
【專利說明】
一種大數(shù)據(jù)分析方法和系統(tǒng)
技術領域
[0001 ]本發(fā)明涉及數(shù)據(jù)處理領域,更為具體而言,涉及一種大數(shù)據(jù)分析方法和系統(tǒng)。
【背景技術】
[0002]隨著互聯(lián)網(wǎng)技術的迅猛發(fā)展,大數(shù)據(jù)技術已經(jīng)成為各個行業(yè)提高生產(chǎn)力、擴展業(yè)務能力的一大重要利器,而在大數(shù)據(jù)時代,列式存儲數(shù)據(jù)庫有了更加廣泛的應用,與關系型數(shù)據(jù)庫為代表的行式數(shù)據(jù)庫不同,列式數(shù)據(jù)庫是以列相關存儲架構進行存儲的數(shù)據(jù)庫,主要適合于海量數(shù)據(jù)處理和即席查詢。它的特點是把行式數(shù)據(jù)全部拆開,按照列的方式重新組合存儲,一列的所有行的數(shù)據(jù)存放在一起;按照列內數(shù)據(jù)的特征值(通常像時間、部門代碼、銷售地區(qū)等維度字段的特征值并不多,幾個到幾百個很常見)進行高效編碼,并且在實際存儲中以編碼形式存儲,這樣就帶來了大比例的壓縮。帶來的好處是:原來只分析銷售額的查詢就只訪問銷售額字段,即使是所有歷史時期的數(shù)據(jù),也不存在讀多余的無關數(shù)據(jù)的問題。
[0003]伴隨列式存儲的大規(guī)模應用,基于此的大數(shù)據(jù)分析處理變得尤為重要。當前面臨的問題是在大數(shù)據(jù)存儲領域,如何圍繞查詢模式進行大數(shù)據(jù)分析,以及如何有效提升讀取性能。
【發(fā)明內容】
[0004]鑒于現(xiàn)有技術的上述缺陷,本發(fā)明實施方式提供了一種大數(shù)據(jù)分析方法和系統(tǒng),能夠有效解決當前大數(shù)據(jù)讀取性能差的問題。
[0005]具體地,本發(fā)明實施方式提供了一種大數(shù)據(jù)分析方法,其包括:
[0006]對數(shù)據(jù)實體進行分析,得到數(shù)據(jù)實體分析結果;
[0007]對所述數(shù)據(jù)實體的應用場景進行分析,得到數(shù)據(jù)應用場景分析結果;
[0008]根據(jù)所述數(shù)據(jù)實體分析結果和所述數(shù)據(jù)應用場景分析結果,對數(shù)據(jù)結構進行分析。
[0009]相應地,本發(fā)明實施方式還提供了一種大數(shù)據(jù)分析系統(tǒng),其包括:
[0010]數(shù)據(jù)實體分析模塊,用于對數(shù)據(jù)實體進行分析,得到數(shù)據(jù)實體分析結果;
[0011]應用場景分析模塊,用于對所述數(shù)據(jù)實體的應用場景進行分析,得到數(shù)據(jù)應用場景分析結果;
[0012]數(shù)據(jù)結構分析模塊,用于根據(jù)所述數(shù)據(jù)實體分析結果和所述數(shù)據(jù)應用場景分析結果,對數(shù)據(jù)結構進行分析采用本發(fā)明實施方式具有下述有益效果:
[0013]通過對大數(shù)據(jù)進行分析,有效提升讀取性能。
【附圖說明】
[0014]圖1是根據(jù)本發(fā)明實施方式的一種大數(shù)據(jù)分析系統(tǒng)的流程示意圖;
[0015]圖2是根據(jù)本發(fā)明實施方式的一種大數(shù)據(jù)分析系統(tǒng)的架構圖。
【具體實施方式】
[0016]為了便于理解本發(fā)明技術方案的各個方面、特征以及優(yōu)點,下面結合附圖對本發(fā)明進行具體描述。應當理解,下述的各種實施方式只用于舉例說明,而非用于限制本發(fā)明的保護范圍。
[0017]首先對根據(jù)本發(fā)明可能涉及到的名稱或術語進行解釋。
[0018]Cassandra: —種分布式非關系型列式存儲數(shù)據(jù)庫
[0019]列式存儲:相對于傳統(tǒng)關系型數(shù)據(jù)庫的行式存儲的概念,列式存儲是以列為順序來存放數(shù)據(jù)。
[0020]范式:符合某一種級別的關系模式的集合。關系數(shù)據(jù)庫中的關系必須滿足一定的要求,滿足不同程度要求的為不同范式。
[0021]第三范式:要求一個數(shù)據(jù)庫表中不包含已在其它表中已包含的非主關鍵字信息。
[0022]數(shù)據(jù)建模:對現(xiàn)實世界各類數(shù)據(jù)的抽象組織,確定數(shù)據(jù)庫需管轄的范圍、數(shù)據(jù)的組織形式等直至轉化成現(xiàn)實的數(shù)據(jù)庫。將經(jīng)過系統(tǒng)分析后抽象出來的概念模型轉化為物理模型后,在Vis1或erwin等工具建立數(shù)據(jù)庫實體以及各實體之間關系的過程.(實體一般是表)O
[0023]圖1是根據(jù)本發(fā)明實施方式的一種大數(shù)據(jù)分析系統(tǒng)的流程示意圖。參照圖1,具體實施例如下:
[0024]實施例1:
[0025]所述方法包括:
[0026]處理SI,對數(shù)據(jù)實體進行分析,得到數(shù)據(jù)實體分析結果;
[0027]處理S2,對所述數(shù)據(jù)實體的應用場景進行分析,得到數(shù)據(jù)應用場景分析結果;
[0028]處理S3,根據(jù)所述數(shù)據(jù)實體分析結果和所述數(shù)據(jù)應用場景分析結果,對數(shù)據(jù)結構進行分析。
[0029]在大數(shù)據(jù)時代,列式存儲數(shù)據(jù)庫有了更加廣泛的應用,與關系型數(shù)據(jù)庫為代表的行式數(shù)據(jù)庫不同,列式數(shù)據(jù)庫是以列相關存儲架構進行存儲的數(shù)據(jù)庫,主要適合于海量數(shù)據(jù)處理和即席查詢。它的特點是把行式數(shù)據(jù)全部拆開,按照列的方式重新組合存儲,一列的所有行的數(shù)據(jù)存放在一起;按照列內數(shù)據(jù)的特征值(通常像時間、部門代碼、銷售地區(qū)等維度字段的特征值并不多,幾個到幾百個很常見)進行高效編碼,并且在實際存儲中以編碼形式存儲,這樣就帶來了大比例的壓縮。帶來的好處是:原來只分析銷售額的查詢就只訪問銷售額字段,即使是所有歷史時期的數(shù)據(jù),也不存在讀多余的無關數(shù)據(jù)的問題。伴隨列式存儲的大規(guī)模應用,基于此的數(shù)據(jù)建模工作變得尤為重要。本方案討論的問題是如何在大數(shù)據(jù)存儲領域,如何圍繞查詢模式進行建模,以及使用反范式化和冗余來有效提升讀取性能。
[0030]傳統(tǒng)邏輯數(shù)據(jù)庫設計有多種實現(xiàn)方式,包括:自頂至底,自底至頂以及混合方式。傳統(tǒng)數(shù)據(jù)庫設計是一個自底至頂?shù)倪^程,從分析需求中的單個數(shù)據(jù)元素開始,把相關多個數(shù)據(jù)元素組合在一起轉化為數(shù)據(jù)庫中的表。這種方式較難應對復雜的大型數(shù)據(jù)庫設計,這就需要結合自頂至底的設計方式。
[0031]概念數(shù)據(jù)建模步驟:
[0032]1、辨識實體與屬性;2、識別泛化層次結構;3、定義關系
[0033]辨別實體與屬性可參考如下準則:實體應包含描述性信息、多值屬性應作為實體來處理和屬性應附著在其直接描述的實體上。
[0034]這些準則能引導開發(fā)人員得到符合范式的關系數(shù)據(jù)庫設計。
[0035]傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)結構分析,主要以數(shù)據(jù)實體的識別為主,即分析數(shù)據(jù)實體與實體的關系,例如在電子商務系統(tǒng)中,用戶與商品是兩個實體,用戶喜歡的商品和商品被哪些用戶喜歡,則是兩個實體之間的關系。傳統(tǒng)數(shù)據(jù)庫只需根據(jù)這個建立表結構即可。
[0036]而在NoSQL(Not Only SQL,泛指非關系型的數(shù)據(jù)庫)數(shù)據(jù)庫Cassandra中,其數(shù)據(jù)是根據(jù)分區(qū)鍵自動分布到集群中的多臺服務器的,所以導致如果使用非分區(qū)鍵查詢,則需要跨服務器獲取數(shù)據(jù),影響性能。所以數(shù)據(jù)結構的建立必須充分考慮數(shù)據(jù)的應用場景。
[0037]針對Cassandra的特性,我們設計了一套Excel表格,借以實現(xiàn)基于Cassandra應用的數(shù)據(jù)結構分析。其中包括數(shù)據(jù)實體分析,數(shù)據(jù)應用場景分析,數(shù)據(jù)結構分析。使用該分析技術,首先和關系型數(shù)據(jù)庫應用分析一樣,要分析數(shù)據(jù)實體;然后針對Cassandra數(shù)據(jù)庫應用,要再分析該數(shù)據(jù)實體的應用場景(即所有的更新、查詢);最后綜合數(shù)據(jù)實體信息和應用場景信息,設計數(shù)據(jù)結構。
[0038]通過本發(fā)明所述實施方式對大數(shù)據(jù)進行分析,可有效提升讀取性能。
[0039]其中,對于處理SI,數(shù)據(jù)實體的分析與關系型數(shù)據(jù)庫應用中的分析一致,我們使用,頁面總體統(tǒng)計實體信息,對于電子商務中的用戶(user)與商品(item),是兩個主要的實體。同時這兩個實體之間存在一定的關系。一個user可以喜歡多個item,同時一個item可以被多個user所喜愛,在關系型數(shù)據(jù)庫中這個關系是通過many-to-many (多對多關聯(lián))實現(xiàn)的。
[0040]實施例2:
[0041 ]在本發(fā)明的另一種實施方式中,所述方法除了上述處理方式外,其中,所述對所述數(shù)據(jù)實體的應用場景進行分析可進一步包括:通過場景分析工具,統(tǒng)計所述應用場景中的數(shù)據(jù)實體。對于Cassandra數(shù)據(jù)庫,數(shù)據(jù)的應用場景極大的影響著數(shù)據(jù)的存儲結構,未充分考慮應用場景的數(shù)據(jù)結構設計,可能導致低效的數(shù)據(jù)庫操作。通過使用場景分析工具,統(tǒng)計不同場景中的數(shù)據(jù)實體。對于這個電子商務系統(tǒng),一個user喜歡多個item,同時一個item可以被多個user所喜愛,在應用中需要查詢一個user喜歡的所有item,也需要查詢一個item被哪些user喜歡。即為該場景的數(shù)據(jù)應用場景。
[0042]實施例3:
[0043]在本發(fā)明的另一種實施方式中,所述方法除了上述處理方式外,其中,所述對所述數(shù)據(jù)實體的應用場景進行分析包括:對所述應用場景的應用頻率進行統(tǒng)計和分析。針對場景,還需要分析其應用頻率,不同的應用頻率亦導致不同的數(shù)據(jù)結構。
[0044]實施例4:
[0045]在本發(fā)明的另一種實施方式中,所述方法除了上述處理方式外,其中,所述對數(shù)據(jù)結構進行分析包括:獲得各字段信息的應用信息。
[0046]例如,user喜歡的item,user的ID作為查詢條件,那么需要一個user與item的關聯(lián)信息,而item被多少user喜歡,則剛好是一個相反的關聯(lián)關系。
[0047]對這個場景,我們可以選擇范式化實體,并將其反范式化。例如user喜歡的item,可以將被喜歡的item的ID信息以列表型字段保存到user表中,同樣將喜歡同一個item的所有用戶ID保存到i tem表中。這樣既可在保證Cassandra的查詢性能的情況下滿足需求。
[0048]但是這個設計結合應用場景分析中的交易次數(shù)可能會發(fā)現(xiàn)并不能滿足需求。因為user喜歡的item總會頻繁改變,item被喜歡的人群也同樣會頻繁改變,這樣會導致頻繁更新user表和item表,而更新操作在Cassandra會導致很多垃圾數(shù)據(jù),增加系統(tǒng)的壓緊操作的負擔。
[0049]為了解決這個問題,將在user表和item表中的列表存儲的item的ID信息和user的ID信息提取出來,分別建兩個表,即user喜歡的item表和item被哪些user喜歡的表。Cassandra數(shù)據(jù)庫與傳統(tǒng)的關系型數(shù)據(jù)庫存在的差別,通過如上的建模工具,既可以輔助分析實體的應用場景,藉此獲得更合理的數(shù)據(jù)結構。
[0050]實施例5:
[0051]在本發(fā)明的另一種實施方式中,所述方法除了上述處理方式外,其中,所述對數(shù)據(jù)結構進行分析包括:選擇范式化數(shù)據(jù)實體,并將其反范式化處理。
[0052]在關系型數(shù)據(jù)庫的世界里,范式化的優(yōu)點是顯而易見的:較少的數(shù)據(jù)冗余,較少的數(shù)據(jù)修改異常,概念更清晰,更容易維護等等;同樣,它的缺點也十分明顯:多表join查詢會很慢等等。這兩方面也會體現(xiàn)在Cassandra中,但是缺點會更明顯,因為Cassandra數(shù)據(jù)是分布式存儲,當然它也并不支持join操作。所以,對于一個完全范式化的schema,Cassandra讀操作性能可能比RDBMS(關系數(shù)據(jù)庫管理系統(tǒng)Relat1nal Database Management System)更糟糕,所以我們通常通過反范式化來提升查詢性能。
[0053]圖2是根據(jù)本發(fā)明實施方式的一種大數(shù)據(jù)分析系統(tǒng)的架構圖。參照圖2,所述系統(tǒng)包括:
[0054]數(shù)據(jù)實體分析模塊100,用于對數(shù)據(jù)實體進行分析,得到數(shù)據(jù)實體分析結果;
[0055]應用場景分析模塊200,用于對所述數(shù)據(jù)實體的應用場景進行分析,得到數(shù)據(jù)應用場景分析結果;
[0056]數(shù)據(jù)結構分析模塊300,用于根據(jù)所述數(shù)據(jù)實體分析結果和所述數(shù)據(jù)應用場景分析結果,對數(shù)據(jù)結構進行分析。
[0057]在NoSQL數(shù)據(jù)庫Cassandra中,其數(shù)據(jù)是根據(jù)分區(qū)鍵自動分布到集群中的多臺服務器的,所以導致如果使用非分區(qū)鍵查詢,則需要跨服務器獲取數(shù)據(jù),影響性能。所以數(shù)據(jù)結構的建立必須充分考慮數(shù)據(jù)的應用場景。
[0058]針對Cassandra的特性,我們設計了一套Excel表格,借以實現(xiàn)基于Cassandra應用的數(shù)據(jù)結構分析。其中包括數(shù)據(jù)實體分析,數(shù)據(jù)應用場景分析,數(shù)據(jù)結構分析。使用該分析技術,首先和關系型數(shù)據(jù)庫應用分析一樣,要分析數(shù)據(jù)實體;然后針對Cassandra數(shù)據(jù)庫應用,要再分析該數(shù)據(jù)實體的應用場景(即所有的更新、查詢);最后綜合數(shù)據(jù)實體信息和應用場景信息,設計數(shù)據(jù)結構。
[0059]通過本發(fā)明所述實施方式對大數(shù)據(jù)進行分析,可有效提升讀取性能。
[0060]其中,在所述數(shù)據(jù)實體分析模塊100中,數(shù)據(jù)實體的分析與關系型數(shù)據(jù)庫應用中的分析一致,我們使用,頁面總體統(tǒng)計實體信息,對于電子商務中的用戶(user)與商品(item),是兩個主要的實體。同時這兩個實體之間存在一定的關系。一個user可以喜歡多個item,同時一個item可以被多個user所喜愛,在關系型數(shù)據(jù)庫中這個關系是通過many-to-many 實現(xiàn)的。
[0061]在本發(fā)明的另一實施方式中,所述對所述數(shù)據(jù)實體的應用場景進行分析包括:通過場景分析工具,統(tǒng)計所述應用場景中的數(shù)據(jù)實體。對于Cassandra數(shù)據(jù)庫,數(shù)據(jù)的應用場景極大的影響著數(shù)據(jù)的存儲結構,未充分考慮應用場景的數(shù)據(jù)結構設計,可能導致低效的數(shù)據(jù)庫操作。通過使用場景分析工具,統(tǒng)計不同場景中的數(shù)據(jù)實體。對于這個電子商務系統(tǒng),一個user喜歡多個item,同時一個item可以被多個user所喜愛,在應用中需要查詢一個 user喜歡的所有item,也需要查詢一個item被哪些user喜歡。即為該場景的數(shù)據(jù)應用場景。
[0062]在本發(fā)明的又一實施方式中,所述對所述數(shù)據(jù)實體的應用場景進行分析包括:對所述應用場景的應用頻率進行統(tǒng)計和分析。針對場景,還需要分析其應用頻率,不同的應用頻率亦導致不同的數(shù)據(jù)結構。
[0063]在本發(fā)明的再一實施方式中,所述對數(shù)據(jù)結構進行分析包括:獲得各字段信息的應用信息。例如,user喜歡的item,user的ID作為查詢條件,那么需要一個user與item的關聯(lián)信息,而item被多少user喜歡,則剛好是一個相反的關聯(lián)關系。
[0064]對這個場景,我們可以選擇范式化實體,并將其反范式化。例如user喜歡的item, 可以將被喜歡的item的ID信息以列表型字段保存到user表中,同樣將喜歡同一個item的所有用戶ID保存到i tem表中。這樣既可在保證Cassandra的查詢性能的情況下滿足需求。
[0065]但是這個設計結合應用場景分析中的交易次數(shù)可能會發(fā)現(xiàn)并不能滿足需求。因為 user喜歡的item總會頻繁改變,item被喜歡的人群也同樣會頻繁改變,這樣會導致頻繁更新user表和item表,而更新操作在Cassandra會導致很多垃圾數(shù)據(jù),增加系統(tǒng)的壓緊操作的負擔。[0〇66] 為了解決這個問題,將在user表和item表中的列表存儲的item的ID信息和user的 ID信息提取出來,分別建兩個表,S卩user喜歡的item表和item被哪些user喜歡的表。 Cassandra數(shù)據(jù)庫與傳統(tǒng)的關系型數(shù)據(jù)庫存在的差別,通過如上的建模工具,既可以輔助分析實體的應用場景,藉此獲得更合理的數(shù)據(jù)結構。
[0067]在本發(fā)明的再一實施方式中,所述對數(shù)據(jù)結構進行分析包括:選擇范式化數(shù)據(jù)實體,并將其反范式化處理。在關系型數(shù)據(jù)庫的世界里,范式化的優(yōu)點是顯而易見的:較少的數(shù)據(jù)冗余,較少的數(shù)據(jù)修改異常,概念更清晰,更容易維護等等;同樣,它的缺點也十分明顯:多表join查詢會很慢等等。這兩方面也會體現(xiàn)在Cassandra中,但是缺點會更明顯,因為 Cassandra數(shù)據(jù)是分布式存儲,當然它也并不支持join操作。所以,對于一個完全范式化的 schema,Cassandra讀操作性能可能比RDBMS更糟糕,所以我們通常通過反范式化來提升查詢性能。
[0068]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發(fā)明可借助軟件結合硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術方案對【背景技術】做出貢獻的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。 [〇〇69]本領技術人員應當理解,以上所公開的僅為本發(fā)明的實施方式而已,當然不能以此來限定本發(fā)明之權利范圍,依本發(fā)明實施方式所作的等同變化,仍屬本發(fā)明權利要求所涵蓋的范圍。
【主權項】
1.一種大數(shù)據(jù)分析方法,其特征在于,所述方法包括: 對數(shù)據(jù)實體進行分析,得到數(shù)據(jù)實體分析結果; 對所述數(shù)據(jù)實體的應用場景進行分析,得到數(shù)據(jù)應用場景分析結果; 根據(jù)所述數(shù)據(jù)實體分析結果和所述數(shù)據(jù)應用場景分析結果,對數(shù)據(jù)結構進行分析。2.如權利要求1所述的方法,其特征在于,所述對所述數(shù)據(jù)實體的應用場景進行分析包括: 通過場景分析工具,統(tǒng)計所述應用場景中的數(shù)據(jù)實體。3.如權利要求1或2所述的方法,其特征在于,所述對所述數(shù)據(jù)實體的應用場景進行分析包括: 對所述應用場景的應用頻率進行統(tǒng)計和分析。4.如權利要求1所述的方法,其特征在于,所述對數(shù)據(jù)結構進行分析包括: 獲得各字段?目息的應用?目息。5.如權利要求1或4所述的方法,其特征在于,所述對數(shù)據(jù)結構進行分析包括: 選擇范式化數(shù)據(jù)實體,并將其反范式化處理。6.一種大數(shù)據(jù)分析系統(tǒng),其特征在于,所述系統(tǒng)包括: 數(shù)據(jù)實體分析模塊,用于對數(shù)據(jù)實體進行分析,得到數(shù)據(jù)實體分析結果; 應用場景分析模塊,用于對所述數(shù)據(jù)實體的應用場景進行分析,得到數(shù)據(jù)應用場景分析結果; 數(shù)據(jù)結構分析模塊,用于根據(jù)所述數(shù)據(jù)實體分析結果和所述數(shù)據(jù)應用場景分析結果,對數(shù)據(jù)結構進行分析。7.如權利要求6所述的系統(tǒng),其特征在于,所述對所述數(shù)據(jù)實體的應用場景進行分析包括: 通過場景分析工具,統(tǒng)計所述應用場景中的數(shù)據(jù)實體。8.如權利要求6或7所述的系統(tǒng),其特征在于,所述對所述數(shù)據(jù)實體的應用場景進行分析包括: 對所述應用場景的應用頻率進行統(tǒng)計和分析。9.如權利要求6所述的系統(tǒng),其特征在于,所述對數(shù)據(jù)結構進行分析包括: 獲得各字段?目息的應用?目息。10.如權利要求6或9所述的系統(tǒng),其特征在于,所述對數(shù)據(jù)結構進行分析包括: 選擇范式化數(shù)據(jù)實體,并將其反范式化處理。
【文檔編號】G06F17/30GK106095879SQ201610395914
【公開日】2016年11月9日
【申請日】2016年6月7日 公開號201610395914.1, CN 106095879 A, CN 106095879A, CN 201610395914, CN-A-106095879, CN106095879 A, CN106095879A, CN201610395914, CN201610395914.1
【發(fā)明人】谷林, 倪一鳴
【申請人】中國建設銀行股份有限公司