吳軍 黃寅 王金和 邵妍婷 楊磊



[摘? ? 要] 實時數據庫和關系數據庫是截然不同的兩種數據庫,隨著信息化水平的不斷進步,在實際的過程控制系統和信息管理系統中,往往將兩種數據庫結合使用。數據交換服務為不同數據庫之間的互聯互通提供加載、轉換、傳輸和存儲等功能。本文主要以采油二廠油氣生產物聯網系統數據建設為例,描述了2種數據交換服務的設計與實現過程,介紹了實時數據庫與關系數據庫相互通訊時用到的數據轉換和存儲的方法。
[關鍵詞] 實時數據庫;關系數據庫;數據交換存儲
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2020. 01. 042
[中圖分類號] F270.7;TP315? ? [文獻標識碼]? A? ? ? [文章編號]? 1673 - 0194(2020)01- 0100- 03
1? ? ? 引? ? 言
物聯網時代下的現代工業,其特性是要求生產全過程的實時監控,高速的實時數據處理,長期的歷史數據存儲以及生產信息的集成與共享。在工業生產過程中,自控技術已經普及,先進控制和計算機技術的結合,更好地解決了生產工藝日益復雜,控制質量要求越來越高的問題。在實際工業生產自動化控制過程中,大量數據處理,數據變化速度快,同時存在大量非結構化數據、半結構化數據。實時數據庫的優點在于不需人工干預,可實時處理大量并發數據信息;關系數據庫則非常簡便地實現對象信息的定義和存儲。基于生產管理需求和兩種數據庫的各自優勢,產生了實時數據庫與關系數據庫的相互通訊、結合使用。
2? ? ? 數據交換服務基本框架
2.1? ?數據交換服務概念
實時數據庫是數據庫技術結合實時處理技術產生的,適用于處理快速變化的數據及具有時間限制的事務;是開發實時控制系統、數據采集系統等的重要核心,具有很高的I/O吞吐量、高效數據壓縮技術,可以實現實時、高效、可靠的數據存儲和查詢。實時數據庫主要應用于工業自動化監控,存儲著生產工藝過程采集到的海量數據。
數據交換服務,用于管理不同來源、不同屬性的海量數據,提供快捷方便的服務。數據交換服務為不同數據庫之間的互聯互通提供了包含加載、轉換、傳輸和存儲等操作,有效解決數據及時、高效地上傳下達,在安全、快捷進行數據交換的同時,保證數據的一致性和準確性,實現數據的一次采集、多次分析使用,為各種應用和決策支持提供良好的數據環境。
2.2? ?數據交換服務設計研究路線
基于采油二廠物聯網系統建設,研究實時數據庫與關系數據庫的交換服務技術,研發了生產實時數據轉日生產數據系統,主要采用實時庫數據接口訪問、數據讀寫、實時數據轉存關系數據、數據入庫、發布的研發流程路線,實現了實時數據提取、發布、與基于EPDM的油氣水井生產數據管理系統(A2)系統、單井問題診斷、功圖分析系統等各類生產應用和管理系統的共享應用。
系統采用Web Service與數據庫交互,建立多層次、功能全面的平臺。使用VS.NET中的C#作為主要開發工具,提高開發進度,增強系統兼容性及穩定性;充分利用數據庫中現有的數據,建立相應的視圖或同義詞;對庫中不存在的數據采用編寫存儲過程處理的方法,最大限度的提高系統的性能。采用B/S架構開發實現解決不同的問題,方便使用、擴展、定制各種模塊。而這些模塊可以不受任何開發工具或者開發模式限制,只要符合框架要求的接口定義就可以插入系統。
使用鏈表可以方便有層次地進行管理和擴展,鏈表中的每個結點包括數據域和指針域,其中數據域存儲數據元素的信息,指針域中存儲結點直接后繼的存儲位置。在數據交換服務中采用三層鏈表結構如圖2所示,將連接connection作為第一級鏈表,每個連接下的表格table掛接到二級鏈表上,綁定bind則作為第三級鏈表。
3? ? ? 數據交換服務的設計與實現
3.1? ?實時數據讀取存儲
實時數據采集主要通過編寫實時數據庫中間件接口,同步數據標簽和同步實時數據兩大功能,實現海量實時數據(200萬+條/天,5 000萬條左右/月),數據標簽(10 881個)在10分鐘內讀取。通過額外功能對收集數據進行配置,可以方便地根據需求變化進行數據收集的靈活調整,節約處理時間和存儲空間。系統實現了數據從實時庫寫入關系庫,實現非結構化數據(多條記錄形成1口井的完整信息)與結構化數據(1條記錄為1口井完整信息)轉換處理及同步實時庫的數據標簽列表和值到Oracle庫。
3.2? ?實時數據轉換關系數據
實時數據處理成關系數據,主要是將從實時數據庫讀出來數據,存入關系數據庫之前先把數據轉換成變體類型,再將變體類型存入關系數據庫。存入關系數據庫的數據類型和從數據庫取出的變體類型是有確定的對應關系的。通過RealTimeExtractionData接口,按設計時間,同步完數據之后,添加處理邏輯調用處理過程,處理數據。通過代碼控制,更加靈活且實效性好,速度快;異常控制更強大。系統實現自動和手動生成關系數據日報2種方式。
3.3? ?關系數據轉換實時數據
從關系數據庫取出變體類型的數據,進行數據類型轉換,再存入實時數據庫。在類型轉換時,同樣需要進行嚴格的類型匹配檢查以及合法轉換的數值范圍檢查。Int的數據范圍是-32 768~32 767,unsigned int的數據范圍是0~65 535。因此當需要轉換的數值處于[-32 768,0)時,服務會報錯提示轉換非法。
數據類型轉換的分支很多,分支總個數是實時數據庫數據類型的個數與關系數據庫數據類型個數的笛卡爾積,而在每個分支中的類型匹配檢查個數以及合法轉換數值范圍檢查個數則更為龐大,十分復雜。
4? ? ? 結? ? 語
數據交換服務是物聯網系統技術發展的一個重要組成部分,它快速準確地提供實時數據庫和關系數據庫之間數據的加載、轉換、傳輸和存儲服務,建立高效穩定的實時庫數據提取和關系庫數據同步機制,在解決數據共享、數據資源整合、發掘數據資源的潛在價值上發揮著重要作用,滿足不同業務的協同需求。
主要參考文獻
[1]李亮舉,劉孟祎.實時數據庫與關系數據庫數據交換服務的設計與實現[J].自動化博覽,2013(4).