[發(fā)明專利]基于數(shù)據(jù)庫(kù)的重復(fù)關(guān)聯(lián)檢測(cè)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)有效
| 申請(qǐng)?zhí)枺?/td> | 201910967690.0 | 申請(qǐng)日: | 2019-10-12 |
| 公開(公告)號(hào): | CN110909016B | 公開(公告)日: | 2023-06-16 |
| 發(fā)明(設(shè)計(jì))人: | 林堋鑫 | 申請(qǐng)(專利權(quán))人: | 中國(guó)平安財(cái)產(chǎn)保險(xiǎn)股份有限公司 |
| 主分類號(hào): | G06F16/242 | 分類號(hào): | G06F16/242;G06F16/2455 |
| 代理公司: | 北京市京大律師事務(wù)所 11321 | 代理人: | 謝文強(qiáng) |
| 地址: | 518048 廣東省深圳市福田區(qū)益田路*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 數(shù)據(jù)庫(kù) 重復(fù) 關(guān)聯(lián) 檢測(cè) 方法 裝置 設(shè)備 存儲(chǔ) 介質(zhì) | ||
本發(fā)明涉及大數(shù)據(jù)技術(shù)領(lǐng)域,公開了基于數(shù)據(jù)庫(kù)的重復(fù)關(guān)聯(lián)檢測(cè)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),用于通過(guò)對(duì)結(jié)構(gòu)化查詢語(yǔ)言SQL腳本中的語(yǔ)句進(jìn)行拆分,統(tǒng)計(jì)SQL中重復(fù)關(guān)聯(lián)的源表,提高了檢測(cè)效率。本發(fā)明方法包括:搜索數(shù)據(jù)庫(kù)的代碼庫(kù),代碼庫(kù)中包括所有結(jié)構(gòu)化查詢語(yǔ)言SQL腳本;對(duì)每個(gè)SQL腳本進(jìn)行解析,得到多個(gè)SQL段落;對(duì)多個(gè)SQL段落進(jìn)行預(yù)處理,生成多個(gè)處理后的SQL語(yǔ)句;將多個(gè)處理后的SQL語(yǔ)句輸入到預(yù)置軟件中進(jìn)行分析,生成至少一對(duì)兩兩關(guān)聯(lián)的源表表名;根據(jù)至少一對(duì)兩兩關(guān)聯(lián)的源表表名對(duì)數(shù)據(jù)庫(kù)的腳本目錄進(jìn)行標(biāo)注,生成標(biāo)注后的腳本目錄;根據(jù)標(biāo)注后的腳本目錄在所有預(yù)置的SQL腳本中對(duì)兩兩關(guān)聯(lián)的源表表名進(jìn)行重復(fù)關(guān)聯(lián)檢測(cè),并得到檢測(cè)結(jié)果。
技術(shù)領(lǐng)域
本發(fā)明涉及大數(shù)據(jù)技術(shù)領(lǐng)域,尤其涉及基于數(shù)據(jù)庫(kù)的重復(fù)關(guān)聯(lián)檢測(cè)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù)
隨著互聯(lián)網(wǎng)的快速發(fā)展,計(jì)算機(jī)設(shè)備處理的數(shù)據(jù)越來(lái)越多,數(shù)據(jù)庫(kù)得到廣泛應(yīng)用。在數(shù)據(jù)庫(kù)系統(tǒng)中,經(jīng)常需要進(jìn)行多維數(shù)據(jù)分析,而數(shù)據(jù)來(lái)源往往是關(guān)系型數(shù)據(jù)庫(kù)中的多個(gè)表,所以經(jīng)常要進(jìn)行多表關(guān)聯(lián),而結(jié)構(gòu)化查詢語(yǔ)言(structured?query?language,SQL)中的多表連接(join)是一種比較消耗資源的操作,因?yàn)樵摬僮魃婕暗骄W(wǎng)絡(luò)輸入(Input)/輸出(Output)及全表掃描。
由于在大型的數(shù)據(jù)庫(kù)系統(tǒng)中,不同的數(shù)據(jù)處理腳本往往由不同的開發(fā)人員開發(fā),開發(fā)出來(lái)的大量腳本中,可能存在一些重復(fù)進(jìn)行的多表關(guān)聯(lián)的SQL語(yǔ)句。因此,對(duì)于常用的一些表,需要進(jìn)行提前關(guān)聯(lián),然后讓后續(xù)的SQL腳本都使用已關(guān)聯(lián)好的中間表,以減少資源的重復(fù)消耗。
傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)中間寬表的創(chuàng)建,一般需要數(shù)據(jù)分析人員根據(jù)個(gè)人經(jīng)驗(yàn),或者對(duì)已有的大量的SQL腳本進(jìn)行人工的統(tǒng)計(jì)檢測(cè),找出哪些表是可以重復(fù)關(guān)聯(lián)的,這樣的人工分析統(tǒng)計(jì),在腳本比較多的情況下,檢測(cè)效率低且花費(fèi)的時(shí)間較長(zhǎng),而且還可能遺漏部分腳本。
發(fā)明內(nèi)容
本發(fā)明提供了基于數(shù)據(jù)庫(kù)的重復(fù)關(guān)聯(lián)檢測(cè)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),用于通過(guò)對(duì)結(jié)構(gòu)化查詢語(yǔ)言SQL腳本中的SQL語(yǔ)句進(jìn)行拆分,統(tǒng)計(jì)SQL中重復(fù)關(guān)聯(lián)的源表,提高了檢測(cè)效率。
本發(fā)明實(shí)施例的第一方面提供一種基于數(shù)據(jù)庫(kù)的重復(fù)關(guān)聯(lián)檢測(cè)方法,包括:搜索數(shù)據(jù)庫(kù)的代碼庫(kù),所述代碼庫(kù)中包括所有結(jié)構(gòu)化查詢語(yǔ)言SQL腳本;對(duì)每個(gè)SQL腳本進(jìn)行解析,得到多個(gè)SQL段落,每個(gè)SQL腳本包含至少一個(gè)SQL段落;對(duì)所述多個(gè)SQL段落進(jìn)行預(yù)處理,生成多個(gè)處理后的SQL語(yǔ)句,每個(gè)SQL段落包含至少一個(gè)SQL語(yǔ)句;將所述多個(gè)處理后的SQL語(yǔ)句輸入到預(yù)置軟件中進(jìn)行分析,生成至少一對(duì)兩兩關(guān)聯(lián)的源表表名;根據(jù)所述至少一對(duì)兩兩關(guān)聯(lián)的源表表名對(duì)所述數(shù)據(jù)庫(kù)的腳本目錄進(jìn)行標(biāo)注,生成標(biāo)注后的腳本目錄;根據(jù)所述標(biāo)注后的腳本目錄在所有預(yù)置的SQL腳本中對(duì)所述兩兩關(guān)聯(lián)的源表表名進(jìn)行重復(fù)關(guān)聯(lián)檢測(cè),并得到檢測(cè)結(jié)果。
可選的,在本發(fā)明實(shí)施例第一方面的第一種實(shí)現(xiàn)方式中,所述對(duì)每個(gè)SQL腳本進(jìn)行解析,得到多個(gè)SQL段落,每個(gè)SQL腳本包含至少一個(gè)SQL段落包括:確定目標(biāo)SQL腳本;根據(jù)預(yù)置行數(shù)在所述目標(biāo)SQL腳本中查詢多個(gè)預(yù)置SQL關(guān)鍵字,所述預(yù)置行數(shù)用于指示所述目標(biāo)SQL腳本中需要進(jìn)行檢索的代碼行數(shù);當(dāng)所述預(yù)置行數(shù)中包含所述預(yù)置SQL關(guān)鍵字時(shí),生成多個(gè)SQL段落,每個(gè)SQL段落至少包括一個(gè)預(yù)置SQL關(guān)鍵字。
可選的,在本發(fā)明實(shí)施例第一方面的第二種實(shí)現(xiàn)方式中,所述對(duì)所述多個(gè)SQL段落進(jìn)行預(yù)處理,生成多個(gè)處理后的SQL語(yǔ)句,每個(gè)SQL段落包含至少一個(gè)SQL語(yǔ)句包括:確定多個(gè)SQL段落中每個(gè)SQL段落的SQL關(guān)鍵字部分和非SQL關(guān)鍵字部分;確定每個(gè)SQL段落中對(duì)應(yīng)的多個(gè)待選擇分號(hào);在所述對(duì)應(yīng)的多個(gè)待選擇分號(hào)中剔除非法分號(hào),所述非法分號(hào)為對(duì)應(yīng)的SQL腳本中非SQL關(guān)鍵字部分中的分號(hào),得到每個(gè)SQL段落對(duì)應(yīng)的多個(gè)目標(biāo)分號(hào);按照所述每個(gè)SQL段落對(duì)應(yīng)的多個(gè)目標(biāo)分號(hào)將對(duì)應(yīng)的SQL段落進(jìn)行分割,生成多個(gè)處理后的SQL語(yǔ)句,所述多個(gè)處理后的SQL語(yǔ)句包括每個(gè)SQL段落的處理后的SQL語(yǔ)句。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國(guó)平安財(cái)產(chǎn)保險(xiǎn)股份有限公司,未經(jīng)中國(guó)平安財(cái)產(chǎn)保險(xiǎn)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910967690.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)管理系統(tǒng)及數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)構(gòu)筑裝置、數(shù)據(jù)庫(kù)檢索裝置、數(shù)據(jù)庫(kù)裝置、數(shù)據(jù)庫(kù)構(gòu)筑方法、以及數(shù)據(jù)庫(kù)檢索方法
- 數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)處理方法
- 數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)更新方法、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)更新程序
- 容器數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)同步方法及數(shù)據(jù)庫(kù)
- 一種MongoDB數(shù)據(jù)庫(kù)對(duì)象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫(kù)語(yǔ)句執(zhí)行方法及裝置
- 關(guān)聯(lián)裝置
- 數(shù)據(jù)關(guān)聯(lián)裝置和數(shù)據(jù)關(guān)聯(lián)方法
- 安全關(guān)聯(lián)
- 設(shè)備關(guān)聯(lián)
- 終端關(guān)聯(lián)裝置和終端關(guān)聯(lián)方法
- 關(guān)聯(lián)方法和關(guān)聯(lián)設(shè)備
- 關(guān)聯(lián)方法和關(guān)聯(lián)設(shè)備
- 關(guān)聯(lián)方法和關(guān)聯(lián)設(shè)備
- 關(guān)聯(lián)分析方法和關(guān)聯(lián)分析系統(tǒng)
- 報(bào)文關(guān)聯(lián)方法、報(bào)文關(guān)聯(lián)裝置及報(bào)文關(guān)聯(lián)系統(tǒng)





