業(yè)務(wù)導(dǎo)向的自定義大數(shù)據(jù)查詢(xún)系統(tǒng)及其SQL解析器的設(shè)計(jì)與實(shí)現(xiàn)
發(fā)布時(shí)間:2022-01-04 19:48
隨著互聯(lián)網(wǎng)的快速發(fā)展,用戶(hù)數(shù)據(jù)以極快的速度積累,用戶(hù)行為分析成為熱門(mén)的研究?jī)?nèi)容。本論文實(shí)現(xiàn)的數(shù)據(jù)查詢(xún)系統(tǒng)是互聯(lián)網(wǎng)用戶(hù)行為分析系統(tǒng)的一個(gè)數(shù)據(jù)查詢(xún)子系統(tǒng)。本文定義了一種簡(jiǎn)單的領(lǐng)域?qū)S谜Z(yǔ)言,并將其命名為SSQL(Simple Structured Query Language,簡(jiǎn)單結(jié)構(gòu)化數(shù)據(jù)查詢(xún)語(yǔ)言),論文根據(jù)具體需求抽象出一般查詢(xún)場(chǎng)景,進(jìn)而將其抽象成為一般的語(yǔ)法規(guī)則。本文使用擴(kuò)展的巴克斯范式來(lái)定義SSQL,并使用ANTLR(ANother Tool for Language Recognition,一一種語(yǔ)言識(shí)別器)作為語(yǔ)法解析器生成工具,然后使用解析器和遍歷器構(gòu)建查詢(xún)?nèi)蝿?wù)。SSQL語(yǔ)法支持了數(shù)據(jù)定義語(yǔ)句、數(shù)據(jù)查詢(xún)語(yǔ)句以及系統(tǒng)管理語(yǔ)句。查詢(xún)語(yǔ)法支持的查詢(xún)數(shù)據(jù)源包括HDFS結(jié)構(gòu)化數(shù)據(jù)、MySQL、Hive、以及Redis,ElasticSearch等常見(jiàn)NoSQL數(shù)據(jù)源。此外,SSQL語(yǔ)法還對(duì)數(shù)據(jù)源的管理提供支持,支持了對(duì)數(shù)據(jù)源的定義及其增刪查改。本論文基于SSQL查詢(xún)語(yǔ)法設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)數(shù)據(jù)查詢(xún)系統(tǒng),為數(shù)據(jù)開(kāi)發(fā)者提供了快速、定制化的大數(shù)據(jù)查詢(xún)平臺(tái)。論文介紹了該查詢(xún)系統(tǒng)的組成結(jié)構(gòu)和其實(shí)現(xiàn)過(guò)程...
【文章來(lái)源】:北京郵電大學(xué)北京市 211工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:101 頁(yè)
【學(xué)位級(jí)別】:碩士
【部分圖文】:
圖2-1?HDFS架構(gòu)??本文面向互聯(lián)網(wǎng)用戶(hù)行為分析系統(tǒng)中的數(shù)據(jù)查詢(xún)子系統(tǒng),HDFS作為部分離??
迭代的算法[14]。Spark提供比Hadoop更多的更方便的編程模型,內(nèi)存環(huán)境下,??Spark比Hadoop快大約兩個(gè)數(shù)量級(jí)[5]。??Spark項(xiàng)目的結(jié)構(gòu)如圖2-2所示。Spark提供了一個(gè)彈性分布式數(shù)據(jù)集??(Resilient?Distributed?Datasets,?RDD)的抽象編程接口,是?Spark?的核心編程接??口。除此之外,Spark生態(tài)系統(tǒng)中還包括其他附加庫(kù),比如Spark?Streaming用于??處理實(shí)時(shí)流數(shù)據(jù),以及機(jī)器學(xué)習(xí)庫(kù)Spark?MLlib和圖計(jì)算Spark?GraphX。Spark??SQL是Spark的另外一個(gè)重要組成,主要負(fù)責(zé)HDFS中結(jié)構(gòu)化文件的處理。??□日日曰??f?N??Spark?Core??V?/??圖2-2?Spark項(xiàng)目架構(gòu)??2.?2?Spark中的SQL解析技術(shù)??2.2.1?Spark?SQL?概述??Spark?SQL是Spark中把函數(shù)式編程接口和關(guān)系型查詢(xún)結(jié)合起來(lái)的新的模??塊,從組成上來(lái)講,主要由Spark?SQL內(nèi)核、Catalyst優(yōu)化器、Hive支持3部??分組成[4],由最初的Shark演化而來(lái)[6]。Spark?SQL的編程接口如圖2-3所示。??Spark?SQL同時(shí)兼容HiveQL語(yǔ)法,可以訪(fǎng)問(wèn)己經(jīng)存在的Hive數(shù)據(jù)倉(cāng)庫(kù),還支??持和標(biāo)準(zhǔn)JDBC的集成
迭代的算法[14]。Spark提供比Hadoop更多的更方便的編程模型,內(nèi)存環(huán)境下,??Spark比Hadoop快大約兩個(gè)數(shù)量級(jí)[5]。??Spark項(xiàng)目的結(jié)構(gòu)如圖2-2所示。Spark提供了一個(gè)彈性分布式數(shù)據(jù)集??(Resilient?Distributed?Datasets,?RDD)的抽象編程接口,是?Spark?的核心編程接??口。除此之外,Spark生態(tài)系統(tǒng)中還包括其他附加庫(kù),比如Spark?Streaming用于??處理實(shí)時(shí)流數(shù)據(jù),以及機(jī)器學(xué)習(xí)庫(kù)Spark?MLlib和圖計(jì)算Spark?GraphX。Spark??SQL是Spark的另外一個(gè)重要組成,主要負(fù)責(zé)HDFS中結(jié)構(gòu)化文件的處理。??□日日曰??f?N??Spark?Core??V?/??圖2-2?Spark項(xiàng)目架構(gòu)??2.?2?Spark中的SQL解析技術(shù)??2.2.1?Spark?SQL?概述??Spark?SQL是Spark中把函數(shù)式編程接口和關(guān)系型查詢(xún)結(jié)合起來(lái)的新的模??塊,從組成上來(lái)講,主要由Spark?SQL內(nèi)核、Catalyst優(yōu)化器、Hive支持3部??分組成[4],由最初的Shark演化而來(lái)[6]。Spark?SQL的編程接口如圖2-3所示。??Spark?SQL同時(shí)兼容HiveQL語(yǔ)法,可以訪(fǎng)問(wèn)己經(jīng)存在的Hive數(shù)據(jù)倉(cāng)庫(kù),還支??持和標(biāo)準(zhǔn)JDBC的集成
【參考文獻(xiàn)】:
期刊論文
[1]Spark SQL優(yōu)化器系統(tǒng)Catalyst的深入解析和應(yīng)用[J]. 鄒學(xué)利. 決策咨詢(xún). 2018(03)
[2]基于ANTLR的Web應(yīng)用測(cè)試腳本自動(dòng)重構(gòu)方法[J]. 周輝,錢(qián)巨. 計(jì)算技術(shù)與自動(dòng)化. 2017(03)
[3]一種基于ANTLR的MongoDB數(shù)據(jù)庫(kù)SQL轉(zhuǎn)化模型[J]. 李常青,谷建華. 西北工業(yè)大學(xué)學(xué)報(bào). 2017(01)
[4]基于ANTLR的SQL語(yǔ)法分析策略與實(shí)現(xiàn)[J]. 王海燕,楊鶴標(biāo). 計(jì)算機(jī)應(yīng)用與軟件. 2013(11)
[5]一種領(lǐng)域特定語(yǔ)言的研究與實(shí)現(xiàn)[J]. 趙衛(wèi)東,劉永紅. 成都大學(xué)學(xué)報(bào)(自然科學(xué)版). 2013(02)
[6]基于ANTLR的TTCN-3編譯器的面向?qū)ο笤O(shè)計(jì)[J]. 徐玲,韋巍. 控制工程. 2012(S1)
[7]基于領(lǐng)域?qū)S谜Z(yǔ)言的應(yīng)用軟件自動(dòng)生成[J]. 周艷明. 計(jì)算機(jī)工程與應(yīng)用. 2003(10)
碩士論文
[1]基于抽象語(yǔ)法樹(shù)的SQL注入防御研究[D]. 王杰.武漢郵電科學(xué)研究院 2018
[2]基于Spark系統(tǒng)的查詢(xún)分析及優(yōu)化研究[D]. 張雷.北京交通大學(xué) 2016
[3]基于代價(jià)模型的Spark SQL查詢(xún)優(yōu)化研究[D]. 劉春雷.電子科技大學(xué) 2016
[4]SQL語(yǔ)言到自然語(yǔ)言自動(dòng)翻譯的研究[D]. 呂海熊.北京理工大學(xué) 2016
[5]面向數(shù)據(jù)庫(kù)安全的SQL語(yǔ)句解析與翻譯[D]. 宋健龍.北京理工大學(xué) 2015
[6]基于ANTLR的Gaussian詞法分析器和語(yǔ)法分析器的分析與設(shè)計(jì)[D]. 劉三獻(xiàn).蘭州大學(xué) 2009
本文編號(hào):3568958
【文章來(lái)源】:北京郵電大學(xué)北京市 211工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:101 頁(yè)
【學(xué)位級(jí)別】:碩士
【部分圖文】:
圖2-1?HDFS架構(gòu)??本文面向互聯(lián)網(wǎng)用戶(hù)行為分析系統(tǒng)中的數(shù)據(jù)查詢(xún)子系統(tǒng),HDFS作為部分離??
迭代的算法[14]。Spark提供比Hadoop更多的更方便的編程模型,內(nèi)存環(huán)境下,??Spark比Hadoop快大約兩個(gè)數(shù)量級(jí)[5]。??Spark項(xiàng)目的結(jié)構(gòu)如圖2-2所示。Spark提供了一個(gè)彈性分布式數(shù)據(jù)集??(Resilient?Distributed?Datasets,?RDD)的抽象編程接口,是?Spark?的核心編程接??口。除此之外,Spark生態(tài)系統(tǒng)中還包括其他附加庫(kù),比如Spark?Streaming用于??處理實(shí)時(shí)流數(shù)據(jù),以及機(jī)器學(xué)習(xí)庫(kù)Spark?MLlib和圖計(jì)算Spark?GraphX。Spark??SQL是Spark的另外一個(gè)重要組成,主要負(fù)責(zé)HDFS中結(jié)構(gòu)化文件的處理。??□日日曰??f?N??Spark?Core??V?/??圖2-2?Spark項(xiàng)目架構(gòu)??2.?2?Spark中的SQL解析技術(shù)??2.2.1?Spark?SQL?概述??Spark?SQL是Spark中把函數(shù)式編程接口和關(guān)系型查詢(xún)結(jié)合起來(lái)的新的模??塊,從組成上來(lái)講,主要由Spark?SQL內(nèi)核、Catalyst優(yōu)化器、Hive支持3部??分組成[4],由最初的Shark演化而來(lái)[6]。Spark?SQL的編程接口如圖2-3所示。??Spark?SQL同時(shí)兼容HiveQL語(yǔ)法,可以訪(fǎng)問(wèn)己經(jīng)存在的Hive數(shù)據(jù)倉(cāng)庫(kù),還支??持和標(biāo)準(zhǔn)JDBC的集成
迭代的算法[14]。Spark提供比Hadoop更多的更方便的編程模型,內(nèi)存環(huán)境下,??Spark比Hadoop快大約兩個(gè)數(shù)量級(jí)[5]。??Spark項(xiàng)目的結(jié)構(gòu)如圖2-2所示。Spark提供了一個(gè)彈性分布式數(shù)據(jù)集??(Resilient?Distributed?Datasets,?RDD)的抽象編程接口,是?Spark?的核心編程接??口。除此之外,Spark生態(tài)系統(tǒng)中還包括其他附加庫(kù),比如Spark?Streaming用于??處理實(shí)時(shí)流數(shù)據(jù),以及機(jī)器學(xué)習(xí)庫(kù)Spark?MLlib和圖計(jì)算Spark?GraphX。Spark??SQL是Spark的另外一個(gè)重要組成,主要負(fù)責(zé)HDFS中結(jié)構(gòu)化文件的處理。??□日日曰??f?N??Spark?Core??V?/??圖2-2?Spark項(xiàng)目架構(gòu)??2.?2?Spark中的SQL解析技術(shù)??2.2.1?Spark?SQL?概述??Spark?SQL是Spark中把函數(shù)式編程接口和關(guān)系型查詢(xún)結(jié)合起來(lái)的新的模??塊,從組成上來(lái)講,主要由Spark?SQL內(nèi)核、Catalyst優(yōu)化器、Hive支持3部??分組成[4],由最初的Shark演化而來(lái)[6]。Spark?SQL的編程接口如圖2-3所示。??Spark?SQL同時(shí)兼容HiveQL語(yǔ)法,可以訪(fǎng)問(wèn)己經(jīng)存在的Hive數(shù)據(jù)倉(cāng)庫(kù),還支??持和標(biāo)準(zhǔn)JDBC的集成
【參考文獻(xiàn)】:
期刊論文
[1]Spark SQL優(yōu)化器系統(tǒng)Catalyst的深入解析和應(yīng)用[J]. 鄒學(xué)利. 決策咨詢(xún). 2018(03)
[2]基于ANTLR的Web應(yīng)用測(cè)試腳本自動(dòng)重構(gòu)方法[J]. 周輝,錢(qián)巨. 計(jì)算技術(shù)與自動(dòng)化. 2017(03)
[3]一種基于ANTLR的MongoDB數(shù)據(jù)庫(kù)SQL轉(zhuǎn)化模型[J]. 李常青,谷建華. 西北工業(yè)大學(xué)學(xué)報(bào). 2017(01)
[4]基于ANTLR的SQL語(yǔ)法分析策略與實(shí)現(xiàn)[J]. 王海燕,楊鶴標(biāo). 計(jì)算機(jī)應(yīng)用與軟件. 2013(11)
[5]一種領(lǐng)域特定語(yǔ)言的研究與實(shí)現(xiàn)[J]. 趙衛(wèi)東,劉永紅. 成都大學(xué)學(xué)報(bào)(自然科學(xué)版). 2013(02)
[6]基于ANTLR的TTCN-3編譯器的面向?qū)ο笤O(shè)計(jì)[J]. 徐玲,韋巍. 控制工程. 2012(S1)
[7]基于領(lǐng)域?qū)S谜Z(yǔ)言的應(yīng)用軟件自動(dòng)生成[J]. 周艷明. 計(jì)算機(jī)工程與應(yīng)用. 2003(10)
碩士論文
[1]基于抽象語(yǔ)法樹(shù)的SQL注入防御研究[D]. 王杰.武漢郵電科學(xué)研究院 2018
[2]基于Spark系統(tǒng)的查詢(xún)分析及優(yōu)化研究[D]. 張雷.北京交通大學(xué) 2016
[3]基于代價(jià)模型的Spark SQL查詢(xún)優(yōu)化研究[D]. 劉春雷.電子科技大學(xué) 2016
[4]SQL語(yǔ)言到自然語(yǔ)言自動(dòng)翻譯的研究[D]. 呂海熊.北京理工大學(xué) 2016
[5]面向數(shù)據(jù)庫(kù)安全的SQL語(yǔ)句解析與翻譯[D]. 宋健龍.北京理工大學(xué) 2015
[6]基于ANTLR的Gaussian詞法分析器和語(yǔ)法分析器的分析與設(shè)計(jì)[D]. 劉三獻(xiàn).蘭州大學(xué) 2009
本文編號(hào):3568958
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3568958.html
最近更新
教材專(zhuān)著