欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于ANTLR4的數(shù)據(jù)處理架構(gòu)方法與流程

文檔序號:40574014發(fā)布日期:2025-01-03 11:37閱讀:14來源:國知局
一種基于ANTLR 4的數(shù)據(jù)處理架構(gòu)方法與流程

本發(fā)明屬于大數(shù)據(jù)處理,具體涉及一種基于antlr?4的數(shù)據(jù)處理架構(gòu)方法。


背景技術(shù):

1、大數(shù)據(jù)是指大小超出了傳統(tǒng)數(shù)據(jù)庫軟件工具的抓取、存儲、管理和分析能力的數(shù)據(jù)群,因此對大數(shù)據(jù)的處理往往會用到分布式的多臺計(jì)算機(jī)資源,而統(tǒng)籌分布式計(jì)算資源進(jìn)行大數(shù)據(jù)處理相關(guān)的技術(shù)就是大數(shù)據(jù)處理技術(shù)。當(dāng)前主流的大數(shù)據(jù)處理框架和技術(shù)包括hadoop、spark、flink、storm、hive、hbase和kafka等,這些框架或者技術(shù)平臺可以統(tǒng)籌利用分布式的計(jì)算機(jī)資源進(jìn)行大數(shù)據(jù)的分析處理和存儲操作。而大數(shù)據(jù)開發(fā)人員可以利用上述大數(shù)據(jù)處理框架、平臺來構(gòu)建大數(shù)據(jù)處理應(yīng)用程序,從而實(shí)現(xiàn)對海量數(shù)據(jù)的處理、分析工作。

2、語法分析(syntactic?analysis)是根據(jù)某種給定的形式文法對由單詞序列構(gòu)成的輸入文本(比如程序代碼)進(jìn)行分析并確定其語法結(jié)構(gòu)的一種過程。而語法分析器(parser)通常是作為編譯器或解釋器的組件出現(xiàn)的,它的作用是進(jìn)行語法檢查、分析、并構(gòu)建由輸入的單詞組成的數(shù)據(jù)結(jié)構(gòu)(比如抽象語法樹ast)。antlr(another?tool?forlanguage?recognition)是java領(lǐng)域一個(gè)常見的開源語法分析器,開發(fā)人員可以基于antlr構(gòu)建自己的領(lǐng)域語言,從而幫助非研發(fā)背景的業(yè)務(wù)人員更加靈活便捷構(gòu)建地業(yè)務(wù)處理邏輯。

3、在《大數(shù)據(jù)背景下基于動態(tài)可配置規(guī)則的數(shù)據(jù)清洗框架》中,開發(fā)人員提出了一種將動態(tài)可配置規(guī)則與數(shù)據(jù)清洗相結(jié)合的數(shù)據(jù)處理框架。該技術(shù)方案將規(guī)則類型分為drools規(guī)則、正則表達(dá)式規(guī)則和函數(shù)規(guī)則三種,并實(shí)現(xiàn)了對應(yīng)的規(guī)則引擎用來解析規(guī)則的邏輯表達(dá)式,然后基于規(guī)則類型調(diào)用三種規(guī)則的接口來進(jìn)行數(shù)據(jù)處理。

4、該技術(shù)方案存在以下幾個(gè)方面的不足:

5、1、在該技術(shù)方案中,對于數(shù)據(jù)處理規(guī)則配置的靈活性存在不足,因?yàn)樵摪l(fā)明實(shí)現(xiàn)的規(guī)則引擎支持的語法規(guī)則較少;

6、2、在該技術(shù)方案中,數(shù)據(jù)處理規(guī)則的生效機(jī)制不夠及時(shí)便捷,修改數(shù)據(jù)處理規(guī)則后需要重新啟動程序,因?yàn)樵摲桨覆捎昧伺渲梦募姆绞竭M(jìn)行數(shù)據(jù)處理規(guī)則的編排和調(diào)用;

7、3、該技術(shù)方案中,數(shù)據(jù)處理規(guī)則的編寫不夠簡便,因?yàn)槌诵枰渲脭?shù)據(jù)的匹配計(jì)算規(guī)則外還需要額外配置數(shù)據(jù)處理方式(如修改或者丟棄)。

8、現(xiàn)有的基于可配置規(guī)則的大數(shù)據(jù)處理技術(shù)方案中,對運(yùn)行時(shí)數(shù)據(jù)處理邏輯的修改缺乏靈活性和便捷性,比如:1、數(shù)據(jù)處理規(guī)則配置的靈活性存在不足,支持語法規(guī)則較少;2、數(shù)據(jù)處理規(guī)則的生效不夠及時(shí)便捷,比如修改數(shù)據(jù)處理規(guī)則后需要重新編譯部署代碼或者需要重啟程序;3、數(shù)據(jù)處理規(guī)則的編寫不夠簡便等。


技術(shù)實(shí)現(xiàn)思路

1、為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種基于antlr?4的數(shù)據(jù)處理架構(gòu)方法,該方法支持更加豐富的規(guī)則語法并提供了多種預(yù)置的數(shù)據(jù)計(jì)算規(guī)則,同時(shí)融入了周期更新數(shù)據(jù)處理規(guī)則的熱加載機(jī)制,可以為實(shí)時(shí)和離線大數(shù)據(jù)的處理邏輯編排提供靈活配置、免編譯和熱加載的技術(shù)方案,在大數(shù)據(jù)處理過程中臨時(shí)修改數(shù)據(jù)處理邏輯后并不需要重新編譯部署或者重啟運(yùn)行程序就能及時(shí)便捷地使規(guī)則生效并得到最新數(shù)據(jù)加工邏輯的處理結(jié)果。

2、本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案如下:

3、步驟1:語法規(guī)則定義與配置;

4、根據(jù)領(lǐng)域業(yè)務(wù)需求定義語法和關(guān)鍵詞,然后創(chuàng)建語法規(guī)則文件xlogic.g和關(guān)鍵詞文件xlogic.tokens,并通過antlr生成語法解析相關(guān)的工具類;

5、步驟2:編寫數(shù)據(jù)處理的業(yè)務(wù)表達(dá)式;

6、基于步驟1的語法規(guī)則文件編寫數(shù)據(jù)處理表達(dá)式,并對需要進(jìn)行處理的數(shù)據(jù)配置編寫好的規(guī)則;

7、步驟3:構(gòu)建表達(dá)式輸入流;

8、從數(shù)據(jù)庫中周期讀取步驟2中編寫的數(shù)據(jù)處理表達(dá)式,針對發(fā)生變動的表達(dá)式創(chuàng)建antlrinputstream流;

9、步驟4:詞法分析;

10、處理antlrinputstream流,識別并切分表達(dá)式中的關(guān)鍵詞,然后基于識別結(jié)果創(chuàng)建詞法分析結(jié)果commontokenstream流;

11、步驟5:語法分析;

12、處理步驟4中的詞法分析結(jié)果commontokenstream流,然后基于語法分析結(jié)果構(gòu)建語法樹;

13、步驟6:構(gòu)建表達(dá)式樹;

14、遍歷步驟5中生成的語法樹并構(gòu)建能進(jìn)行數(shù)據(jù)加工處理的表達(dá)式樹xnode;

15、步驟7:數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換;

16、使用spark?stream?api從kafka中讀取實(shí)時(shí)或者離線的大數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)換為kmessage結(jié)構(gòu);

17、步驟8:創(chuàng)建數(shù)據(jù)處理上下文;

18、使用步驟7中構(gòu)建的kmessage結(jié)構(gòu)的數(shù)據(jù)和預(yù)置的數(shù)據(jù)處理函數(shù)構(gòu)建數(shù)據(jù)處理上下文context;

19、步驟9:數(shù)據(jù)加工處理;

20、采用遍歷算法對步驟6中構(gòu)建的表達(dá)式樹xnode進(jìn)行遍歷并對步驟8中構(gòu)建的數(shù)據(jù)處理上下文context進(jìn)行加工處理,最終得到數(shù)據(jù)處理結(jié)果;

21、步驟10:數(shù)據(jù)輸出;

22、將處理完成的數(shù)據(jù)轉(zhuǎn)化為字節(jié)流,然后把最終結(jié)果輸出到kafka。

23、優(yōu)選地,所述步驟3中從數(shù)據(jù)庫中周期讀取步驟2中編寫的數(shù)據(jù)處理表達(dá)式是通過表達(dá)式配置與解析模塊完成。

24、優(yōu)選地,所述步驟4中處理antlrinputstream流是通過基于自定義規(guī)則生成的詞法分析器xlogiclexer進(jìn)行。

25、優(yōu)選地,所述步驟5中處理步驟4中的詞法分析結(jié)果commontokenstream流是通過基于自定義規(guī)則生成的語法分析器xlogicparser進(jìn)行。

26、優(yōu)選地,所述步驟6中遍歷步驟5中生成的語法樹是使用自定義的語法樹遍歷器xlogicvisitorimpl通過訪問者模式進(jìn)行。

27、本發(fā)明的有益效果如下:

28、本發(fā)明克服了傳統(tǒng)大數(shù)據(jù)處理業(yè)務(wù)中,對數(shù)據(jù)處理邏輯的配置不夠靈活,數(shù)據(jù)處理邏輯修改后難以及時(shí)便捷地生效的缺點(diǎn),提供了更加豐富語法規(guī)則,使用者可以基于自定義的動態(tài)領(lǐng)域語言和當(dāng)前數(shù)據(jù)處理的業(yè)務(wù)需求來構(gòu)建數(shù)據(jù)處理規(guī)則。本發(fā)明還采用了周期加載數(shù)據(jù)處理規(guī)則的熱加載機(jī)制來調(diào)用構(gòu)建好的數(shù)據(jù)處理規(guī)則而不需要重新編譯部署程序或是重啟程序,從而大大提升了大數(shù)據(jù)處理規(guī)則生效的及時(shí)性和便捷性。



技術(shù)特征:

1.一種基于antlr?4的數(shù)據(jù)處理架構(gòu)方法,其特征在于,包括如下步驟:

2.根據(jù)權(quán)利要求1所述的一種基于antlr?4的數(shù)據(jù)處理架構(gòu)方法,其特征在于,所述步驟3中從數(shù)據(jù)庫中周期讀取步驟2中編寫的數(shù)據(jù)處理表達(dá)式是通過表達(dá)式配置與解析模塊完成。

3.根據(jù)權(quán)利要求2所述的一種基于antlr?4的數(shù)據(jù)處理架構(gòu)方法,其特征在于,所述步驟4中處理antlrinputstream流是通過基于自定義規(guī)則生成的詞法分析器xlogiclexer進(jìn)行。

4.根據(jù)權(quán)利要求3所述的一種基于antlr?4的數(shù)據(jù)處理架構(gòu)方法,其特征在于,所述步驟5中處理步驟4中的詞法分析結(jié)果commontokenstream流是通過基于自定義規(guī)則生成的語法分析器xlogicparser進(jìn)行。

5.根據(jù)權(quán)利要求4所述的一種基于antlr?4的數(shù)據(jù)處理架構(gòu)方法,其特征在于,所述步驟6中遍歷步驟5中生成的語法樹是使用自定義的語法樹遍歷器xlogicvisitorimpl通過訪問者模式進(jìn)行。


技術(shù)總結(jié)
本發(fā)明公開了一種基于ANTLR?4的數(shù)據(jù)處理架構(gòu)方法,該方法支持更加豐富的規(guī)則語法并提供了多種預(yù)置的數(shù)據(jù)計(jì)算規(guī)則,同時(shí)融入了周期更新數(shù)據(jù)處理規(guī)則的熱加載機(jī)制,可以為實(shí)時(shí)和離線大數(shù)據(jù)的處理邏輯編排提供靈活配置、免編譯和熱加載的技術(shù)方案,在大數(shù)據(jù)處理過程中臨時(shí)修改數(shù)據(jù)處理邏輯后并不需要重新編譯部署或者重啟運(yùn)行程序就能及時(shí)便捷地使規(guī)則生效并得到最新數(shù)據(jù)加工邏輯的處理結(jié)果。

技術(shù)研發(fā)人員:方福文,趙景鋒,白雨,李朝雄
受保護(hù)的技術(shù)使用者:電信科學(xué)技術(shù)第十研究所有限公司
技術(shù)研發(fā)日:
技術(shù)公布日:2025/1/2
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
江安县| 惠来县| 来安县| 营口市| 南充市| 云梦县| 浏阳市| 横峰县| 新蔡县| 临泽县| 清河县| 镇原县| 崇礼县| 曲沃县| 屯门区| 河西区| 曲阳县| 平塘县| 凤阳县| 夏津县| 定远县| 贡觉县| 郎溪县| 香河县| 登封市| 延安市| 灯塔市| 关岭| 吉木萨尔县| 龙海市| 云南省| 全州县| 泉州市| 武隆县| 平武县| 四平市| 肃北| 溧水县| 双流县| 天镇县| 开化县|