本申請涉及大數(shù)據(jù),尤其涉及一種sql語句的處理方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、在flinksql(flink(一個高性能的分布式集群數(shù)據(jù)處理引擎)的一部分,它提供了一個sql(structured?query?language,結(jié)構(gòu)化查詢語言)接口,允許開發(fā)者使用標(biāo)準(zhǔn)的sql語言來編寫流處理和批處理應(yīng)用)中,用于建表的sql語句支持通過with關(guān)鍵字以key-value(鍵值對)格式來指定表屬性,這些表屬性通常用于查找和創(chuàng)建底層連接器。
2、相關(guān)技術(shù)中,用于建表的sql語句是由sql開發(fā)者人工編寫的,sql開發(fā)者需要在sql語句中指定大量的表屬性(如存儲路徑、預(yù)合并字段、同步模式、表類型、是否允許數(shù)據(jù)的重復(fù)插入以及是否禁用索引引導(dǎo)功能、異步聚類功能、元數(shù)據(jù)功能、異步壓縮功能等),導(dǎo)致sql語句的編寫效率較低。
技術(shù)實現(xiàn)思路
1、本申請的目的旨在至少在一定程度上解決上述技術(shù)問題之一。
2、為此,本申請?zhí)岢隽艘环Nsql語句的處理方法、裝置、設(shè)備及介質(zhì),以實現(xiàn)提高sql開發(fā)者的開發(fā)效率(即提升sql語句的編寫效率),降低技術(shù)和使用門檻。
3、本申請第一方面實施例提出了一種sql語句的處理方法,包括:
4、獲取初始sql語句的語句類型,響應(yīng)于所述語句類型為建表類型,從所述初始sql語句中獲取指定關(guān)鍵字中的表屬性列表;
5、基于所述表屬性列表中的表屬性對,確定數(shù)據(jù)源類型;其中,所述數(shù)據(jù)源類型用于指示所述初始sql語句待創(chuàng)建的數(shù)據(jù)表的數(shù)據(jù)存儲和訪問方式;所述表屬性對包括表屬性鍵和對應(yīng)的表屬性值;
6、基于與所述數(shù)據(jù)源類型關(guān)聯(lián)的表屬性生成規(guī)則,生成所述表屬性列表中缺失的目標(biāo)表屬性對;
7、基于所述目標(biāo)表屬性對,對所述初始sql語句進行更新,得到目標(biāo)sql語句,以根據(jù)所述目標(biāo)sql語句創(chuàng)建所述數(shù)據(jù)表。
8、本申請第二方面實施例提出了一種sql語句的處理裝置,包括:
9、獲取模塊,用于獲取初始sql語句的語句類型,響應(yīng)于所述語句類型為建表類型,從所述初始sql語句中獲取指定關(guān)鍵字中的表屬性列表;
10、確定模塊,用于基于所述表屬性列表中的表屬性對,確定數(shù)據(jù)源類型;其中,所述數(shù)據(jù)源類型用于指示所述初始sql語句待創(chuàng)建的數(shù)據(jù)表的數(shù)據(jù)存儲和訪問方式;所述表屬性對包括表屬性鍵和對應(yīng)的表屬性值;
11、第一生成模塊,用于基于與所述數(shù)據(jù)源類型關(guān)聯(lián)的表屬性生成規(guī)則,生成所述表屬性列表中缺失的目標(biāo)表屬性對;
12、更新模塊,用于基于所述目標(biāo)表屬性對,對所述初始sql語句進行更新,得到目標(biāo)sql語句,以根據(jù)所述目標(biāo)sql語句創(chuàng)建所述數(shù)據(jù)表。
13、本申請第三方面實施例提出了一種電子設(shè)備,包括:存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)如第一方面所述的sql語句的處理方法。
14、本申請第四方面實施例提出了一種非臨時性計算機可讀存儲介質(zhì),其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)如第一方面所述的sql語句的處理方法。
15、本申請第五方面實施例提出了一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序在被處理器執(zhí)行時實現(xiàn)本申請上述第一方面所述的sql語句的處理方法。
16、本申請的實施例提供的技術(shù)方案至少帶來以下有益效果:
17、sql開發(fā)者在編寫用于建表的sql語句時,只需要填寫部分核心或必填的表屬性,其他業(yè)務(wù)相關(guān)的表屬性可基于與sql語句中的數(shù)據(jù)源類型關(guān)聯(lián)的表屬性生成規(guī)則來自動生成并填充,提高sql開發(fā)者的開發(fā)效率(即提升sql語句的編寫效率),降低技術(shù)和使用門檻。
18、本申請附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本申請的實踐了解到。
1.一種結(jié)構(gòu)化查詢語言sql語句的處理方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于與所述數(shù)據(jù)源類型關(guān)聯(lián)的表屬性生成規(guī)則,生成所述表屬性列表中缺失的目標(biāo)表屬性對,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在所述數(shù)據(jù)源類型存在關(guān)聯(lián)的必填表屬性鍵的情況下,判斷各所述表屬性對中的表屬性鍵中是否包含所有的所述必填表屬性鍵,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述若各所述表屬性鍵中包含所有必填表屬性鍵,則查詢與所述數(shù)據(jù)源類型關(guān)聯(lián)的表屬性生成規(guī)則,包括:
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于與所述數(shù)據(jù)源類型關(guān)聯(lián)的表屬性生成規(guī)則,生成所述表屬性列表中缺失的目標(biāo)表屬性對,包括:
7.根據(jù)權(quán)利要求1-6中任一項所述的方法,其特征在于,所述基于所述目標(biāo)表屬性對,對所述初始sql語句進行更新,得到目標(biāo)sql語句,包括:
8.一種sql語句的處理裝置,其特征在于,包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種非臨時性計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,該程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1-7中任一項所述的sql語句的處理方法。