[發明專利]SQL腳本元數據的更新方法、裝置及系統無效
| 申請號: | 201010239660.7 | 申請日: | 2010-07-28 |
| 公開(公告)號: | CN102339298A | 公開(公告)日: | 2012-02-01 |
| 發明(設計)人: | 何鴻凌;陳仲亮;魏春輝;李政;陶濤;林旭;薛勇 | 申請(專利權)人: | 中國移動通信集團公司;廣州石竹計算機軟件有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京中譽威圣知識產權代理有限公司 11279 | 代理人: | 叢芳;彭曉玲 |
| 地址: | 100032 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | sql 腳本 數據 更新 方法 裝置 系統 | ||
技術領域
本發明涉及元數據管理領域,具體涉及一種SQL腳本元數據的更新方法、裝置及系統。
背景技術
數據倉庫領域的元數據管理需要確保元數據的及時更新,以反映數據倉庫系統的最新情況。當抽取、轉換、裝載ETL(Extract,transform,load,簡稱ETL)和數據處理過程的程序塊發生修改后,就需要更新該程序塊相應的SQL腳本元數據。元數據更新過程可劃分為兩個環節:首先是一個自動解析的過程,解析該程序塊中包含的SQL腳本,獲取其數據流語義并轉換為元數據;然后是一個元數據入庫的過程,將所生成的元數據按一定的規則寫入元數據存儲庫。
第一個環節的自動解析過程通過三個步驟來完成,步驟一:直接從ETL和數據處理過程的程序代碼中提取、從數據庫日志中提取或者從ETL和數據處理過程的運行日志中提取ETL和數據處理過程的SQL腳本;步驟二:利用編譯技術對這些SQL腳本進行詞法、語法和語義分析,生成抽象語法樹,以此作為語義分析的基礎;步驟三:對SQL腳本的抽象語法樹進行語義分析,獲取其數據流語義信息并轉換成元數據。第二個環節是SQL腳本元數據入庫過程,每個元數據對象入庫時,需要根據對象命名對元數據存儲庫中的對象進行匹配;如果找不到相同命名的對象,則認為這是一個新增的對象,將其添加到元數據存儲庫中;如果找到相同命名的對象,則認為這是同一個對象,這時需要考慮采用積極策略還是保守策略來處理,其中,積極策略是以新生成的對象的所有屬性值覆蓋元數據存儲庫中的老對象的屬性值,以新對象的關聯關系替換老對象的關聯關系,保守策略則不改動老對象的屬性值和關聯關系,只填寫老對象的空屬性值并追加關聯關系。
當新增程序塊第一次運行時,元數據存儲庫中并沒有該程序塊的SQL腳本元數據。該程序塊所輸出的SQL腳本經過解析處理后生成元數據,并添加到元數據存儲庫中。當這些程序塊重復運行時,如果繼續解析處理程序塊運行所輸出的SQL腳本,則獲取的元數據在入庫處理時就存在如何與存儲庫中已存在的元數據合并的問題。由于SQL腳本的元數據對象并沒有確定的命名方式可以對其進行唯一標識,利用對象命名與存儲庫中已存在的對象進行匹配是很不可靠的,不能據此找到同一個SQL腳本元數據對象,導致更新效率不高。如果程序塊發生修改,修改后的程序塊需要進行元數據更新,這些元數據入庫時同樣遇到如何與元數據存儲庫中已有元數據合并的問題。此外,如果程序塊存在多條運行路徑,當次運行就只能輸出了其中一條運行路徑的SQL腳本,使得解析這些SQL腳本所生成的元數據并不能完整描述整個程序塊中的SQL腳本數據流語義。
現有SQL腳本元數據更新方案存在如下不足:
(1)在元數據入庫時,以對象命名進行匹配,進而決定元數據是否入庫,難以確保當ETL和數據處理過程程序塊重復運行或者發生修改時元數據更新的質量,更新效率不高;
(2)當次運行只能輸出了一條運行路徑的SQL腳本記錄在運行日志中,且以對象命名進行匹配,導致根據運行日志獲取SQL腳本時,在程序塊中存在分支、循環的情況下很難確保元數據更新的質量,更新效率不高。
發明內容
本發明的第一目的是提出一種效率高的SQL腳本元數據的更新方法。
本發明的第二目的是提出一種效率高的SQL腳本元數據的更新裝置。
本發明的第三目的是提出一種效率高的SQL腳本元數據的更新系統。
為實現上述第一目的,本發明提供了一種SQL腳本元數據的更新方法,包括:解析程序塊中包含的SQL腳本,獲取元數據;判斷SQL腳本與元數據庫已記錄SQL腳本是否為同一腳本;在判定為不同腳本時,將元數據更新至元數據庫。
為實現上述第二目的,本發明提供了一種SQL腳本元數據的更新裝置,包括:解析模塊,用于解析程序塊中包含的SQL腳本,獲取元數據;判斷模塊,用于判斷SQL腳本與元數據庫已記錄SQL腳本是否為同一腳本;處理模塊,用于在判定為不同腳本時,將元數據更新至元數據庫。
為實現上述第三目的,本發明提供了一種SQL腳本元數據的更新系統,包括:元數據庫,用于記錄SQL腳本的元數據及SQL腳本的修改信息;SQL腳本元數據的更新裝置,用于解析SQL程序塊中包含的SQL腳本獲取元數據;并判斷SQL腳本與元數據庫已記錄SQL腳本是否為同一腳本;以及在判定為不同腳本時,將元數據更新至元數據庫。
本發明各個實施例中,在判定是否為同一SQL腳本后進行元數據的更新操作,避免了現有技術中在元數據入庫時以對象命名進行匹配而導致更新效率不高的不足,提升更新效率。
附圖說明
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國移動通信集團公司;廣州石竹計算機軟件有限公司,未經中國移動通信集團公司;廣州石竹計算機軟件有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010239660.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:關態無功耗單鍵輕觸電子多控開關
- 下一篇:密閉型壓縮機的儲液罐結構
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





