?

基于ETL技術的臺站信息同步應用研究

2022-01-03 16:58劉泱
科技與創新 2021年24期
關鍵詞:臺站列表對象

劉泱

(內蒙古自治區氣象信息中心,內蒙古 呼和浩特 010010)

目前,全國綜合氣象信息共享平臺[1](以下簡稱CIMISS)和氣象大數據云平臺(以下簡稱天擎)是全國氣象部門信息化的核心平臺,其存儲的臺站信息是各業務系統的重要數據支撐。CIMISS數據環境由ORACLE數據庫組成,天擎數據庫環境由虛谷數據庫和GBase數據庫組成,當站網信息發生變動時,則需要對所有數據庫的站網信息表進行修改,人為修改不僅工作量大,而且存在改錯、誤刪的風險。ETL技術的應用,大幅度地減少了各個數據庫同步更新開發工作,技術人員只需在ETL工具的圖形界面上定制工作流程,即可流程化地實現各個數據庫表之間的站網信息同步,下面將對臺站信息同步的具體實現進行介紹。

1 設計思路

站網信息同步更新設計思路如下:①CIMISS和天擎數據環境的站網信息表結構完全一致,首先,設計一張與站網信息表結構完全一致的臺站信息表,添加一個是否更新字段,初始化為0,將待更新的臺站信息存儲至該表;②其次,基于ETL工具編排同步更新作業,當監測到有未更新的臺站信息時,即更新字段為0的記錄,則促發作業啟動,拼接臺站信息更新的SQL語句,并發送至各個數據庫完成更新;③最后,更新成功后,將更新字段設置為1。

2 關鍵技術

2.1 ETL同步工具

ETL是Extract-Transform-Load的縮寫[2],Extract是數據抽取、Transform是數據轉換、Load是數據裝載的過程。文章應用的ETL工具是Kettle,可以在Window、Linux、Unix不同的操作系統上運行。Kettle可以對不同數據庫的數據進行管理,通過提供圖形化頁面,技術人員無需編寫代碼即可實現站網信息同步的業務邏輯。

2.2 虛谷數據庫

虛谷數據庫是以分布式[3]架構為基礎的關系型數據庫,實現了傳統關系型數據庫的所有功能且提供了多種數據庫訪問接口,如JDBC、ODBC、C-API、Python、GO等,具有數據存儲高可用、工作節點高可用、多網絡并行、高性能、高擴展、高安全和易用性等優點。

2.3 GBase數據庫

GBase是南大通用數據技術有限公司推出的自主品牌數據庫產品,是國內第一個列存分析型數據庫,具有獨特的列存儲、透明自適應壓縮、智能索引、雙向并行、高速數據加載等優點。

3 實現方法

3.1 待更新臺站信息元數據制作

創建一張臺站信息元數據表,表的字段信息包括站名、站號、經度、緯度、海拔高度、盟市、旗縣、行政區域編碼、更新狀態等帶同步的臺站基礎信息。將待更新的臺站信息錄入到該表中,更新狀態字段為0時,表示需要更新,為1時則表示更新成功。

3.2 臺站信息同步任務編排

臺站信息同步任務由作業和轉換兩部分組成[4]。其中作業是步驟流,表示完成同步任務的某一個階段,每個步驟完成的是獨立的一件事情,按照工作的先后順序執行,從而形成一個工作流;轉換是數據流,指從輸入控件(Input)到輸出控件(Output)之間的數據流動,針對的是在數據流動過程中的每一行記錄、每一列數據的處理。臺站信息同步任務包含1個作業和2個轉換,具體設計如下。

3.2.1 臺站信息同步作業設計

臺站信息同步作業是將轉換1——獲取待同步的臺站信息列表和轉換2——同步臺站信息列表這兩個轉換按照先后順序連接起來,實現臺站信息同步功能,作業流程如圖1所示。

3.2.2臺站信息同步轉換設計

轉換1——獲取待同步的臺站信息列表,主要用到的轉換對象是“表輸入”和“復制記錄到結果”?!氨磔斎搿鞭D換對象是通過SQL語句獲取待同步的臺站信息,“復制記錄到結果”轉換對象是用來存儲表輸入抽取臺站信息,轉換流程如圖2所示。

圖2 獲取待同步的臺站信息列表轉換流程

轉換2——同步臺站信息列表,主要用到的轉換對象是“表輸入”“JavaScript代碼”“插入/更新”“寫日志”“執行SQL語句”。流程如圖3所示。

圖3 同步臺站信息列表轉換流程

處理詳情過程如下:①“表輸入”轉換對象是待同步更新的臺站信息列表;②“JavaScript代碼”轉換對象用來轉換臺站類型編碼的,CIMISS臺站類型是**兩位字符串,天擎臺站類型是00**四位字符;③“插入/更新”轉換對象用來同步臺站信息,包括CIMISS業務系統的ORACLE數據庫一張臺站信息表、天擎業務系統虛谷數據庫三張臺站信息表和GBASE數據庫一張臺站信息表;④“寫日志”轉換對象用來記錄執行同步指令的異常記錄日志,便于排查故障原因;⑤“執行SQL語句”轉換對象用來更新同步狀態,當所有數據庫完成站網信息同步后,則將狀態字段置為1。

3.3 調度任務啟動

ETL是客戶端工具,臺站信息同步任務編排后,需要在工具中點擊“運行”按鈕才能執行,不符合智能運維的思路。為了彌補此缺陷,部署了KETTLE調度管理平臺[5],將臺站信息同步任務添加到調度平臺,按照執行策略,即可自動運行,配置過程如下。

添加執行策略如圖4所示。添加作業任務如圖5所示。

圖4 添加任務執行策略

圖5 添加作業任務

4 應用與總結

文章所述的臺站信息同步任務已在日常業務工作中開展應用,并在CIMISS業務系統和天擎業務系統并行期間發揮了重要作用,業務人員只需將變更的臺站信息添加至待更新臺站信息元數據表中,調度任務監測到后,即可自動向各個數據環境的數據庫進行同步更新,極大地降低了人工操作的錯誤率,提高了工作效率,保證了臺站信息更新的正確性和完整率。2021年以來,通過該同步任務共更新了2 463條件臺站信息。

猜你喜歡
臺站列表對象
曬曬全國優秀縣委書記擬推薦對象
地震臺站基礎信息完善及應用分析
一種適用于高鐵沿線的多臺站快速地震預警方法
擴列吧
攻略對象的心思好難猜
圖說車事
一種具備干擾臺站剔除的多臺站定位方法
列表法解分式方程問題探索
“臺站管理App”的設計與實現
列表畫樹狀圖各有所長
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合