天天看點

Oracle內建開發總結

作者:數通暢聯

在企業中,由于開發時間或開發部門的不同,往往有多個異構的、運作在不同的軟硬體平台上的資訊系統同時運作,這些系統的資料源彼此獨立、互相封閉,使得資料難以在系統之間交流、共享和融合,進而形成了“資訊孤島”。随着資訊化應用的不斷深入,企業内部、企業與外部資訊互動的需求日益強烈,急切需要。

為消除各企業間的“資訊孤島”,需要對各企業的資料格式進行映射處理,保障資料在傳輸到目标企業時,與目标企業接口所規定的格式相同,目标企業可以直接接收存儲,保障企業間實作資料互通,消除“資訊孤島”。以往的內建開發基于MySQL進行,現階段接觸到Oracle并基于Oracle完成內建開發,本篇文檔将對整體內建開發過程、在開發過程中遇到的問題以及如何解決進行介紹。

整體說明

本次內建開發是在實際項目中開展,此項目為資料中台方案的實際應用,本篇文檔将主要圍繞方面展開介紹,同時闡明在實際開發過程中,從MySQL轉為Oracle需要注意的地方。

1.工作背景

本次工作為資料中台闆塊項目其中的一部分,實作企業内部資料的內建與統一,。從目前各應用系統以及線下Excel表格擷取資料資訊,使用ESB企業資料總線建立主資料同步流程,各應用系統服務接口将資料同步到MDM主資料管理平台,在各業務系統需要主資料資訊時将其進行分發。

2.業務需求

由于人力資源管理系統、NCC财務管理系統無法實時推送,是以采用提供視圖的方式,由ESB定時拉取。當關鍵應用系統以及投資、建築、房地産、資訊化系統發生變更時調用ESB企業資料總線的接口進行實時推送。同時,各業務系統,主資料平台将清洗過後的資料進行分發,将資料分發至上述描述的消費系統中。各系統就像一個大系統的各個業務功能子產品,實作企業IT架構的柔性調整、更新、改造,進而支撐企業的業務戰略目标落地。

本篇文檔主要圍繞人員主資料進行介紹,其內建架構如圖:

Oracle內建開發總結

3.功能需求

各類主資料核心功能需求如下:

1.主資料平台保障資料的一緻性、完整性以及準确性,同時保障資料品質,”的情況發生;

2.資料同步流程應嚴謹,考慮資料為空的情況、資料批量同步的情況;

3.為保障主資料實施的落地,各業務系統應配合提供資料的同步接口以及資料接收接口,如果不能提供接口可提供對應的資料庫及視圖;

4.主資料平台應記錄資料同步日志,便于後續問題排查。

需求分析

在得到需求之後,針對需求進行具體分析,明确工作目标,理清工作思路。本次工作主要目标是,以便支援後續其餘工作的開展。

1.需求說明

本次工作主要完成源頭業務系統的資料擷取并同步至主資料平台,在進行同步前,需要根據源頭系統的字段資訊進行主資料中資料模型以及功能模型的建立,在建立過程中,要考慮到資料品質的問題,配置必要的校驗條件,在完成模型建立後,進行SMC內建場景的開發,根據源頭系統同步資料的方式:視圖或是JSON,進行針對性的內建開發。

2.實作思路

針對上文中給到的需求,對本次內建開發做出如下規劃:

1.整理源頭業務系統的字段資訊,挑選出需要的字段;

2.根據挑選出的字段,完成MDC中的基礎資料模組化;

3.完成MDC中的功能模型的建立;

4.在SMC中根據源頭系統同步資料的方式,;

5.在ESB設計器中生成內建流程,進行針對性的适配調整,完成內建開發。

3.接口說明

确定工作思路之後,對本次開發工作中需要使用到的接口進行整理,具體内容如下(在此用本機位址代替實際位址):

1.主資料擷取tokenId接口:

Oracle內建開發總結

接口入參:

Oracle內建開發總結

2.資料導入臨時表接口:

Oracle內建開發總結

接口入參:

Oracle內建開發總結
Oracle內建開發總結

3.資料導入實體表接口:

Oracle內建開發總結

接口入參:

Oracle內建開發總結

實施階段

在明确具體實施需求的同時完成前期的接口準備之後,接下來正式進行內建開發工作,本次內建開發主要可分為三部分,一是,二是,三是。

1.模型建構

資料模組化是正式開始工作的第一項,其建立步驟如下:

在MDC的基礎資料模組化中點選新增,配置主資料的基本資訊、來源系統以及分發系統,如圖:

Oracle內建開發總結

輕按兩下新增的資料模型即可對該模型進行字段的配置,如圖:

Oracle內建開發總結

點選建立表即可完成對該主資料相關的資料表結構的建立,如圖:

Oracle內建開發總結

在MDC的功能配置中點選新增,如圖:

Oracle內建開發總結

在填寫并配置完成主資料功能模型的基礎資訊之後,點選表單資訊可以對該主資料的具體頁面顯示效果進行調整,位置如圖:

Oracle內建開發總結

打開管理清單對資料管理頁面中的顯示效果進行調整,如圖:

Oracle內建開發總結

打開管理表單調整資料詳情頁面的顯示效果,如圖:

Oracle內建開發總結

在SQL中點選解析SQL并進行部署即可完成功能模型的調整,如圖:

Oracle內建開發總結

2.服務建立

API服務采用注冊或導入的方式生成,對場景建立過程中需要使用到的接口進行服務的注冊,對服務中需要使用的接口,具體配置步驟如下:

由于本次源頭系統并未提供接口,是以虛拟出一個源頭系統接口,并配置出參,如圖:

Oracle內建開發總結

注冊主資料系統服務,填入對應的主資料服務位址,點選解析,如圖:

Oracle內建開發總結

打開主資料系統服務,配置入參資訊,如圖:

Oracle內建開發總結

3.內建場景

在場景配置中點選新增,并填寫相關基本資訊,如圖:

Oracle內建開發總結

在映射參數中點選解析,如圖:

Oracle內建開發總結

在內建流程中可以看到配置完成的內建流程,如圖:

Oracle內建開發總結

在設計器中建立消息流程,選擇應用服務內建,如圖:

Oracle內建開發總結

點選Next,點選重新整理,選擇需要的內建流程,如圖:

Oracle內建開發總結

調整生成出來的預設流程,完成內建開發,如圖:

Oracle內建開發總結

問題總結

在本次內建開發過程中,遇到了一些問題,在本章節中将對這些遇到的問題及其解決方法進行總結,同時分析問題出現的原因,使在開展後續的工作時可以避免這些問題的發生。

1.問題描述

在本次開發工作中,遇到了一些問題,在此将對花費時間較多以及出現次數較多的問題進行整理:

1.在通過編碼作為查詢條件進行SQL查詢時,查詢不到所需資料;

2.在執行資料寫入時,提示時間字段引發報錯;

3.在執行臨時表資料同步真實表的過程中,提示StringIndexOutOfBoundsException錯誤;

4.執行SQL語句時,函數不生效。

2.問題分析

在處理上述問題以及其他零散問題的過程中,有很多問題是由于對Oracle的相關SQL書寫不熟悉導緻的,這些問題也相對比較容易進行解決;其次就是由于開發時不夠細心,如字段末尾出現空格這種問題,是能夠避免的;最後就是由于現如今的特殊時期,很多時候都需要通過遠端桌面的方式進行辦公,這時就會受到很多因素的影響,如網絡波動,遠端桌面電腦的性能以及多人同時使用該遠端桌面進行辦公;以上種種問題的原因,在後續開發工作前需着重注意。

3.解決方法

在上文提到的幾個問題中,可以分為幾類,,具體如下:

1.資料庫中存在滿足條件的資料,但是SQL查詢為空,後檢查字段發現,作為查詢條件的字段末尾存在大量空格,将字段類型更改為VARCHAR2解決;

2.DATE類型資料,在源頭系統推送的過程中,末尾添加了’.0’,修改後解決該問題;

3.經檢查該報錯是擷取年份的過程中産生的報錯,後懷疑是字段類型配置錯誤,在資料庫中檢視發現有一字段類型錯誤,修改後問題解決;

4.在使用日期函數時,該函數未生效,後删除函數末尾(),問題解決。

總結歸納

本次開發工作是項目工作的一部分,主要進行源頭系統資料的,同時将處理後的資料存儲到主資料平台中;在實際工作中,遇到了很多問題,同時也收獲頗多,在此将對近段時間的工作進行總結。

1.工作總結

近端時間在項目現場進行工作,也因為疫情原因進行了一段時間的遠端辦公,同時本次工作也是首次接觸Oracle,是以遇到了許多問題;通過本篇文檔不難發現,本次開發工作其實與以往工作差別不大,但是由于本次工作是首次使用Oracle,是以撰寫了本篇文檔加以總結,在後續的工作過程中,将以本次工作為戒,避免出現同樣的問題。

2.後續規劃

近段時間的工作内容都以主資料為主,主要完成,在後續的工作中,可以分為兩大重心,一是繼續推進主資料部分工作,完成與下遊系統的內建,保障上下遊系統資料的一緻性;二是在完成主資料部分的工作後,繼續開展資料分析部分工作,整體達成資料中台項目的預期目标,滿足客戶的需求;同時在工作過程中,通過分析客戶的實際需求,優化已開發完成的功能。

3.心得總結

本次工作是首次前往項目現場,也是首次接觸Oracle,在開發過程中由于使用不熟練浪費了一些時間去解決問題,通過本次開發完成的功能,已經完成幾類主資料從源頭系統同步至主資料,接下來就像上文所說去推進分發工作的開展,完成主資料這一部分的工作内容。

本次工作是在資料中台項目中開展,處理的資料為基礎資料;資料中台方案涉及到的産品共有三款,此次工作隻用到了MDM、ESB這兩款産品,後續将結合DAP這款産品,進行各類資料的分析展現,進而達成項目目标,等一系列功能。

本文由@數通暢聯原創,歡迎轉發,僅供學習交流使用,引用請注明出處!謝謝~