本公開涉及大數(shù)據(jù),尤其涉及數(shù)據(jù)庫存儲(chǔ)函數(shù)生成方法、裝置、電子設(shè)備和程序產(chǎn)品。
背景技術(shù):
1、隨著大數(shù)據(jù)技術(shù)領(lǐng)域的快速發(fā)展,數(shù)據(jù)工程師在分析和處理數(shù)據(jù)集時(shí),通常要把用python(python編程語言)和pandas庫(pandas數(shù)據(jù)分析庫)編寫的數(shù)據(jù)分析程序轉(zhuǎn)化為適用于數(shù)據(jù)庫的數(shù)據(jù)庫存儲(chǔ)函數(shù)。這時(shí),數(shù)據(jù)工程師需要將python編寫的數(shù)據(jù)分析腳本轉(zhuǎn)化為數(shù)據(jù)庫存儲(chǔ)函數(shù)。
2、相關(guān)技術(shù)中,通常采用人工編碼的方式將python數(shù)據(jù)分析腳本轉(zhuǎn)換為數(shù)據(jù)庫存儲(chǔ)函數(shù)(structured?query?language,sql)。數(shù)據(jù)工程師需要在理解python數(shù)據(jù)分析腳本的代碼邏輯后,重新編寫相應(yīng)的sql。然而,人工編碼的方式不僅要求開發(fā)人員熟練掌握python和pandas庫,還需要了解特定數(shù)據(jù)庫的操作方式和sql特點(diǎn),這會(huì)耗費(fèi)數(shù)據(jù)工程師大量的時(shí)間和精力,導(dǎo)致數(shù)據(jù)庫存儲(chǔ)函數(shù)的轉(zhuǎn)換效率低下。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本公開示例性實(shí)施例提供了一種數(shù)據(jù)庫存儲(chǔ)函數(shù)生成方法、裝置、電子設(shè)備和程序產(chǎn)品,以解決相關(guān)技術(shù)中存在的問題。
2、本公開示例性實(shí)施例的第一方面,提供了一種數(shù)據(jù)庫存儲(chǔ)函數(shù)生成方法,該方法包括:
3、接收待處理的原始代碼,并獲取所述原始代碼對(duì)應(yīng)的語法結(jié)構(gòu)信息;
4、獲取用戶預(yù)先設(shè)置的屬性信息和數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板;所述屬性信息用于定義數(shù)據(jù)庫存儲(chǔ)函數(shù)的參數(shù)屬性值;
5、將所述數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板、所述屬性信息和所述原始代碼輸入數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模塊中,獲得多個(gè)數(shù)據(jù)庫存儲(chǔ)函數(shù)子結(jié)果;所述數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模塊包括代碼分類子模塊和數(shù)據(jù)庫存儲(chǔ)函數(shù)轉(zhuǎn)換子模塊,所述代碼分類子模塊基于代碼類型將所述原始代碼拆分成多個(gè)代碼塊;所述數(shù)據(jù)庫存儲(chǔ)函數(shù)轉(zhuǎn)換子模塊基于所述代碼類型和所述屬性信息調(diào)整所述數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板,并基于調(diào)整后的數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板將各代碼類型對(duì)應(yīng)的代碼塊分別轉(zhuǎn)換為對(duì)應(yīng)的數(shù)據(jù)庫存儲(chǔ)函數(shù)子結(jié)果;
6、基于所述語法結(jié)構(gòu)信息拼合所述多個(gè)數(shù)據(jù)庫存儲(chǔ)函數(shù)子結(jié)果,獲得目標(biāo)數(shù)據(jù)庫存儲(chǔ)函數(shù)。
7、本公開示例性實(shí)施例的第二方面,提供了一種數(shù)據(jù)庫存儲(chǔ)函數(shù)生成裝置,該裝置包括:
8、數(shù)據(jù)獲取模塊,用于接收待處理的原始代碼,并獲取所述原始代碼對(duì)應(yīng)的語法結(jié)構(gòu)信息;
9、數(shù)據(jù)處理模塊,用于獲取用戶預(yù)先設(shè)置的屬性信息和數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板;所述屬性信息用于定義數(shù)據(jù)庫存儲(chǔ)函數(shù)的參數(shù)屬性值;
10、所述數(shù)據(jù)處理模塊,還用于將所述數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板、所述屬性信息和所述原始代碼輸入數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模塊中,獲得多個(gè)數(shù)據(jù)庫存儲(chǔ)函數(shù)子結(jié)果;所述數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模塊包括代碼分類子模塊和數(shù)據(jù)庫存儲(chǔ)函數(shù)轉(zhuǎn)換子模塊,所述代碼分類子模塊基于代碼類型將所述原始代碼拆分成多個(gè)代碼塊;所述數(shù)據(jù)庫存儲(chǔ)函數(shù)轉(zhuǎn)換子模塊基于所述代碼類型和所述屬性信息調(diào)整所述數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板,并基于調(diào)整后的數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板將各代碼類型對(duì)應(yīng)的代碼塊分別轉(zhuǎn)換為對(duì)應(yīng)的數(shù)據(jù)庫存儲(chǔ)函數(shù)子結(jié)果;
11、所述數(shù)據(jù)處理模塊,還用于基于所述語法結(jié)構(gòu)信息拼合所述多個(gè)數(shù)據(jù)庫存儲(chǔ)函數(shù)子結(jié)果,獲得目標(biāo)數(shù)據(jù)庫存儲(chǔ)函數(shù)。
12、本公開示例性實(shí)施例的第三方面,提供了一種電子設(shè)備,包括:
13、至少一個(gè)處理器;
14、用于存儲(chǔ)至少一個(gè)處理器可執(zhí)行指令的存儲(chǔ)器;其中,至少一個(gè)處理器用于執(zhí)行指令,以實(shí)現(xiàn)上述方法的步驟。
15、根據(jù)本公開的第四方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)本公開示例性實(shí)施例所述的方法。
16、本公開示例性實(shí)施例采用的上述至少一個(gè)技術(shù)方案能夠達(dá)到以下有益效果:接收待處理的原始代碼,并獲取原始代碼對(duì)應(yīng)的語法結(jié)構(gòu)信息。然后,獲取用戶預(yù)先設(shè)置的屬性信息和數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板,其中,屬性信息用于定義數(shù)據(jù)庫存儲(chǔ)函數(shù)的參數(shù)屬性值。進(jìn)而,將數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板、屬性信息和原始代碼輸入數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模塊中,獲得多個(gè)數(shù)據(jù)庫存儲(chǔ)函數(shù)子結(jié)果。其中,數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模塊包括代碼分類子模塊和數(shù)據(jù)庫存儲(chǔ)函數(shù)轉(zhuǎn)換子模塊,代碼分類子模塊基于代碼類型將原始代碼拆分成多個(gè)代碼塊。數(shù)據(jù)庫存儲(chǔ)函數(shù)轉(zhuǎn)換子模塊基于代碼類型和屬性信息調(diào)整數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板,并基于調(diào)整后的數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板將各代碼類型對(duì)應(yīng)的代碼塊分別轉(zhuǎn)換為對(duì)應(yīng)的數(shù)據(jù)庫存儲(chǔ)函數(shù)子結(jié)果。最后,基于語法結(jié)構(gòu)信息拼合多個(gè)數(shù)據(jù)庫存儲(chǔ)函數(shù)子結(jié)果,獲得目標(biāo)數(shù)據(jù)庫存儲(chǔ)函數(shù)。其中,根據(jù)代碼類型和屬性信息調(diào)整數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板,使得調(diào)整后的數(shù)據(jù)庫存儲(chǔ)函數(shù)生成模板可以適應(yīng)不同的業(yè)務(wù)需求和數(shù)據(jù)庫類型。使用代碼分類子模塊將原始代碼拆分成多個(gè)代碼塊,并根據(jù)代碼類型和屬性信息進(jìn)行相應(yīng)的數(shù)據(jù)庫存儲(chǔ)函數(shù)轉(zhuǎn)換,使得上述方法能夠自動(dòng)化生成多種代碼類型對(duì)應(yīng)的數(shù)據(jù)庫存儲(chǔ)函數(shù),從而降低數(shù)據(jù)庫存儲(chǔ)函數(shù)轉(zhuǎn)換過程中的人力成本,并提高數(shù)據(jù)庫存儲(chǔ)函數(shù)的轉(zhuǎn)換效率。
1.一種數(shù)據(jù)庫存儲(chǔ)函數(shù)生成方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于代碼類型將所述原始代碼拆分成多個(gè)代碼塊,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述代碼類型包括數(shù)據(jù)加載代碼;所述方法還包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述代碼類型包括數(shù)據(jù)操作代碼;所述方法還包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述代碼類型包括用戶自定義函數(shù)代碼;所述方法還包括:
8.一種數(shù)據(jù)庫存儲(chǔ)函數(shù)生成裝置,其特征在于,所述裝置包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1-7中任一項(xiàng)所述的方法。