[發(fā)明專利]一種對(duì)DB2數(shù)據(jù)庫(kù)建表日志列名解析的方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 202110109747.0 | 申請(qǐng)日: | 2021-01-27 |
| 公開(公告)號(hào): | CN112765180B | 公開(公告)日: | 2023-01-17 |
| 發(fā)明(設(shè)計(jì))人: | 藍(lán)炳雄;高志會(huì);胡軍擎;江俊 | 申請(qǐng)(專利權(quán))人: | 上海英方軟件股份有限公司 |
| 主分類號(hào): | G06F16/22 | 分類號(hào): | G06F16/22;G06F16/242 |
| 代理公司: | 上海國(guó)智知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 31274 | 代理人: | 潘建玲 |
| 地址: | 200011 上海市黃*** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 db2 數(shù)據(jù)庫(kù) 日志 解析 方法 裝置 | ||
本發(fā)明公開了一種對(duì)DB2數(shù)據(jù)庫(kù)建表日志列名解析的方法及裝置,該方法包括:步驟S1,在解析建表日志時(shí),對(duì)原始SQL日志進(jìn)行解析,從SQL語(yǔ)句中分離出表名和schema名,并存入用于表示表基本信息的一解析結(jié)構(gòu)體中;步驟S2,對(duì)初始化表的日志,從中獲取表ID、表空間ID以及表的各列屬性信息,存入解析結(jié)構(gòu)體中,并構(gòu)建一個(gè)任務(wù)結(jié)構(gòu)體,于任務(wù)結(jié)構(gòu)體設(shè)置一個(gè)建表操作的標(biāo)志數(shù),將獲取到的表ID、表空間ID存任務(wù)結(jié)構(gòu)體中;步驟S3,按照任務(wù)隊(duì)列的順序讀取任務(wù)結(jié)構(gòu)體,根據(jù)所述任務(wù)結(jié)構(gòu)體、解析結(jié)構(gòu)體及數(shù)據(jù)庫(kù)系統(tǒng)表獲取表名、schema名、列名、列屬性信息拼裝成JSON格式的SQL操作基本信息發(fā)送到KAFKA。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)備份容災(zāi)技術(shù)領(lǐng)域,特別是涉及一種對(duì)DB2數(shù)據(jù)庫(kù)建表日志列名解析的方法及裝置。
背景技術(shù)
DB2為IBM開發(fā)的一種大型關(guān)系型數(shù)據(jù)庫(kù)平臺(tái),它支持多用戶或應(yīng)用程序在同一條SQL語(yǔ)句中查詢不同database甚至不同DBMS中的數(shù)據(jù),是目前使用最廣泛的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)之一。
目前,DB2數(shù)據(jù)庫(kù)在解析Create Table(建表)日志時(shí)會(huì)依次產(chǎn)生三種類型的日志數(shù)據(jù):一種是Component identifier為11、Function identifier為4的原始SQL日志記錄,需要設(shè)置數(shù)據(jù)庫(kù)屬性LOG_DDL_STMTS為YES;一種是Component identifier為4、Functionidentifier為101的建表日志記錄;還有一種是Component identifier為1、Functionidentifier為128的初始化表的日志記錄,要求在建表或修改表時(shí)聲明data capturechanges屬性,其中,原始SQL日志記錄包括輸入SQL的原文,建表日志的數(shù)據(jù)均為數(shù)據(jù)庫(kù)內(nèi)部使用,初始化表日志中主要包含表的列屬性與列的個(gè)數(shù)等。
在實(shí)時(shí)解析Create Table(建表)操作時(shí),需獲取到表名與表結(jié)構(gòu),其中表結(jié)構(gòu)主要包括列名與列屬性,可以從原始SQL日志記錄分析中獲取表名、在初始化表日志中可獲取到列屬性但沒有列名,而在解析完畢將JSON格式的新建表的基本信息發(fā)送至KAFKA時(shí),需要發(fā)送表名、schema名、列名、列屬性等信息。
為解決上述問題,目前直接方法一般采取從原始SQL日志中直接解析SQL語(yǔ)句,按照Create Table(建表)的語(yǔ)法或其他特征來(lái)分解SQL語(yǔ)句的各個(gè)單詞,從而獲取列名。但是,以SQL語(yǔ)法來(lái)解析Create Table(建表)語(yǔ)句中的各類信息,基本等同于實(shí)現(xiàn)一個(gè)用于解析Create Table(建表)語(yǔ)句的編譯器,這樣雖然能保證程序完善,但對(duì)開發(fā)人員的技術(shù)水平要求較高,實(shí)現(xiàn)起來(lái)過(guò)于復(fù)雜、費(fèi)時(shí);用SQL語(yǔ)句里的其他特征(如空格、逗號(hào)和左右括號(hào)等)以字符串匹配的方式來(lái)解析Create Table(建表)語(yǔ)句中的各類信息,雖然實(shí)現(xiàn)起來(lái)較為簡(jiǎn)單,但是難以覆蓋使用Create Table(建表)操作的各種情形,可能導(dǎo)致Create Table(建表)操作解析失敗甚至程序崩潰。
發(fā)明內(nèi)容
為克服上述現(xiàn)有技術(shù)存在的不足,本發(fā)明之目的在于提供一種對(duì)DB2數(shù)據(jù)庫(kù)建表日志列名解析的方法及裝置,以實(shí)現(xiàn)在Create table(建表)日志解析中獲取列名的目的。
為達(dá)上述目的,本發(fā)明提出一種對(duì)DB2數(shù)據(jù)庫(kù)建表日志列名解析的方法,包括如下步驟:
步驟S1,在解析建表日志時(shí),對(duì)原始SQL日志進(jìn)行解析,從SQL語(yǔ)句中分離出表名和schema名,并存入用于表示表基本信息的一解析結(jié)構(gòu)體中;
步驟S2,對(duì)初始化表的日志,從中獲取表ID、表空間ID以及表的各列屬性信息,存入所述解析結(jié)構(gòu)體中,并構(gòu)建一個(gè)任務(wù)結(jié)構(gòu)體,于所述任務(wù)結(jié)構(gòu)體設(shè)置一個(gè)建表操作的標(biāo)志數(shù),將獲取到的表ID、表空間ID存所述任務(wù)結(jié)構(gòu)體中;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海英方軟件股份有限公司,未經(jīng)上海英方軟件股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110109747.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 一種基于安騰平臺(tái)的DB2數(shù)據(jù)庫(kù)的故障檢測(cè)和切換方法
- Unix操作系統(tǒng)下DB2數(shù)據(jù)庫(kù)連接的方法及系統(tǒng)
- 一種CPU高消耗的DB2進(jìn)程/線程快速定位方法
- 數(shù)據(jù)從DB2數(shù)據(jù)庫(kù)遷移到K?DB數(shù)據(jù)庫(kù)的方法和裝置
- 基于事務(wù)日志分析的單導(dǎo)系統(tǒng)中db2數(shù)據(jù)庫(kù)同步技術(shù)
- 解析DB2報(bào)文的方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備
- 一種DB2數(shù)據(jù)庫(kù)容災(zāi)和管控方法及系統(tǒng)
- 檢測(cè)單元
- 一種大型機(jī)DB2數(shù)據(jù)庫(kù)表分區(qū)方法和裝置
- 一種針對(duì)db2數(shù)據(jù)的密態(tài)數(shù)據(jù)訪問防護(hù)方法
- 數(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í)行方法及裝置
- 一種基于精簡(jiǎn)策略的集群系統(tǒng)的日志管理優(yōu)化方法
- 日志分離方法及裝置
- 日志服務(wù)器處理日志的方法和裝置
- 一種基于負(fù)載均衡的文件系統(tǒng)日志模型
- 日志生成方法、應(yīng)用服務(wù)器、日志服務(wù)器及日志生成系統(tǒng)
- 一種多線程日志輸出的方法及裝置
- 一種日志分析方法、系統(tǒng)、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 日志解析方法、裝置、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 日志處理方法及設(shè)備
- 一種日志檢測(cè)方法、裝置、終端及服務(wù)器





