自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從一款工具談異構(gòu)遷移評(píng)估那些事

原創(chuàng)
數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
隨著國(guó)產(chǎn)化替換浪潮涌現(xiàn),正有越來越多的企業(yè)在計(jì)劃或正在進(jìn)行數(shù)據(jù)庫(kù)替換工作。異構(gòu)數(shù)據(jù)庫(kù)遷移評(píng)估,成為用戶實(shí)現(xiàn)替換的必備條件之一,也是困擾很多用戶的一點(diǎn)。

近期關(guān)注到云和恩墨發(fā)布的一款工具-SCA,它可以協(xié)助用戶評(píng)估異構(gòu)數(shù)據(jù)庫(kù)遷移。近些年個(gè)人參與了不少異構(gòu)數(shù)據(jù)庫(kù)遷移,自己也曾有想法做個(gè)工具用來評(píng)估異構(gòu)遷移的兼容性及性能等問題。這一工具也給出一種實(shí)現(xiàn),可以對(duì)很多面臨數(shù)據(jù)庫(kù)遷移的用戶帶來現(xiàn)實(shí)參考意義。本文就嘗試從此工具的功能著手,談?wù)劗悩?gòu)數(shù)據(jù)庫(kù)遷移的那些事。

1. SCA 產(chǎn)品功能說明

(1)功能概述

讓我們先來看看發(fā)布的此款工具的功能,下面信息取自部分 SCA 工具官網(wǎng)描述。SCA 全稱 SQL Compatible Analysis,是一款異構(gòu)數(shù)據(jù)庫(kù)遷移前的 SQL 兼容和性能評(píng)估工具??捎糜诋悩?gòu)數(shù)據(jù)遷移前的兼容性評(píng)估,評(píng)估源數(shù)據(jù)庫(kù)中的實(shí)際業(yè)務(wù) SQL 在目標(biāo)庫(kù)中是否存在語法問題,以及評(píng)估兩款異構(gòu)數(shù)據(jù)庫(kù)中的 SQL 實(shí)際執(zhí)行的性能差異。目前此工具支持五種源端數(shù)據(jù)庫(kù),包括:Oracle、MySQL、DB2、PostgreSQL、Informix、SQL Server。此工具執(zhí)行分為四個(gè)步驟,也包含很多執(zhí)行選項(xiàng)。簡(jiǎn)單整理如下:

(2)輸出解讀

這里我們重點(diǎn)看看其輸出報(bào)告,報(bào)告采用網(wǎng)頁(yè)或EXCEL文件的格式,內(nèi)部包含了豐富的信息。下面逐一說明下:?數(shù)據(jù)庫(kù)畫像這部分通過掃描源庫(kù),收集到源數(shù)據(jù)庫(kù)基本信息、性能、對(duì)象、SQL等各類信息。在基本信息部分,又包括有主機(jī)資源層面信息(CPU、MEM、NET)、數(shù)據(jù)庫(kù)信息(版本、角色、架構(gòu)、歸檔狀態(tài)、字符集)。

在性能部分,則包括有多維度數(shù)據(jù)庫(kù)性能指標(biāo),如 Oracle 數(shù)據(jù)庫(kù)就包括有 DB time、CPU time、連接數(shù)、TPS、QPS、Redo Size、邏輯讀,物理讀等。

在對(duì)象部分,則包括各對(duì)象類型統(tǒng)計(jì)、非標(biāo)/保留對(duì)象列表、大對(duì)象統(tǒng)計(jì)以及各對(duì)象明細(xì)的統(tǒng)計(jì)信息。

對(duì)象兼容度匯總

這部分通過對(duì)比源庫(kù)與目標(biāo)庫(kù)的兼容能力,分析出對(duì)象層面的兼容情況,并分類展示。在展示中按照用戶名、對(duì)象類型、狀態(tài)進(jìn)行匯總,展示相關(guān)分類的對(duì)象總數(shù)以及兼容情況。針對(duì)不兼容的對(duì)象,就需要考慮在真正遷移中進(jìn)行修改。

SQL 兼容度匯總

這部分通過對(duì)比源庫(kù)與目標(biāo)庫(kù)的SQL兼容情況,評(píng)估給出SQL兼容(直接兼容、改寫兼容)及不兼容的情況。展示中按照用戶名、程序名、模塊名匯總,展示系統(tǒng)中采集到的所有 SQL,以及這些 SQL 在目標(biāo)庫(kù)支持情況。這些信息對(duì)于后續(xù)評(píng)估改造的工作量評(píng)估,有非常直觀的指導(dǎo)意義。

SQL 改寫規(guī)則

這部分內(nèi)容根據(jù)掃描后的結(jié)果,結(jié)合系統(tǒng)內(nèi)置的改寫規(guī)則,給出該條規(guī)則的觸發(fā)情況,包括該規(guī)則在 SQL 中的命中數(shù)量及為規(guī)則匹配的 SQL 數(shù)量。

SQL 復(fù)雜度分布

這部分則是通過復(fù)雜度評(píng)估標(biāo)準(zhǔn),判斷出復(fù)雜 SQL 的分布情況。這些復(fù)雜的 SQL 也是在遷移過后需要重點(diǎn)關(guān)注性能問題,這樣可以有效避免性能問題可能導(dǎo)致的業(yè)務(wù)故障。目前復(fù)雜度的評(píng)判標(biāo)準(zhǔn)包括有表關(guān)聯(lián)的數(shù)量、Connect By語法使用、自定義函數(shù)數(shù)量、函數(shù)執(zhí)行耗時(shí)。針對(duì)每條SQL的復(fù)雜度都會(huì)按照上述標(biāo)準(zhǔn)進(jìn)行匯總評(píng)估,給出SQL復(fù)雜度。

SQL 性能對(duì)比

這部分是在結(jié)構(gòu)、數(shù)據(jù)遷移完畢后,真實(shí)執(zhí)行SQL,采集源端和目標(biāo)端的執(zhí)行性能進(jìn)行比較。按照?qǐng)?zhí)行性能的總體情況及分列情況的展示。其中總體部分,可以簡(jiǎn)單評(píng)估下遷移完成后在目標(biāo)庫(kù)的整體運(yùn)行狀態(tài),包括性能有提升的SQL比例、性能下降的SQL比例、不支持的SQL比例等。

在分列的部分則可以按照工作負(fù)載、SQL、超時(shí)維度展示具體的TOP SQL的情況,包括此SQL的性能變化情況及對(duì)整體負(fù)載的影響情況。這一能力很贊,可以篩選出影響大的SQL,優(yōu)先優(yōu)化解決。

此外針對(duì)每條SQL可以詳細(xì)展開,包括SQL文本、綁定變量、執(zhí)行計(jì)劃、執(zhí)行詳情、關(guān)聯(lián)對(duì)象、統(tǒng)計(jì)信息等。

2. 異構(gòu)遷移評(píng)估的若干難點(diǎn)

SCA,這一工具給我們異構(gòu)數(shù)據(jù)庫(kù)遷移的一個(gè)很好的工程化實(shí)踐范例。那這一工具的實(shí)現(xiàn)功能上,也反映出遷移評(píng)估的若干難點(diǎn)問題。這些問題也正是困擾著用戶如何快速替換一款數(shù)據(jù)庫(kù)。這些難點(diǎn)問題,簡(jiǎn)單整理如下:

(1)全面詳實(shí)地收集源庫(kù)各類信息

在我們談異構(gòu)遷移之前,首要問題就是如何全面詳實(shí)地收集源端庫(kù)的各類信息。SCA 工具幫我們收集了如硬件、操作系統(tǒng)、數(shù)據(jù)庫(kù)基本信息、對(duì)象、SQL類的信息,但從遷移角度來說這些信息還是不夠的。之前筆者也曾經(jīng)寫過一個(gè)模板,方便用收集源庫(kù)的信息,具體參見“調(diào)研模板”,這也是結(jié)合之前工作經(jīng)歷整理所得。但在實(shí)際使用中,收集效果往往大打折扣,原因一方面是因?yàn)楹芏嘈畔⒂脩粢膊磺宄硪环矫嬉彩怯X得填寫繁瑣、不愿意花精力填寫。但按照以往的經(jīng)驗(yàn),這個(gè)過程是值得的。本人就曾經(jīng)遇到多次因?yàn)槭占畔⒉煌暾麑?dǎo)致遷移方案失敗,甚至到上線之前才知悉,再選擇其他方案代價(jià)很大。那么簡(jiǎn)化這一過程的最好方式就是工具化、自動(dòng)化,類似 SCA 這樣的工具能夠幫助用戶極大簡(jiǎn)化這一過程。

(2)對(duì)目標(biāo)數(shù)據(jù)庫(kù)能力有充分理解

異構(gòu)數(shù)據(jù)庫(kù)遷移,一方面要盡量詳實(shí)地了解源數(shù)據(jù)庫(kù)的情況,另一方面也要對(duì)目標(biāo)數(shù)據(jù)庫(kù)的能力有個(gè)全面理解。特別是目標(biāo)庫(kù)如果采用的新架構(gòu)、新技術(shù)等,與源數(shù)據(jù)庫(kù)通常不能簡(jiǎn)單一一比對(duì)。例如之前源數(shù)據(jù)庫(kù)采用集中式架構(gòu)、目標(biāo)數(shù)據(jù)庫(kù)采用分布式架構(gòu),那么原有很多源庫(kù)的能力就不能簡(jiǎn)單照搬過來,需要新的做法、甚至是在應(yīng)用、架構(gòu)層面做更多的考慮。

(3)正確理解“兼容”的概念

很多用戶理解兼容,是一個(gè)很美好的狀態(tài)。在應(yīng)用不需要任何修改的情況下,就可以全面照搬過來。其實(shí)兼容是個(gè)很復(fù)雜的事,本人之前也寫過一篇關(guān)于兼容性的文章,參考“Oracle兼容性面面觀”。僅就 SQL 的兼容性問題,就需要一方面考慮語法、語義的兼容情況,一方面考慮不同的兼容方式(完全兼容、等價(jià)兼容),還要考慮如性能表現(xiàn)、異常處理等情況。SCA 工具這方面做的不錯(cuò),給出了不同兼容的統(tǒng)計(jì)及性能數(shù)據(jù)的對(duì)比。

(4)復(fù)雜對(duì)象和語句的遷移問題

很難有兩個(gè)數(shù)據(jù)庫(kù)是可以完美兼容適配的,針對(duì)源庫(kù)那些復(fù)雜對(duì)象和語句,如不能在目標(biāo)庫(kù)上有對(duì)等實(shí)現(xiàn)也要給出必要的解決路徑。從對(duì)象來看,如庫(kù)內(nèi)計(jì)算(包、存儲(chǔ)過程、觸發(fā)器、函數(shù))、視圖(含物化視圖)、序列(自增類型)、特殊字段(大對(duì)象、JSON)等,是需要考慮目標(biāo)庫(kù)的實(shí)現(xiàn)機(jī)理和能力及是否有其他替代方案。例如很多存儲(chǔ)過程,就可以轉(zhuǎn)化為外置過程來解決。從SQL語句來看,復(fù)雜SQL的處理是容易出現(xiàn)問題的,SCA 工具也意識(shí)到這點(diǎn)給出了專項(xiàng)的統(tǒng)計(jì)。即使在目標(biāo)庫(kù)可以實(shí)現(xiàn),也建議盡量簡(jiǎn)化語句邏輯,避免潛在的執(zhí)行風(fēng)險(xiǎn)。

(5)從“仿真”角度評(píng)估遷移結(jié)果

如何真實(shí)地還原源庫(kù)的工作負(fù)載,在目標(biāo)庫(kù)上進(jìn)行仿真重演,進(jìn)而評(píng)估遷移后的結(jié)果,這是最為準(zhǔn)確的評(píng)估。這里不僅是單一對(duì)象、語句的遷移評(píng)估,而是真實(shí)的、帶有業(yè)務(wù)負(fù)載的、有數(shù)據(jù)質(zhì)量差異(甚至是錯(cuò)誤數(shù)據(jù))下的測(cè)試結(jié)果,這樣才能真實(shí)反映出評(píng)估后的結(jié)果。很多時(shí)候,單一對(duì)象或語句都是可以很“完美”的跑出結(jié)果,但是放在真實(shí)環(huán)境下就會(huì)出現(xiàn)各種問題。其結(jié)果的反饋,可以通過與源庫(kù)的結(jié)果對(duì)比來進(jìn)行評(píng)估。有的時(shí)候往往是一些很細(xì)節(jié)的地方非常容易出現(xiàn)問題,例如空值的處理、精度問題、時(shí)區(qū)問題等。

寫在最后

隨著國(guó)產(chǎn)化替換浪潮涌現(xiàn),正有越來越多的企業(yè)在計(jì)劃或正在進(jìn)行數(shù)據(jù)庫(kù)替換工作。異構(gòu)數(shù)據(jù)庫(kù)遷移評(píng)估,成為用戶實(shí)現(xiàn)替換的必備條件之一,也是困擾很多用戶的一點(diǎn)。SCA 工具做了一個(gè)很好的嘗試,大大方便了用戶的遷移評(píng)估工作,有效地降低了遷移成本。國(guó)內(nèi)有很多廠商也有類似的實(shí)現(xiàn),通過獨(dú)立的小工具完成此類評(píng)估。從產(chǎn)品角度來講,也是一個(gè)不錯(cuò)的“引流”產(chǎn)品,并吸引用戶最終選擇自家數(shù)據(jù)庫(kù)。在這里也希望各廠商能夠更加關(guān)注這一能力的構(gòu)建,加速用戶落地實(shí)踐。

責(zé)任編輯:姜華 來源: 韓鋒頻道
相關(guān)推薦

2020-07-29 08:14:59

云計(jì)算云遷移IT

2018-11-14 08:14:59

工具云遷移云計(jì)算

2015-03-27 15:07:55

云計(jì)算IaaS平臺(tái)Docker

2012-03-26 21:47:23

蘋果

2024-04-02 07:32:32

數(shù)據(jù)庫(kù)遷移工具異構(gòu)數(shù)據(jù)庫(kù)

2023-09-14 08:39:45

2021-01-27 13:16:39

ScreenLinux命令

2021-02-16 10:58:50

ScreenLinux命令

2022-08-15 08:15:07

Logseq開源

2016-03-29 14:54:36

2020-02-17 07:20:22

SSH遠(yuǎn)程連接工具Linux

2020-05-28 09:33:07

Web調(diào)試代理工具Fiddler

2015-11-16 14:27:03

2019-11-11 08:00:00

Doppler遠(yuǎn)程監(jiān)測(cè)工具Linux

2018-08-01 09:00:00

測(cè)試工具負(fù)載測(cè)試性能測(cè)試

2011-11-30 16:31:00

TimZon

2019-10-28 15:14:53

Python腳本語言Java

2024-02-21 23:40:56

2021-06-09 09:52:29

開源Pyroscope代碼

2020-12-03 09:33:58

前端開發(fā)工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)