鄭 皓,許 琦,
(1. 臺州職業(yè)技術學院臺州中小企業(yè)信息化應用技術協(xié)同創(chuàng)新中心;2. 浙江省工業(yè)機器人與智能制造生產(chǎn)線集成推廣應用協(xié)同創(chuàng)新中心,浙江臺州 318000)
專利數(shù)據(jù)庫是指收錄了海量專利數(shù)據(jù)且對其進行一定加工,并提供專利檢索、專利分析、專利下載、專利挖掘等接口的大型專利信息服務系統(tǒng)。目前國內(nèi)外存在很多專利數(shù)據(jù)庫,其中,國內(nèi)除了國家知識產(chǎn)權局提供的國家專利數(shù)據(jù)庫以外,還有incoPat專利數(shù)據(jù)庫、佰騰專利數(shù)據(jù)庫、SooPAT專利數(shù)據(jù)庫等;國外著名的專利數(shù)據(jù)庫包括美國專利商標局專利數(shù)據(jù)庫、歐洲專利局專利數(shù)據(jù)庫和日本特許廳專利數(shù)據(jù)庫等。這些專利數(shù)據(jù)庫為企業(yè)技術研發(fā)、專利戰(zhàn)略研究、科學決策提供了強有力的支撐。由于建設主體、管理機制以及功能模塊不同,各專利數(shù)據(jù)庫的存儲機制(既可以是關系型數(shù)據(jù)庫系統(tǒng),也可以是文件型二維數(shù)據(jù))、存儲地點、數(shù)據(jù)邏輯、數(shù)據(jù)格式、結構模型、編碼方式等均不相同,多源性和異構性特點非常突出。為此,相關學者開展了深入研究,提出了不少解決方案[1-8]。
本文擬從數(shù)據(jù)倉庫視角,以分布式局部專利數(shù)據(jù)為來源,依托Kettle 等工具輔助[9],構建專利數(shù)據(jù)中心,將分布在不同地點、不同系統(tǒng)的異構專利數(shù)據(jù)進行統(tǒng)一集成,方便專利數(shù)據(jù)的統(tǒng)一存儲、訪問和共享。
專利數(shù)據(jù)中心遵循數(shù)據(jù)倉庫的架構模式[10],將分布在不同地點、不同系統(tǒng)的異構專利數(shù)據(jù)集成到一個數(shù)據(jù)中心,方便專利數(shù)據(jù)的統(tǒng)一存儲、訪問和分析,其框架如圖1所示。具體特點包括:一是將來自不同數(shù)據(jù)源的異構專利數(shù)據(jù)以統(tǒng)一格式規(guī)范地存儲,并實時、高效地實現(xiàn)增量數(shù)據(jù)更新;二是僅提取原有系統(tǒng)的專利數(shù)據(jù),不影響其正常運行,保持原有系統(tǒng)應用獨立和工作自治;三是封裝所有數(shù)據(jù)源的異構專利數(shù)據(jù)細節(jié),對用戶提供統(tǒng)一、透明的訪問接口,用戶只需關注自身的訪問需求,無需過多關注各底層數(shù)據(jù)源的差異結構;四是具有較好的跨平臺性,能夠滿足不同操作平臺需求,并預留可擴展接口。
圖1 專利數(shù)據(jù)中心框架
(1)數(shù)據(jù)源層。專利數(shù)據(jù)中心的數(shù)據(jù)源來自各業(yè)務系統(tǒng)的底層數(shù)據(jù)庫,是專利數(shù)據(jù)最原始的存儲點,可以分布在不同地區(qū),也可以在同一地區(qū)的不同系統(tǒng)上。這些專利數(shù)據(jù)雖然以結構化形式存儲在關系型數(shù)據(jù)庫中,但由于存儲格式不同、字段不一、數(shù)據(jù)庫類型差異等,很難直接按照統(tǒng)一的模式進行管理、訪問和應用。
(2)數(shù)據(jù)提取層。數(shù)據(jù)提取層是專利數(shù)據(jù)集成的基礎,直接決定了專利數(shù)據(jù)中心的效率和質(zhì)量。本文擬通過綜合應用快照法、觸發(fā)器法、日志法、時間戳法、影子表法等各類數(shù)據(jù)提取方法,實現(xiàn)高效、實時的數(shù)據(jù)提取。
(3)數(shù)據(jù)轉換層。數(shù)據(jù)轉換層的主要功能是完成數(shù)據(jù)格式轉換,使得其按照統(tǒng)一結構模式輸出。為了減少數(shù)據(jù)傳輸量、提高傳輸效率,首先可進行數(shù)據(jù)壓縮,以減輕數(shù)據(jù)傳輸負擔;其后進行數(shù)據(jù)簽名,保證數(shù)據(jù)的完整性和不可抵賴性,保障信息安全,規(guī)避偽造、抵賴、冒充和篡改等問題;接著進行加密處理,實現(xiàn)信息隱蔽,起到保護數(shù)據(jù)安全的作用。鑒于數(shù)據(jù)源層的異構情況,數(shù)據(jù)轉換層還需要負責數(shù)據(jù)封裝。采用數(shù)據(jù)封裝器,包裝所有異構數(shù)據(jù)細節(jié),對外統(tǒng)一提供數(shù)據(jù)處理接口,揚棄不同業(yè)務系統(tǒng)底層數(shù)據(jù)的差異性,實現(xiàn)異構數(shù)據(jù)統(tǒng)一化處理。
(4)數(shù)據(jù)倉庫層。數(shù)據(jù)倉庫層主要是存儲統(tǒng)一格式的專利數(shù)據(jù),涵蓋專利數(shù)據(jù)更新、專利數(shù)據(jù)查詢以及專利數(shù)據(jù)傳輸?shù)裙芾砉δ?,并對外提供專利?shù)據(jù)應用接口,滿足用戶各種訪問需求。
增量專利數(shù)據(jù)集成是影響專利數(shù)據(jù)中心成效的關鍵因素之一,本文綜合采用快照法、觸發(fā)器法、日志法、時間戳法、影子表法等各類數(shù)據(jù)提取方法,揚長避短,提高專利數(shù)據(jù)集成效率。
快照即即時映像,是對數(shù)據(jù)庫中數(shù)據(jù)存儲現(xiàn)狀在一定時間節(jié)點的實時反映。通過快照法,對數(shù)據(jù)源中的專利數(shù)據(jù)設置一個即時映像,作為當前專利數(shù)據(jù)存儲現(xiàn)狀的一個副本。當數(shù)據(jù)源中專利數(shù)據(jù)發(fā)生增量時,通過與快照中專利數(shù)據(jù)副本進行對比,獲取增量部分數(shù)據(jù)。該方法管理快捷便利、操作輕巧,當沒有增量數(shù)據(jù)時,幾乎不占用任何磁盤空間和額外的系統(tǒng)資源,不依賴于數(shù)據(jù)庫類型,是最常用的增量數(shù)據(jù)集成方法。
觸發(fā)器法,顧名思義,是在數(shù)據(jù)源中植入新增、刪除、更新等各類觸發(fā)器。一旦數(shù)據(jù)源中的專利數(shù)據(jù)發(fā)生新增、刪除、更新,相應觸發(fā)器就會被激發(fā),會在專利數(shù)據(jù)中心對對應的專利數(shù)據(jù)執(zhí)行新增、刪除及更新等操作,確保與數(shù)據(jù)源保持一致。
通過日志法實現(xiàn)增量專利數(shù)據(jù)集成的基礎在于數(shù)據(jù)源中所有數(shù)據(jù)操作記錄被完整、成功地保存在日志中,可以供分析、維護、恢復使用。目前,常用的關系型數(shù)據(jù)庫(如SQL Server、Oracle、MySQL、DB2等)基本上都支持日志功能,可以分析其記載的數(shù)據(jù)操作記錄,提取專利數(shù)據(jù)系列變化信息。該方法一般不需要占用過多的額外資源,并能保證增量專利數(shù)據(jù)的完整性和提取效率。但可能存在一個小問題,即不同類型數(shù)據(jù)庫的日志接口不同,需要定制專用的分析工具,這給異構專利數(shù)據(jù)集成帶來一定困擾。
采用時間戳法實現(xiàn)增量專利數(shù)據(jù)集成,前提是數(shù)據(jù)源中所有數(shù)據(jù)均設有時間戳字段用以記錄該行數(shù)據(jù)的更新時間,通過該字段判斷數(shù)據(jù)是否更新及其更新時間,從而在專利數(shù)據(jù)中心對對應的專利數(shù)據(jù)執(zhí)行新增、刪除及更新等操作。該方法運行效率較高,但存在時間戳字段這一必要前提,否則需對數(shù)據(jù)源的原有表格作出較大調(diào)整,即需要增設時間戳字段。這也是阻礙時間戳法得到廣泛應用的因素之一。
影子表法和快照法有些類似,均是通過建立一個數(shù)據(jù)副本的方式備份當前存儲現(xiàn)狀,通過對比數(shù)據(jù)副本和最新數(shù)據(jù)的變化信息,定期提取增量數(shù)據(jù)。和日志法一樣,影子表法不依賴于數(shù)據(jù)庫類型,在任何關系型數(shù)據(jù)上均能實現(xiàn),但同時也有以下兩個缺點:一是不可串性,若無保存中間操作過程信息,數(shù)據(jù)副本則不可串;二是效率低下,無法實時實現(xiàn)增量數(shù)據(jù)提取,每次提取增量數(shù)據(jù)時,均需全盤掃描數(shù)據(jù)副本和最新數(shù)據(jù),這也是該方法一個嚴重的性能瓶頸。
以時間戳法為例,本文應用Kettle工具實現(xiàn)增量專利數(shù)據(jù)集成,具體流程如下:
(1)配置目標表和源表。這是兩個基本環(huán)節(jié)。輸入目標表target和源表source,并配置數(shù)據(jù)庫類型、地址、端口、用戶名、密碼等參數(shù)。
(2)插入/更新(見圖2)。該步驟是關鍵環(huán)節(jié)。首先對比兩個數(shù)據(jù)流,即傳入數(shù)據(jù)流和目標數(shù)據(jù)流,前者是從源表中獲取的各字段值,后者為目標表中各字段值。其次執(zhí)行更新,若在目標表中沒有查詢到這些數(shù)據(jù)記錄,則執(zhí)行插入操作;若在目標表中查詢到這些數(shù)據(jù)記錄,則根據(jù)其更新時間,即時間戳字段,決定是否執(zhí)行更新操作;若兩個數(shù)據(jù)流完全一致,則不執(zhí)行任何操作。
圖2 ??瘮?shù)據(jù)集中的插入/更新
(3)新建工作任務。建立一個作業(yè),包括一個start和上述2個環(huán)節(jié),運行一次,測試整個流程是否正常,然后設置start,按時間重復運轉。
專利數(shù)據(jù)庫多源、異地,且具有數(shù)據(jù)邏輯、數(shù)據(jù)格式、結構模型、編碼方式等不統(tǒng)一的突出特點。本文從數(shù)據(jù)倉庫視角,提出了一種統(tǒng)一存儲、訪問和共享的專利數(shù)據(jù)中心框架結構,依托Kettle工具實現(xiàn)了增量專利數(shù)據(jù)的高效、實時更新。