[發明專利]一種針對關系型數據庫的大容量SQL文件的導入方法在審
| 申請號: | 202211686988.2 | 申請日: | 2022-12-27 |
| 公開(公告)號: | CN115878658A | 公開(公告)日: | 2023-03-31 |
| 發明(設計)人: | 梁效寧;雷珂;張佳強;蒲軍 | 申請(專利權)人: | 四川效率源信息安全技術股份有限公司 |
| 主分類號: | G06F16/242 | 分類號: | G06F16/242;G06F16/28;G06F8/41 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 641000 四*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 針對 關系 數據庫 容量 sql 文件 導入 方法 | ||
1.一種針對關系型數據庫的大容量SQL文件的導入方法,其特征在于,包括以下步驟:
S100:SQL文件的詞法分析,包括以下步驟:
S101:配置詞法分析規則,生成詞法分析配置文件:根據SQL詞法規則及詞法分析器配置規則,配置詞法類型的識別規則并生成詞法分析配置文件;
S102:采用詞法分析器,將所述詞法分析配置文件生成為可執行文件;
S103:采用所述可執行文件,生成詞法標記;
S200:SQL文件的語法分析:生成語法分析配置文件,采用語法分析器生成SQL文件中各個語句各自所對應的語法結構體對象,其中,SQL文件中所述各個語句包括建庫語句、庫選擇語句、建表語句及插入語句;
S300:語法結構持久化:采用所述語法結構體對象,提取數據庫結構并存儲到JSON文件中;
S400:根據所述JSON文件創建關系型數據庫,將所獲取的文本文件導入至關系型數據庫。
2.根據權利要求1所述的一種針對關系型數據庫的大容量SQL文件的導入方法,其特征在于,所述詞法分析器為FLEX,所述語法分析器為BISON。
3.根據權利要求1所述的一種針對關系型數據庫的大容量SQL文件的導入方法,其特征在于,所述詞法類型包括SQL關鍵字、用戶標記、值標記及符號標記,所述SQL關鍵字包括創建、插入、刪除、表、數據庫,所述用戶標記為用戶自行命名的標記,包括數據庫名稱、表名、字段名,所述值標記包括字符串值、整型值、浮點數值、十六進制值及二進制值,所述符號標記包括算術運算符號、邏輯運算符號、標點符號及文件結束符號。
4.根據權利要求1所述的一種針對關系型數據庫的大容量SQL文件的導入方法,其特征在于,針對所述詞法分析器不能識別/處理的編碼及文件編碼頭,根據不同類型的編碼及文件編碼頭,各自分別剔除/忽略且不生成詞法標記。
5.根據權利要求1所述的一種針對關系型數據庫的大容量SQL文件的導入方法,其特征在于,步驟S200包括以下步驟:
S201:配置語法分析規則,生成語法分析配置文件:根據SQL語法規則及語法分析器配置規則,配置SQL文件中各個語句的識別規則并生成語法分析配置文件;
S202:采用語法分析器,將所述語法分析配置文件生成為可執行文件;
S203:將所生成的詞法標記傳入語法分析器中,用以生產SQL語法結構體對象。
6.根據權利要求1所述的一種針對關系型數據庫的大容量SQL文件的導入方法,其特征在于,所述語法結構持久化包括以下步驟:
S301:讀取當前語法結構體對象,判斷當前語法結構體對象的類型是否為下述類型之一:
A.建庫語句/庫選擇語句:則執行步驟S302;
B.建表語句:則執行步驟S303;
C.插入語句:則執行步驟S304;
S302:建庫語句/庫選擇語句的語法結構體對象的持久化,并執行步驟S305;
S303:建表語句的語法結構體對象的持久化,并執行步驟S305;
S304:插入語句的語法結構體對象的持久化,并將表數據存儲到文本文件中,設置文本文件的大小不超過第一閥值,用以查詢/導入,其中,第一閥值為200M字節,執行步驟S305;
S305:判斷大容量SQL文件中語法結構體對象是否已經讀取完畢,如果是,執行步驟S400,否則,執行步驟S306;
S306:讀取SQL文件中下一語法結構體對象,執行步驟S301。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川效率源信息安全技術股份有限公司,未經四川效率源信息安全技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211686988.2/1.html,轉載請聲明來源鉆瓜專利網。





