中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ORACLE物化視圖怎么解決CMS數據同步與來不及的DATA PIPLELINE

發布時間:2021-12-06 11:14:28 來源:億速云 閱讀:154 作者:柒染 欄目:大數據

這篇文章給大家介紹ORACLE物化視圖怎么解決CMS數據同步與來不及的DATA PIPLELINE,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

為啥要牽扯僅DataPiple Line, 因為如果有DataPipe Line,我下面的故事就不用寫了。所以一項新技術和軟件的開發可以解決不少頭疼的問題。那下面就先來看看問題。

人有多少想法,其實就有能滿足你需求的東西,例如Dta Pipleline ,它能解決的問題我現在就能想到幾個

1 異構數據庫的灰度發布,更換數據庫系統的麻煩事就可以通過這個數據管道系統解決。

2 大數據的實時分析。

3 數據同步與單庫對多庫數據下發,并能解決可能出現的性能問題。

4 生產庫到測試庫的數據脫敏與數據實時同步

當然還有他本身的功能,數據管道。

故事是開始最近由于要拆分原有ORACLE數據庫的部分功能,到MYSQL上,需要數據同步,數據庫同步方法很多,但找到一個合適的確不容易,不是技術上困難,而是方法太多,可能會有選擇恐懼癥。而且我發現一個問題,就是怎么想都是簡單的事情,到真做的時候,就變得不那么單純了,各種問題出現,其實干了這么多年,大風浪還是見過的,所以一直不敢說,這個沒問題,那個很一般,這個一定能行(當然打氣,鼓勵別人或自己的時候,還是要說的)。

任何一項技術的使用其實都要根據業務來決定,單純從技術出發的方式來決定某項技術的使用,嗯......    這次的任務的一開始其實想的很簡單,就是使用Kettle 來進行數據的抽取從ORACLE 到 MYSQL ,而問題既不在KETTLE 也不在數據庫的層面,問題的發生還是在非技術的層面,問題的在對CMS 系統的某些表的數據更改的觸發點還不清楚,而如果以不清楚的方式來面對如何撰寫相關的提取語句,則這樣的結果就會引起一個關聯的效應, 1 由于抽取數據的變化點無法找到,所以提取數據的點就無法找到,2 無法找到點,則就無法進行SQL語句的增量的提取 3 無法增量提取數據,開發的同學就無法獲取正確的數據 4  無法有正確的數據則整個項目就要出現問題, 連鎖反應。

解決問題從來不缺技術的方案,而是缺靠譜的和穩定的方案,所以一個方案的出臺,尤其是一個沒有嘗試過的方案,則困難的程度和失敗的可能性都是有的。我們一定要找到一個能從,業務,開發,運維,三方能都承受和認可的方案來進行方案的確定。

既然是某些取數的點和數據的變化還吃不準,怎么通過技術的手段讓變化能被捕捉到,方法很多。

最近我們在開始測試 DATA  PIPLELINE  如果通過DATA PIPLELINE 來做這個數據同步方案,其實事情將變得簡單的多,首先是從底層來進行數據的抽取,同時也能定期的進行刷新等等,所以ORACLE 到 MYSQL 數據的流就像打開水龍頭那么簡單,數據和水一樣要來就來,要關就關。當然有了DATAPIPLE LINE 我們的KETTLE 一大部分的功能都可以不再使用。

但好事其實都需要等,項目不會等,目前的需求還是得傳統的方式獲得變化的數據,并且在一個時間點,這就想到了 物化視圖,通過物化視圖  ON DEMAND  + 時間點的方式,我們就可以很方便的知道我們關切的表在一天當中數據的變化情況。

說道物化視圖,ORACLE 還是傳統數據庫里面最強悍的,其他的都沒有ORACLE 來的功能多,方式多,所以各個數據庫其實也應該學習,SQL SERVER 就在2016 搞出了一個 temporal Table,  雖然可以搞定部分問題,但本身對并發時的事務的BUG 也絕對夠繁忙的系統喝一壺。

話歸整體ORACLE 怎么能滿足我們本次KETTLE 的數據物理的方式提取方式。

首先CMS 系統所在的ORACLE 需要將需要復制的表,建立物化視圖,并且建立物化視圖的日志。并且要求是表和物化視圖都應該有 primary  key,否則就要考慮其他的方法了。

ORACLE物化視圖怎么解決CMS數據同步與來不及的DATA PIPLELINE

貌似問題好像解決了,但其實出其不意的問題就在你覺得沒有問題的時候發生了。

我們是通過 MLOG$_CMS_TEST  里面的ID

來進行判斷數據是否為增量。

ORACLE物化視圖怎么解決CMS數據同步與來不及的DATA PIPLELINE

那問題就來了,

問題

1 數據在操作過程中,會有 I U D 三類的操作,但如果是D 則這條數據應該是被清除了,所以我們在復制的過程中,應該從我們的復制的語句中剔除這個ID。

2  那解決這個問題就用下面的語句,直接將已經刪除的記錄濾除,存在的只有 insert 和 update 兩種語句,那問題貌似解決了,其實呢

ORACLE物化視圖怎么解決CMS數據同步與來不及的DATA PIPLELINE

 3 實際上,沒有,如果這時我在插入數據,因為按照主鍵的方式,則我還插入原來的已經刪除的主鍵,則上面的語句就會出錯,因為新插入的數據被過濾了。

所以忽略業務的方案都不大是一個穩重的方案,這里假設刪除的數據不會再會補,并且也不會按照原來的主鍵進行插入。那上面的方案就不會有問題,否則還有漏洞。

最后,我還是期待用新技術來將某些業務中問題解決掉,快速,安全,穩定,例如我期待的 Data Pipleline 能增加 postgresql 目的端的功能,則那些期待從Oracle ,sql server ,轉移到Postgresql 的項目人員的頭發還能茂盛更長一段時間。

關于ORACLE物化視圖怎么解決CMS數據同步與來不及的DATA PIPLELINE就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

化州市| 洞口县| 厦门市| 雅安市| 石泉县| 宕昌县| 靖西县| 济阳县| 阜南县| 聂拉木县| 津市市| 石狮市| 双流县| 河津市| 疏附县| 柳河县| 临澧县| 陆河县| 腾冲县| 白玉县| 东乌| 玛曲县| 尖扎县| 攀枝花市| 眉山市| 宣恩县| 沅陵县| 济阳县| 襄垣县| 青铜峡市| 阳原县| 阜康市| 马鞍山市| 娄烦县| 微山县| 白山市| 祁东县| 湄潭县| 化德县| 汤原县| 江津市|