两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

兼容多種大數(shù)據(jù)存儲的數(shù)據(jù)處理方法、系統(tǒng)及其建模方法與流程

文檔序號:11323357閱讀:348來源:國知局
本發(fā)明屬于大數(shù)據(jù)應(yīng)用數(shù)據(jù)分析領(lǐng)域,具體涉及一種基于spark技術(shù)體系兼容多種大數(shù)據(jù)存儲的數(shù)據(jù)處理方法、系統(tǒng)及其數(shù)據(jù)建模方法,主要用于實現(xiàn)各種不同數(shù)據(jù)的存儲與分析平臺間的統(tǒng)一數(shù)據(jù)查詢、統(tǒng)一數(shù)據(jù)分析、統(tǒng)一數(shù)據(jù)輸出,降低數(shù)據(jù)分析的難度與復(fù)雜度。
背景技術(shù)
::目前,大數(shù)據(jù)存儲與分析領(lǐng)域蓬勃發(fā)展,已經(jīng)出現(xiàn)了多種技術(shù)路線,由于尚沒有統(tǒng)一的標(biāo)準(zhǔn),市面上存在多種不同的存儲平臺和分析方法。其中,各平臺基本都自成體系,擁有自己的特點,并分別針對不同場景解決不同問題。這就使得不同平臺間的數(shù)據(jù)交換成為了一個很大的問題。同時,對于用戶而言,往往又需要在不同的平臺間進(jìn)行數(shù)據(jù)交換。在實際使用過程中,為了解決不同平臺間的數(shù)據(jù)交換問題,往往需要編寫特定的程序,以實現(xiàn)不同平臺間的數(shù)據(jù)交換,而編寫程序不僅需要花費很長時間、很大精力,而且,這些特別編寫的程序一般只能用于特定平臺間的數(shù)據(jù)交換,而不能用于其他平臺間的數(shù)據(jù)交換,另外,程序編寫完成后,一旦出現(xiàn)錯誤或變更,維護(hù)的成本很高。由此可見,一種能夠?qū)崿F(xiàn)在各種不同數(shù)據(jù)存儲與分析平臺間簡單地進(jìn)行數(shù)據(jù)交換的解決方案是本領(lǐng)域技術(shù)人員所需要的。技術(shù)實現(xiàn)要素:為了解決現(xiàn)有技術(shù)的上述問題,本發(fā)明提供一種基于spark技術(shù)體系兼容多種大數(shù)據(jù)存儲的數(shù)據(jù)處理方法,其可以實現(xiàn)各種不同數(shù)據(jù)的存儲與分析平臺間的數(shù)據(jù)交換。本發(fā)明還提供一種基于spark技術(shù)體系兼容多種大數(shù)據(jù)存儲的數(shù)據(jù)處理系統(tǒng),其可以實現(xiàn)各種不同數(shù)據(jù)的存儲與分析平臺間的數(shù)據(jù)交換。本發(fā)明還提供一種兼容多種大數(shù)據(jù)存儲的數(shù)據(jù)建模方法,其可以實現(xiàn)各種不同平臺、不同數(shù)據(jù)來源間的數(shù)據(jù)抽取,進(jìn)而可以實現(xiàn)數(shù)據(jù)交換。為了達(dá)到上述目的,本發(fā)明采用的主要技術(shù)方案包括:一種基于spark技術(shù)體系兼容多種大數(shù)據(jù)存儲的數(shù)據(jù)處理方法,其包括如下步驟:s2、接入相應(yīng)數(shù)據(jù)源的源數(shù)據(jù);s3、對接入的源數(shù)據(jù)進(jìn)行抽?。籹4、得到分布式數(shù)據(jù)集rdd(resilientdistributeddatasets彈性分布式數(shù)據(jù)集);s5、將數(shù)據(jù)集rdd交由spark數(shù)據(jù)引擎進(jìn)行處理。其中,步驟s2中,源數(shù)據(jù)包括來自傳統(tǒng)數(shù)據(jù)庫(oracle、mysql等)、hadoop、elasticsearch、druid、restapi的數(shù)據(jù)、流式數(shù)據(jù)、日志數(shù)據(jù)及各種可結(jié)構(gòu)化的非結(jié)構(gòu)化數(shù)據(jù)。其中,源數(shù)據(jù)的格式可以是已知的或未知的,可以來自相同或不同的數(shù)據(jù)源,即源數(shù)據(jù)可以是相同格式或不同格式的。其中,步驟s2中,包括通過datasource結(jié)點指出要抽取的數(shù)據(jù)從哪里來。具體的,包括通過兩個子結(jié)點name和type分別指出數(shù)據(jù)來源的名稱和類型,其中,name指出數(shù)據(jù)來源的名稱,type指出數(shù)據(jù)來源的類型。其中,步驟s5中,可根據(jù)實際需要進(jìn)行多次計算和迭代并可重復(fù)多次。具體的,可以根據(jù)不同的迭代要求對每個數(shù)據(jù)集rdd進(jìn)行計算和迭代,直至得出想要的結(jié)果。其中,還包括步驟s6、數(shù)據(jù)迭代計算完成后,通過統(tǒng)一的數(shù)據(jù)輸出格式轉(zhuǎn)換器將數(shù)據(jù)輸出為預(yù)定類型。例如輸出為流式數(shù)據(jù)、分析模型、二維表數(shù)據(jù)、json、api及文件等多種格式。其中,還包括步驟s1、定義數(shù)據(jù)處理任務(wù)。具體的,步驟s1中,數(shù)據(jù)處理任務(wù)是以數(shù)據(jù)建模語言smartml定義的。其中,數(shù)據(jù)建模語言smartml基于json格式書寫,包括在根下建立datasource、query、mapping、outputtable、sql和partition六個子結(jié)點。其中,datasource結(jié)點用于指出要抽取的數(shù)據(jù)從哪里來。例如這些數(shù)據(jù)可以來自傳統(tǒng)數(shù)據(jù)庫oracle或mysql及其它數(shù)據(jù)、hadoop、elasticsearch、cassandra、druid、api等等。較佳的,datasource結(jié)點下定義有兩個子結(jié)點name和type,用于準(zhǔn)確簡潔地指出數(shù)據(jù)來源。其中,name用于指出數(shù)據(jù)來源的名稱,type用于指出數(shù)據(jù)來源的類型(例如db、api、haddop、druid等等)。其中,query結(jié)點用于定義每種不同平臺數(shù)據(jù)產(chǎn)生和查詢的過程,例如hadoop的mapreduce過程、elasticsearch的數(shù)據(jù)搜索過程、druid的數(shù)據(jù)聚合查詢過程、api的數(shù)據(jù)獲取過程及參數(shù)等。其中,mapping結(jié)點用于定義當(dāng)前來源數(shù)據(jù)抽取結(jié)果的輸出結(jié)構(gòu)。較佳的,可以用于將從數(shù)據(jù)源里抽取數(shù)據(jù)的結(jié)構(gòu)進(jìn)行重新定義,例如可以將json格式數(shù)據(jù)轉(zhuǎn)換成二維表結(jié)構(gòu)數(shù)據(jù)。其中,outputtable結(jié)點用于定義一種數(shù)據(jù)來源查詢結(jié)果的輸出表名稱。較佳的,數(shù)據(jù)表名稱定義后,可以作為接下來一個或幾個數(shù)據(jù)分析過程的輸入。其中,sql結(jié)點用于將不同數(shù)據(jù)來源抽取到的數(shù)據(jù)進(jìn)行重新計算、關(guān)聯(lián)、分析并輸出。較佳的,sql的語法可以遵循sparksql的標(biāo)準(zhǔn)語法結(jié)構(gòu)。其中,partition結(jié)點用于定義分區(qū),根據(jù)數(shù)據(jù)特點和實際需要將數(shù)據(jù)集分布到spark集群的一個或多個結(jié)點上,借以加大并行度,提高計算速度。其中,定義后的數(shù)據(jù)處理任務(wù)可以通過api來調(diào)度執(zhí)行。較佳的,通過api來調(diào)度執(zhí)行數(shù)據(jù)處理任務(wù)支持動態(tài)參數(shù)傳入機(jī)制。較佳的,動態(tài)參數(shù)包括任務(wù)啟動參數(shù)和執(zhí)行參數(shù)是動態(tài)的。較佳的,支持動態(tài)參數(shù)傳入機(jī)制包括視不同需求和應(yīng)用場景傳入不同的參數(shù)。其中,數(shù)據(jù)處理任務(wù)的執(zhí)行是通過解析及執(zhí)行數(shù)據(jù)建模語言進(jìn)行的。較佳的,解析及執(zhí)行平臺設(shè)有主master和備master,一旦主master異常,備master會接替主master提供服務(wù)。較佳的,任務(wù)結(jié)點重新啟動后,會將之前未完成的任務(wù)重新調(diào)度運行。較佳的,收集并記錄任務(wù)運行過程中產(chǎn)生的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤,日志提供http訪問,用戶可通過訪問對應(yīng)的日志url來方便的訪問數(shù)據(jù)建模語言(smartml)運行日志。借助上述方案,本發(fā)明的數(shù)據(jù)處理方法,從兩種不同數(shù)據(jù)源將抽取數(shù)據(jù)完成后,百萬級數(shù)據(jù)量,三層聚合計算的響應(yīng)時間為1秒內(nèi)。一種基于spark技術(shù)體系兼容多種大數(shù)據(jù)存儲的數(shù)據(jù)處理系統(tǒng),其包括:數(shù)源接入系統(tǒng),用于接入相應(yīng)數(shù)據(jù)源的源數(shù)據(jù);數(shù)據(jù)分析系統(tǒng),其包括:數(shù)據(jù)抽取單元,用于對接入的源數(shù)據(jù)進(jìn)行抽取,spark數(shù)據(jù)引擎,對抽取得到的數(shù)據(jù)集進(jìn)行處理,該處理包括進(jìn)行多次計算和迭代;數(shù)據(jù)輸出系統(tǒng),用于輸出處理后的數(shù)據(jù)。借助上述結(jié)構(gòu)的設(shè)置,本發(fā)明的數(shù)據(jù)處理系統(tǒng),其可以實現(xiàn)數(shù)據(jù)查詢的統(tǒng)一,使得用戶不需要編寫程序,即可以實現(xiàn)不同平臺、不同數(shù)據(jù)來源之間的數(shù)據(jù)抽取。進(jìn)一步的,還可以統(tǒng)一數(shù)據(jù)分析過程,例如,一種平臺的數(shù)據(jù)輸出,可以直接作為另一平臺的數(shù)據(jù)輸入或關(guān)聯(lián)數(shù)據(jù)進(jìn)行分析,很容易實現(xiàn)不同平臺間的數(shù)據(jù)交換。其中,源數(shù)據(jù)包括來自傳統(tǒng)數(shù)據(jù)庫(oracle、mysql等)、hadoop、elasticsearch、druid、restapi的數(shù)據(jù)、流式數(shù)據(jù)、日志數(shù)據(jù)及各種可結(jié)構(gòu)化的非結(jié)構(gòu)化數(shù)據(jù)。其中,源數(shù)據(jù)的格式可以是已知的或未知的,可以來自相同或不同的數(shù)據(jù)源,即源數(shù)據(jù)可以是相同格式或不同格式的。較佳的,數(shù)源接入系統(tǒng)還包括第三方數(shù)據(jù)源接口??梢越尤肜鏰pi、流式數(shù)據(jù)等。其中,數(shù)據(jù)抽取單元可以是smatmlexcute平臺。較佳的,smartmlexcute平臺中包括:數(shù)據(jù)分片模塊、數(shù)據(jù)迭代模塊、數(shù)據(jù)挖掘模塊和聚合計算模塊。其中,數(shù)據(jù)分片即數(shù)據(jù)拆分,將一個較大的數(shù)據(jù)集按照一定的規(guī)則拆分成很多個子數(shù)據(jù)集分片,分別并行進(jìn)行處理和計算,最后再將分片處理結(jié)果合并一成數(shù)據(jù)集得出最終計算結(jié)果,而提高計算效率。其中,數(shù)據(jù)迭代即計算迭代,將整個計算過程拆分多個計算步驟,每個計算步驟并發(fā)進(jìn)行,計算完成后將結(jié)果再進(jìn)行迭代計算得出最終結(jié)果。其中的數(shù)據(jù)挖掘是指:通過統(tǒng)計、分析處理、情報檢索、計算算法、專家系統(tǒng)(依靠過去的經(jīng)驗法則)和模型等方法從大量的數(shù)據(jù)中搜索隱藏于其中的信息。其中的聚合計算是指:使用統(tǒng)計學(xué)的方法根據(jù)數(shù)據(jù)的不同特點,把數(shù)據(jù)劃分為維度和指標(biāo),將數(shù)據(jù)按照維度進(jìn)行排列組合并對指標(biāo)進(jìn)行求和、求平均、最大值和最小值等一系列計算的過程。其中,數(shù)據(jù)分析系統(tǒng)還包括分布式數(shù)據(jù)集rdd模塊,用于基于抽取動作得到分布式數(shù)據(jù)集rdd。較佳的,數(shù)據(jù)輸出系統(tǒng)設(shè)有數(shù)據(jù)輸出格式轉(zhuǎn)換器,用于將數(shù)據(jù)輸出格式進(jìn)行統(tǒng)一或定制,例如流式數(shù)據(jù)、分析模型、二維表數(shù)據(jù)、json、api或文件等。較佳的,數(shù)據(jù)處理系統(tǒng)基于json格式書寫,包括在根下建立datasource、query、mapping、outputtable、sql和partition六個子結(jié)點。其中,datasource結(jié)點用于指出要抽取的數(shù)據(jù)從哪里來。例如這些數(shù)據(jù)可以來自傳統(tǒng)數(shù)據(jù)庫oracle或mysql及其它數(shù)據(jù)、hadoop、elasticsearch、cassandra、druid、api等等。較佳的,datasource結(jié)點下定義有兩個子結(jié)點name和type,用于準(zhǔn)確簡潔地指出數(shù)據(jù)來源。其中,name用于指出數(shù)據(jù)來源的名稱,type用于指出數(shù)據(jù)來源的類型(例如db、api、haddop、druid等等)。其中,query結(jié)點用于定義每種不同平臺數(shù)據(jù)產(chǎn)生和查詢的過程,例如hadoop的mapreduce過程、elasticsearch的數(shù)據(jù)搜索過程、druid的數(shù)據(jù)聚合查詢過程、api的數(shù)據(jù)獲取過程及參數(shù)等。其中,mapping結(jié)點用于定義當(dāng)前來源數(shù)據(jù)抽取結(jié)果的輸出結(jié)構(gòu)。較佳的,可以用于將從數(shù)據(jù)源里抽取數(shù)據(jù)的結(jié)構(gòu)進(jìn)行重新定義,例如可以將json格式數(shù)據(jù)轉(zhuǎn)換成二維表結(jié)構(gòu)數(shù)據(jù)。其中,outputtable結(jié)點用于定義一種數(shù)據(jù)來源查詢結(jié)果的輸出表名稱。較佳的,數(shù)據(jù)表名稱定義后,可以作為接下來一個或幾個數(shù)據(jù)分析過程的輸入。其中,sql結(jié)點用于將不同數(shù)據(jù)來源抽取到的數(shù)據(jù)進(jìn)行重新計算、關(guān)聯(lián)、分析并輸出。較佳的,sql的語法可以遵循sparksql的標(biāo)準(zhǔn)語法結(jié)構(gòu)。其中,partition結(jié)點用于定義分區(qū),根據(jù)數(shù)據(jù)特點和實際需要將數(shù)據(jù)集分布到spark集群的一個或多個結(jié)點上,借以加大并行度,提高計算速度。其中,數(shù)據(jù)處理系統(tǒng)具有api(即applicationprograminterface應(yīng)用程序接口),用于調(diào)度執(zhí)行定義后的數(shù)據(jù)處理任務(wù)。一種兼容多種大數(shù)據(jù)存儲的數(shù)據(jù)建模方法,其基于json格式書寫及開發(fā)數(shù)據(jù)建模語言,包括在根下建立datasource、query、mapping、outputtable、sql和partition六個子結(jié)點。其中,datasource結(jié)點用于指出要抽取的數(shù)據(jù)從哪里來。例如這些數(shù)據(jù)可以來自傳統(tǒng)數(shù)據(jù)庫oracle或mysql及其它數(shù)據(jù)、hadoop、elasticsearch、cassandra、druid、api等等。較佳的,datasource結(jié)點下定義有兩個子結(jié)點name和type,用于準(zhǔn)確簡潔地指出數(shù)據(jù)來源。其中,name用于指出數(shù)據(jù)來源的名稱,type用于指出數(shù)據(jù)來源的類型(例如db、api、haddop、druid等等)。其中,query結(jié)點用于定義每種不同平臺數(shù)據(jù)產(chǎn)生和查詢的過程,例如hadoop的mapreduce過程、elasticsearch的數(shù)據(jù)搜索過程、druid的數(shù)據(jù)聚合查詢過程、api的數(shù)據(jù)獲取過程及參數(shù)等。其中,mapping結(jié)點用于定義當(dāng)前來源數(shù)據(jù)抽取結(jié)果的輸出結(jié)構(gòu)。較佳的,可以用于將從數(shù)據(jù)源里抽取數(shù)據(jù)的結(jié)構(gòu)進(jìn)行重新定義,例如可以將json格式數(shù)據(jù)轉(zhuǎn)換成二維表結(jié)構(gòu)數(shù)據(jù)。計算結(jié)果通過mapping進(jìn)行再定義和輸出,可以為數(shù)據(jù)再次迭代計算做準(zhǔn)備,將一次計算結(jié)果以特定結(jié)構(gòu)輸出后,可以作為下一個或幾個計算過程的輸入,對數(shù)據(jù)不間斷的計算和處理,得最終的結(jié)果。其中,outputtable結(jié)點用于定義一種數(shù)據(jù)來源查詢結(jié)果的輸出表名稱。較佳的,數(shù)據(jù)表名稱定義后,可以作為接下來一個或幾個數(shù)據(jù)分析過程的輸入。借助outputtable定義了計算結(jié)果輸出表的名稱,不僅可以將上一步的計算結(jié)果作為輸入,還可以方便地在多個不同的計算步驟里選擇特定的表作為輸入。其中,sql結(jié)點用于將不同數(shù)據(jù)來源抽取到的數(shù)據(jù)進(jìn)行重新計算、關(guān)聯(lián)、分析并輸出。sql即標(biāo)準(zhǔn)的sql查詢語句定義查詢過程,它可以從outputtable定義過的表中查詢和抽取數(shù)據(jù)并計算。較佳的,sql的語法可以遵循sparksql的標(biāo)準(zhǔn)語法結(jié)構(gòu)。其中,partition結(jié)點用于定義分區(qū),根據(jù)數(shù)據(jù)特點和實際需要將數(shù)據(jù)集分布到spark集群的一個或多個結(jié)點上,借以加大并行度,提高計算速度。應(yīng)用時,可以自定義數(shù)據(jù)分析任務(wù),例如接入不同數(shù)據(jù)源的源數(shù)據(jù),對借入的源數(shù)據(jù)進(jìn)行提取,得到結(jié)果數(shù)據(jù)集(例如分布式數(shù)據(jù)集rdd),再將每個數(shù)據(jù)源的結(jié)果數(shù)據(jù)集放到spark集群里,借助spark的高性能并行計算和多源數(shù)據(jù)挖掘及迭代的特性,根據(jù)不同的迭代要求對每個數(shù)據(jù)集進(jìn)行計算和迭代,最終得出想要的結(jié)果。其中,任務(wù)定義后,可以通過api來調(diào)度執(zhí)行。由于它支持動態(tài)參數(shù)傳入機(jī)制,即任務(wù)啟動和執(zhí)行參數(shù)是動態(tài)的,因此可以視不同需求和應(yīng)用場景傳入不同的參數(shù)。其中,參數(shù)定義的格式可以為“$<paramname,defaultvalue,paramtype>”,其中,paramname為參數(shù)的名稱,defaultvalue為參數(shù)默認(rèn)值(當(dāng)參數(shù)為空時的默認(rèn)值),paramtype為參數(shù)的類型,既可以是基礎(chǔ)數(shù)據(jù)類型(如int,double,string等),也可以是復(fù)雜類型(如對象object)。借此,本發(fā)明的兼容多種大數(shù)據(jù)存儲的數(shù)據(jù)建模方法,其通過統(tǒng)一的數(shù)據(jù)建模語言,不需編寫程序,即可以實現(xiàn)各種不同平臺、不同數(shù)據(jù)來源之間的數(shù)據(jù)抽取,進(jìn)而實現(xiàn)不同平臺間的數(shù)據(jù)交換。附圖說明圖1為本發(fā)明的實現(xiàn)原理圖。具體實施方式為了更好的解釋本發(fā)明,以便于理解,下面結(jié)合附圖,通過具體實施方式,對本發(fā)明作詳細(xì)描述。參見圖1,本發(fā)明一個實施例的基于spark技術(shù)體系兼容多種大數(shù)據(jù)存儲的數(shù)據(jù)處理系統(tǒng),其包括:數(shù)源接入系統(tǒng),用于接入相應(yīng)數(shù)據(jù)源的源數(shù)據(jù);數(shù)據(jù)分析系統(tǒng),其包括:數(shù)據(jù)抽取單元,用于對接入的源數(shù)據(jù)進(jìn)行抽取,spark數(shù)據(jù)引擎,對抽取得到的數(shù)據(jù)集進(jìn)行處理,該處理包括進(jìn)行多次計算和迭代;數(shù)據(jù)輸出系統(tǒng),用于輸出處理后的數(shù)據(jù)。借助上述結(jié)構(gòu)的設(shè)置,本發(fā)明的數(shù)據(jù)處理系統(tǒng),其可以實現(xiàn)數(shù)據(jù)查詢的統(tǒng)一,使得用戶不需要編寫程序,即可以實現(xiàn)不同平臺、不同數(shù)據(jù)來源之間的數(shù)據(jù)抽取。進(jìn)一步的,還可以統(tǒng)一數(shù)據(jù)分析過程,例如,一種平臺的數(shù)據(jù)輸出,可以直接作為另一平臺的數(shù)據(jù)輸入或關(guān)聯(lián)數(shù)據(jù)進(jìn)行分析,很容易實現(xiàn)不同平臺間的數(shù)據(jù)交換。其中,源數(shù)據(jù)包括來自傳統(tǒng)數(shù)據(jù)庫(oracle、mysql等)、hadoop、elasticsearch、druid、restapi的數(shù)據(jù)、流式數(shù)據(jù)、日志數(shù)據(jù)及各種可結(jié)構(gòu)化的非結(jié)構(gòu)化數(shù)據(jù)。其中,源數(shù)據(jù)的格式可以是已知的或未知的,可以來自相同或不同的數(shù)據(jù)源,即源數(shù)據(jù)可以是相同格式或不同格式的。較佳的,數(shù)源接入系統(tǒng)還包括第三方數(shù)據(jù)源接口??梢越尤肜鏰pi、流式數(shù)據(jù)等。其中,數(shù)據(jù)抽取單元可以是dqlexcute平臺。較佳的,dqlexcute平臺中包括:數(shù)據(jù)分片模塊、數(shù)據(jù)迭代模塊、數(shù)據(jù)挖掘模塊和聚合計算模塊。其中,數(shù)據(jù)分析系統(tǒng)還包括分布式數(shù)據(jù)集rdd模塊,用于基于抽取動作得到分布式數(shù)據(jù)集rdd。較佳的,數(shù)據(jù)輸出系統(tǒng)設(shè)有數(shù)據(jù)輸出格式轉(zhuǎn)換器,用于將數(shù)據(jù)輸出格式進(jìn)行統(tǒng)一或定制,例如流式數(shù)據(jù)、分析模型、二維表數(shù)據(jù)、json、api或文件等。較佳的,數(shù)據(jù)處理系統(tǒng)基于json格式書寫,包括在根下建立datasource、query、mapping、outputtable、sql和partition六個子結(jié)點。其中,datasource結(jié)點用于指出要抽取的數(shù)據(jù)從哪里來。例如這些數(shù)據(jù)可以來自傳統(tǒng)數(shù)據(jù)庫oracle或mysql及其它數(shù)據(jù)、hadoop、elasticsearch、cassandra、druid、api等等。較佳的,datasource結(jié)點下定義有兩個子結(jié)點name和type,用于準(zhǔn)確簡潔地指出數(shù)據(jù)來源。其中,name用于指出數(shù)據(jù)來源的名稱,type用于指出數(shù)據(jù)來源的類型(例如db、api、haddop、druid等等)。其中,query結(jié)點用于定義每種不同平臺數(shù)據(jù)產(chǎn)生和查詢的過程,例如hadoop的mapreduce過程、elasticsearch的數(shù)據(jù)搜索過程、druid的數(shù)據(jù)聚合查詢過程、api的數(shù)據(jù)獲取過程及參數(shù)等。其中,mapping結(jié)點用于定義當(dāng)前來源數(shù)據(jù)抽取結(jié)果的輸出結(jié)構(gòu)。較佳的,可以用于將從數(shù)據(jù)源里抽取數(shù)據(jù)的結(jié)構(gòu)進(jìn)行重新定義,例如可以將json格式數(shù)據(jù)轉(zhuǎn)換成二維表結(jié)構(gòu)數(shù)據(jù)。其中,outputtable結(jié)點用于定義一種數(shù)據(jù)來源查詢結(jié)果的輸出表名稱。較佳的,數(shù)據(jù)表名稱定義后,可以作為接下來一個或幾個數(shù)據(jù)分析過程的輸入。其中,sql結(jié)點用于將不同數(shù)據(jù)來源抽取到的數(shù)據(jù)進(jìn)行重新計算、關(guān)聯(lián)、分析并輸出。較佳的,sql的語法可以遵循sparksql的標(biāo)準(zhǔn)語法結(jié)構(gòu)。其中,partition結(jié)點用于定義分區(qū),根據(jù)數(shù)據(jù)特點和實際需要將數(shù)據(jù)集分布到spark集群的一個或多個結(jié)點上,借以加大并行度,提高計算速度。上述系統(tǒng),可以按照如下方法進(jìn)行數(shù)據(jù)處理,具體步驟如下:s1、定義數(shù)據(jù)處理任務(wù);s2、接入相應(yīng)數(shù)據(jù)源的源數(shù)據(jù);s3、對接入的源數(shù)據(jù)進(jìn)行抽?。籹4、得到分布式數(shù)據(jù)集rdd(resilientdistributeddatasets彈性分布式數(shù)據(jù)集);s5、將數(shù)據(jù)集rdd交由spark數(shù)據(jù)引擎進(jìn)行處理;s6、通過統(tǒng)一的數(shù)據(jù)輸出格式轉(zhuǎn)換器將數(shù)據(jù)輸出為預(yù)定類型。其中,步驟s1中,數(shù)據(jù)處理任務(wù)是以數(shù)據(jù)建模語言smartml定義的。其中,數(shù)據(jù)建模語言smartml基于json格式書寫,包括在根下建立datasource、query、mapping、outputtable、sql和partition六個子結(jié)點。例如:其中,定義后的數(shù)據(jù)處理任務(wù)可以通過api來調(diào)度執(zhí)行。較佳的,通過api來調(diào)度執(zhí)行數(shù)據(jù)處理任務(wù)支持動態(tài)參數(shù)傳入機(jī)制。較佳的,動態(tài)參數(shù)包括任務(wù)啟動參數(shù)和執(zhí)行參數(shù)是動態(tài)的。較佳的,支持動態(tài)參數(shù)傳入機(jī)制包括視不同需求和應(yīng)用場景傳入不同的參數(shù)。其中,數(shù)據(jù)處理任務(wù)的執(zhí)行是通過解析及執(zhí)行數(shù)據(jù)建模語言進(jìn)行的。較佳的,解析及執(zhí)行平臺設(shè)有主master和備master,一旦主master異常,備master會接替主master提供服務(wù)。較佳的,任務(wù)結(jié)點重新啟動后,會將之前未完成的任務(wù)重新調(diào)度運行。較佳的,收集并記錄任務(wù)運行過程中產(chǎn)生的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤,日志提供http訪問,用戶可通過訪問對應(yīng)的日志url來方便的訪問數(shù)據(jù)建模語言(smartml)運行日志。其中,步驟s2中,源數(shù)據(jù)包括來自傳統(tǒng)數(shù)據(jù)庫(oracle、mysql等)、hadoop、elasticsearch、druid、restapi的數(shù)據(jù)、流式數(shù)據(jù)、日志數(shù)據(jù)及各種可結(jié)構(gòu)化的非結(jié)構(gòu)化數(shù)據(jù)。其中,源數(shù)據(jù)的格式可以是已知的或未知的,可以來自相同或不同的數(shù)據(jù)源,即源數(shù)據(jù)可以是相同格式或不同格式的。其中,步驟s5中,可根據(jù)實際需要進(jìn)行多次計算和迭代并可重復(fù)多次。具體的,可以根據(jù)不同的迭代要求對每個數(shù)據(jù)集rdd進(jìn)行計算和迭代,直至得出想要的結(jié)果。其中,步驟s6中,數(shù)據(jù)輸出的預(yù)定類型包括流式數(shù)據(jù)、分析模型、二維表數(shù)據(jù)、json、api及文件等多種格式。借助上述方案,本發(fā)明的數(shù)據(jù)處理方法,從兩種不同數(shù)據(jù)源將抽取數(shù)據(jù)完成后,百萬級數(shù)據(jù)量,三層聚合計算的響應(yīng)時間為1秒內(nèi)。下面,提供本發(fā)明用于氣象數(shù)據(jù)整合查詢的一個具體應(yīng)用例,對本發(fā)明作進(jìn)一步描述。場景描述:整合已有不同數(shù)據(jù)來源,提供氣象綜合數(shù)據(jù)查詢。數(shù)據(jù)來源包括:高空間分辨率數(shù)據(jù):1km×1km全國約960萬個格點數(shù)據(jù)(txt格式);高時間分辨率數(shù)據(jù):1995-2017年逐小時風(fēng)資源數(shù)據(jù)(netcdf);高分辨率gis數(shù)據(jù):dem高程數(shù)據(jù)、地形數(shù)據(jù)、土地利用/土地覆蓋(tiff格式)。場景目標(biāo):基于高空間分辨率數(shù)據(jù)、高時間分辨率數(shù)據(jù)、高分辨gis數(shù)據(jù),提供點查詢和區(qū)域查詢。查詢結(jié)果綜合了空間、時間及gis數(shù)據(jù)。實現(xiàn)方式:高空間分辨率數(shù)據(jù)采集:采集后通過druid集群存儲;高時間分辨率數(shù)據(jù)采集:采集后通過druid集群存儲;高分辨率gis數(shù)據(jù)采集:采集后通過內(nèi)存存儲。三種數(shù)據(jù)采集完成相應(yīng)存儲后,基于三種數(shù)據(jù)提供數(shù)據(jù)查詢。效果描述:不采用本發(fā)明的情況下,對于原始的三種數(shù)據(jù),數(shù)據(jù)格式完全不同,無法實現(xiàn)整合查詢;使用本發(fā)明的系統(tǒng)和方法,通過相應(yīng)的采集插件將三種數(shù)據(jù)采集到平臺后,根據(jù)不同數(shù)據(jù)來源及用途采用不同的存儲方式,可以對不同存儲方式數(shù)據(jù)進(jìn)行整合查詢。綜上所述,本發(fā)明通過書寫統(tǒng)一的數(shù)據(jù)建模語言,不需要編寫程序,即可以實現(xiàn)不同平臺、不同數(shù)據(jù)來源之間的數(shù)據(jù)抽取,統(tǒng)一數(shù)據(jù)查詢,進(jìn)一步的,還可以將一種平臺的數(shù)據(jù)輸出,直接作為另一平臺的數(shù)據(jù)輸入或關(guān)聯(lián)數(shù)據(jù)進(jìn)行分析,很容易實現(xiàn)不同平臺間的數(shù)據(jù)交換,統(tǒng)一數(shù)據(jù)分析過程,更進(jìn)一步的,還可以根據(jù)實際需要將不同平臺的數(shù)據(jù)輸出格式進(jìn)行統(tǒng)一或定制,統(tǒng)一數(shù)據(jù)輸出,例如實現(xiàn)二維表數(shù)據(jù)或json格式數(shù)據(jù)的相互轉(zhuǎn)換。當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宜兰县| 吉木萨尔县| 承德县| 米林县| 方山县| 宁阳县| 恭城| 古田县| 弋阳县| 扶余县| 栾城县| 崇左市| 青阳县| 迁安市| 昌都县| 临潭县| 伊川县| 兴义市| 土默特右旗| 绍兴市| 淮南市| 宿迁市| 丰顺县| 桃江县| 苏尼特左旗| 象州县| 邻水| 蒙城县| 银川市| 馆陶县| 黄骅市| 望江县| 社会| 平邑县| 大姚县| 英山县| 印江| 敖汉旗| 惠来县| 岐山县| 鄂尔多斯市|