本發(fā)明涉及一種數(shù)據(jù)可視化查詢的方法,具體為基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,屬于數(shù)據(jù)處理。
背景技術(shù):
::1、數(shù)據(jù)可視化查詢是指使用圖形、圖像和其他視覺元素將數(shù)據(jù)呈現(xiàn)出來的過程,以便用戶能夠更直觀、更有效地理解和分析數(shù)據(jù)。數(shù)據(jù)可視化查詢可以幫助用戶發(fā)現(xiàn)數(shù)據(jù)中的模式、趨勢和關(guān)聯(lián),從而做出更準確的決策;2、數(shù)據(jù)可視化查詢的工具和平臺有很多,例如tableau、power?bi、google?charts等。這些工具和平臺提供了各種可視化圖表和儀表板,如柱狀圖、折線圖、餅圖、地圖、熱力圖等,以滿足不同數(shù)據(jù)分析和展示需求。3、dsl是“數(shù)字用戶線路”(digital?subscriber?line)的縮寫,它是一種用于電話接入因特網(wǎng)的技術(shù)。dsl通過電話線提供高速的上網(wǎng)服務(wù),它將語音信號和數(shù)據(jù)信號進行分離,使得用戶可以在上網(wǎng)的同時使用電話。4、sql是“結(jié)構(gòu)化查詢語言”(structured?query?language)的縮寫,它是一種用于管理和操作關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標準編程語言。sql用于執(zhí)行各種操作,如查詢、更新、插入和刪除數(shù)據(jù)庫中的數(shù)據(jù)。5、cte是“公共表達式”(common?table?expression)的縮寫,是一個數(shù)據(jù)庫查詢的子句,用于在sql查詢中創(chuàng)建一個臨時的、只在此查詢中可見的命名空間,以便在此命名空間中執(zhí)行一系列的查詢操作,而不會影響到外部的命名空間。6、傳統(tǒng)基于sql模板的方法生成數(shù)據(jù)可視化查詢的sql,其基于特定的數(shù)據(jù)庫/olap引擎,既無法靈活應(yīng)對可視化編輯數(shù)據(jù)和可視化分析的需求,也無法兼容非標的數(shù)據(jù)庫/olap引擎,且可視化查詢sql冗長低效,sql調(diào)試困難,可解釋性不足,當(dāng)數(shù)據(jù)不符合預(yù)期時,無法快速定位/調(diào)試導(dǎo)致不準確的片段,為此,提出一種基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法。技術(shù)實現(xiàn)思路1、有鑒于此,本發(fā)明提供一種基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,以解決或緩解現(xiàn)有技術(shù)中存在的技術(shù)問題,至少提供有益的選擇。2、本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的:一種基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,包括以下步驟:3、s1、構(gòu)建人機交互界面-供用戶選定圖表類型及圖表對應(yīng)的數(shù)據(jù),并生成圖表對應(yīng)的dsl;4、s2、定義語義層-將dsl解析為相應(yīng)的dsl語法片段;5、s3、抽象語法樹節(jié)點轉(zhuǎn)換;6、s4、將抽象語法樹節(jié)點構(gòu)建為抽象語法樹;7、s5、查詢優(yōu)化-利用查詢優(yōu)化器對抽象語法樹進行查詢優(yōu)化;8、s6、抽象語法樹轉(zhuǎn)化-語義層通過方言翻譯機制及邏輯編譯器將抽象語法樹轉(zhuǎn)化為數(shù)據(jù)庫/olap引擎可解釋、可執(zhí)行的sql;9、s7、sql提交并執(zhí)行-將sql提交至對應(yīng)的數(shù)據(jù)庫/olap引擎執(zhí)行,獲取構(gòu)建可視化分析圖表的數(shù)據(jù)。10、進一步優(yōu)選的,所述s1中,圖表對應(yīng)的數(shù)據(jù)包括對應(yīng)維度、度量、比對的字段及計算方式;11、其中,維度為x軸,表示分類;度量為y軸,表示聚合。12、進一步優(yōu)選的,所述s2中,用戶提交圖表的dsl后,由語義層將dsl解析為相應(yīng)的dsl片段。13、進一步優(yōu)選的,所述s3中,利用映射規(guī)則將dsl片段轉(zhuǎn)換為抽象語法樹節(jié)點;14、其中,映射規(guī)則為:維度按照dsl聲明的轉(zhuǎn)換方法作為group?by子句,并作為select?item;度量按照dsl聲明的聚合方法,作為aggregation子句。15、進一步優(yōu)選的,所述s4中,按照代數(shù)關(guān)系將抽象語法樹節(jié)點構(gòu)建為抽象語法樹。16、進一步優(yōu)選的,所述s5中,查詢優(yōu)化包括但不限于投影裁剪、謂詞裁剪、恒條件剔除和常數(shù)轉(zhuǎn)換;17、其中,投影裁剪中,查詢優(yōu)化器會在語義的境況下,將冗余的列投影進行裁剪;18、其中,謂詞裁剪中,限制性謂詞存在user_id>=1and?user_id>=2,因而,可將限制性謂詞裁剪為user_id>=2;19、其中,恒條件剔除中,限制性謂詞存在user_id=user_id,限制性謂詞恒成立,因此,這種限制性恒條件可被完整裁剪;20、其中,常數(shù)轉(zhuǎn)換中,限制性謂詞存在user_id=10and?order_pay_total>=user_id,因為存在user_id=10的限制,order_pay_total>=user_id將被替換為order_pay_total>=10。21、進一步優(yōu)選的,所述s6中,sql通過方言翻譯以后,通用的sql抽象語法樹會被轉(zhuǎn)換為特定的抽象語法樹。22、進一步優(yōu)選的,所述s6中,邏輯編譯器采用cte的特性進行sql構(gòu)建,邏輯編譯器在抽象語法樹上運行,按照不同的數(shù)據(jù)庫/olap引擎的sql語法,將抽象語法書轉(zhuǎn)換為可解釋、可執(zhí)行的sql。23、進一步優(yōu)選的,所述s7中,通過利用數(shù)據(jù)可視化系統(tǒng)將獲得的sql提交至對應(yīng)的數(shù)據(jù)庫/olap引擎,并進行執(zhí)行,獲得構(gòu)建可視化分析圖表的數(shù)據(jù)。24、本發(fā)明實施例由于采用以上技術(shù)方案,其具有以下優(yōu)點:25、一、本發(fā)明基于dsl及抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢sql,通過定制dsl、dsl與sql抽象語法樹節(jié)點的模式轉(zhuǎn)換規(guī)則,從而實現(xiàn)數(shù)據(jù)可視化的查詢構(gòu)建,通過基于dsl及抽象語法樹實現(xiàn),相較傳統(tǒng)方法更加靈活高效,生成的sql擁有更強的可解釋性,對數(shù)據(jù)庫/olap引擎的支持更寬泛。26、二、本發(fā)明的邏輯翻編譯器采用cte特性進行sql構(gòu)建,構(gòu)建產(chǎn)生的sql符合數(shù)據(jù)建模、數(shù)據(jù)分析的邏輯流程,具備良好的可解釋性及可檢查性。27、上述概述僅僅是為了說明書的目的,并不意圖以任何方式進行限制。除上述描述的示意性的方面、實施方式和特征之外,通過參考附圖和以下的詳細描述,本發(fā)明進一步的方面、實施方式和特征將會是容易明白的。技術(shù)特征:1.一種基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,其特征在于,包括以下步驟:2.根據(jù)權(quán)利要求1所述的基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,其特征在于:所述s1中,圖表對應(yīng)的數(shù)據(jù)包括對應(yīng)維度、度量、比對的字段及計算方式;3.根據(jù)權(quán)利要求1所述的基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,其特征在于:所述s2中,用戶提交圖表的dsl后,由語義層將dsl解析為相應(yīng)的dsl片段。4.根據(jù)權(quán)利要求3所述的基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,其特征在于:所述s3中,利用映射規(guī)則將dsl片段轉(zhuǎn)換為抽象語法樹節(jié)點;5.根據(jù)權(quán)利要求4所述的基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,其特征在于:所述s4中,按照代數(shù)關(guān)系將抽象語法樹節(jié)點構(gòu)建為抽象語法樹。6.根據(jù)權(quán)利要求1所述的基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,其特征在于:所述s5中,查詢優(yōu)化包括但不限于投影裁剪、謂詞裁剪、恒條件剔除和常數(shù)轉(zhuǎn)換。7.根據(jù)權(quán)利要求1所述的基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,其特征在于:所述s6中,sql通過方言翻譯以后,通用的sql抽象語法樹會被轉(zhuǎn)換為特定的抽象語法樹。8.根據(jù)權(quán)利要求7所述的基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,其特征在于:所述s6中,邏輯編譯器采用cte的特性進行sql構(gòu)建,邏輯編譯器在抽象語法樹上運行,按照不同的數(shù)據(jù)庫/olap引擎的sql語法,將抽象語法書轉(zhuǎn)換為可解釋、可執(zhí)行的sql。9.根據(jù)權(quán)利要求1所述的基于dsl與sql抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,其特征在于:所述s7中,通過利用數(shù)據(jù)可視化系統(tǒng)將獲得的sql提交至對應(yīng)的數(shù)據(jù)庫/olap引擎,并進行執(zhí)行,獲得構(gòu)建可視化分析圖表的數(shù)據(jù)。技術(shù)總結(jié)本發(fā)明提供了一種基于DSL與SQL抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢的方法,包括以下步驟:S1、構(gòu)建人機交互界面?供用戶選定圖表類型及圖表對應(yīng)的數(shù)據(jù),并生成圖表對應(yīng)的DSL;S2、定義語義層?將DSL解析為相應(yīng)的DSL語法片段;S3、抽象語法樹節(jié)點轉(zhuǎn)換;S4、將抽象語法樹節(jié)點構(gòu)建為抽象語法樹;S5、查詢優(yōu)化?利用查詢優(yōu)化器對抽象語法樹進行查詢優(yōu)化;本發(fā)明基于DSL及抽象語法樹構(gòu)建數(shù)據(jù)可視化查詢SQL,通過定制DSL、DSL與SQL抽象語法樹節(jié)點的模式轉(zhuǎn)換規(guī)則,從而實現(xiàn)數(shù)據(jù)可視化的查詢構(gòu)建,通過基于DSL及抽象語法樹實現(xiàn),相較傳統(tǒng)方法更加靈活高效,生成的SQL擁有更強的可解釋性,對數(shù)據(jù)庫/OLAP引擎的支持更寬泛。技術(shù)研發(fā)人員:于志杰受保護的技術(shù)使用者:北京白龍馬云行科技有限公司技術(shù)研發(fā)日:技術(shù)公布日:2024/12/19