幫助實(shí)現(xiàn)數(shù)據(jù)完整性的六個(gè)數(shù)據(jù)庫遷移工具
譯文數(shù)據(jù)是種需要認(rèn)真對待的新通貨!所以在看到拉米·馬雷克(Rami Malek) 在美劇《黑客軍團(tuán)》(Mr. Robot)中運(yùn)用數(shù)據(jù)力量后,我意識到了為什么數(shù)據(jù)完整性如此重要。尤其是當(dāng)數(shù)據(jù)庫在平臺間遷移,數(shù)據(jù)完整性和安全性更是重中之重。
驅(qū)動(dòng)數(shù)據(jù)庫遷移的正面因素包括更低成本、更好特性和更佳擴(kuò)展能力等等。然而,因?yàn)楦嘟M件可能導(dǎo)致數(shù)據(jù)受損,數(shù)據(jù)的安全性也就至關(guān)重要。以手機(jī)輸入法這樣一個(gè)簡單的應(yīng)用程序?yàn)槔?,谷歌自帶的輸入法比那些帶有自定義皮膚或圖片等功能的第三方應(yīng)用程序更安全。
而遷移過程也并非百分百安全,你也可能丟失重要的數(shù)據(jù)。一份報(bào)告顯示,基礎(chǔ)設(shè)施安全性有43%的部分是云遷移最重大的挑戰(zhàn)之一。但是,有一種方法可以確保完全的數(shù)據(jù)完整性和合規(guī)性,即“數(shù)據(jù)庫遷移工具”。
在這里,我們將討論六種這樣的數(shù)據(jù)庫遷移工具。
但是,在此之前,讓我們先來了解一下數(shù)據(jù)遷移的核心!
什么是數(shù)據(jù)庫遷移?
數(shù)據(jù)庫遷移就像是把你的房子連同里面的東西一起搬到另一個(gè)地方!因此,如果不小心看管數(shù)據(jù),就可能有一些信息丟失。
數(shù)據(jù)庫遷移是一個(gè)復(fù)雜的過程,包括:
- 數(shù)據(jù)評估
- 腳本轉(zhuǎn)換
- 模式轉(zhuǎn)換以匹配目標(biāo)平臺語法
- 數(shù)據(jù)遷移
- 功能測試
- 性能調(diào)整
那么,來看看下一個(gè)讓人思考的問題!
為什么需要數(shù)據(jù)庫遷移?
企業(yè)不斷創(chuàng)新,這也是他們能快速適應(yīng)市場變化的唯一途徑。然而,不創(chuàng)新并遷移到高級平臺,要達(dá)到這種業(yè)務(wù)敏捷性并不容易。因此,以下是數(shù)據(jù)庫遷移的一些原因:
成本優(yōu)化
由于存在間接成本,使用遺留數(shù)據(jù)庫可能會(huì)價(jià)格高昂。例如,Evernote是最受歡迎的筆記本應(yīng)用程序之一,超過2億用戶的間接成本不斷在數(shù)據(jù)庫管理上累加。
Evernote使用了一種利用遺留基礎(chǔ)設(shè)施和私有云服務(wù)的混合方法,但還不足以滿足其擴(kuò)展需求。因此,他們將數(shù)據(jù)庫遷移到谷歌的公有云服務(wù),以降低運(yùn)營成本并為用戶提供更大的存儲容量。不過,成本并非驅(qū)動(dòng)數(shù)據(jù)庫遷移的唯一因素。
技術(shù)升級
升級基礎(chǔ)設(shè)施是必不可少的業(yè)務(wù)活動(dòng)之一。堅(jiān)持遺留的基礎(chǔ)設(shè)施就像在OLED電視時(shí)代使用顯像管電視一樣。對于遺留數(shù)據(jù)庫系統(tǒng),你必須同時(shí)對運(yùn)行成本和質(zhì)量做出妥協(xié)。
例如,三星電子(Samsung Electronics)的認(rèn)證和授權(quán)服務(wù)激增,超過11億客戶。因此,這家電子巨頭決定將他們的數(shù)據(jù)庫從傳統(tǒng)的甲骨文互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)解決方案升級到亞馬遜Aurora。除了成本考慮和技術(shù)升級外,安全性對業(yè)務(wù)連續(xù)性也至關(guān)重要,影響著數(shù)據(jù)庫遷移。
安全需求
數(shù)據(jù)庫比你想象的更容易受到攻擊。據(jù)《華爾街日報(bào)》研究,擁有與客戶忠誠度計(jì)劃相關(guān)的大型數(shù)據(jù)庫的零售行業(yè)很容易受到攻擊,只有62%的企業(yè)做好了應(yīng)對網(wǎng)絡(luò)攻擊的準(zhǔn)備。
因此,安全顧慮是影響數(shù)據(jù)庫遷移的最重要因素之一。但是,它也讓你的組織在整個(gè)遷移過程中保持?jǐn)?shù)據(jù)的完整性和合規(guī)性。
以O(shè)racle數(shù)據(jù)庫遷移為例,這種遷移通過可插拔數(shù)據(jù)庫幫助提升安全性、資源管理和成本優(yōu)化。此外,正如新視野大學(xué)(New Horizon University)的一位Oracle高級講師所指出的,它使得類別和單獨(dú)條目的組織速度更快。
在熟悉了驅(qū)動(dòng)數(shù)據(jù)庫遷移的原因后,我們將列舉一些在遷移過程中可以提供幫助的工具。
1.Dbmate
Dbmate是一個(gè)數(shù)據(jù)庫遷移工具,可幫助實(shí)現(xiàn)架構(gòu)與多個(gè)服務(wù)器保持同步。它支持Go、Node.js、Python、Ruby和PHP等編程語言。因此,如果您計(jì)劃使用不同的語言為你的應(yīng)用程序編寫多個(gè)服務(wù),它將大有幫助。例如,如果你想利用基于不同語言的前端和后端框架,Dbmate是適合的選擇。
2.Apache NiFi
如果你正在尋找的是一個(gè)能夠?qū)φ麄€(gè)過程提供更多控制、監(jiān)視和持續(xù)反饋的數(shù)據(jù)庫遷移工具,Apache NiFi是上佳選擇。它提供了一個(gè)與數(shù)據(jù)庫服務(wù)器連接的Web接口,方便了數(shù)據(jù)攝取、通過可擴(kuò)展有向圖、轉(zhuǎn)換、提取等進(jìn)路由。
選擇Apache NiFi的優(yōu)點(diǎn)是它的安全特性,比如多租戶授權(quán)以及SSL、SSH、HTTPS和加密內(nèi)容。
3.Ladder
如果你正在尋找的是MySQL數(shù)據(jù)庫的開源遷移工具,那么支持PHP的Ladder是一個(gè)不錯(cuò)選擇。通過將數(shù)據(jù)庫和源代碼中的所有更改集成在一起,可對其實(shí)現(xiàn)跟蹤。使用Ladder可以輕松添加并刪除alt列或索引。
4.Phinx
另一個(gè)以PHP為核心的數(shù)據(jù)庫遷移工具是Phinx。它提供基于PHP編碼的應(yīng)用程序編程接口(API)。因此,開發(fā)人員不需要編寫SQL腳本。它在短時(shí)間內(nèi)便可執(zhí)行遷移,并且易于集成到多個(gè)應(yīng)用程序中。
5.Flyway
Flyway是另一個(gè)開源工具,它支持Oracle、SQL Server、DB2和MySQL的數(shù)據(jù)庫遷移。它提供了一個(gè)命令行API以支持簡單易用的命令,比如遷移數(shù)據(jù)、清理數(shù)據(jù)、驗(yàn)證數(shù)據(jù)、撤消更改、創(chuàng)建基線和修復(fù)。
6.TiDB
如果你的企業(yè)在運(yùn)營中使用實(shí)時(shí)分析,選擇TiDB更為理想。TiDB是一款混合事務(wù)/分析處理(HTAP)的數(shù)據(jù)庫,支持OLTP和OLAP負(fù)載遷移。
這些架構(gòu)使用IMC(內(nèi)存計(jì)算)技術(shù),咨詢公司Gartner表示,這項(xiàng)技術(shù)將分析數(shù)據(jù)與事務(wù)數(shù)據(jù)存儲在同一數(shù)據(jù)庫上。此外,TiDB還提供了一個(gè)工具來支持將數(shù)據(jù)從MySQL/MariaDB遷移到其數(shù)據(jù)庫服務(wù)。
結(jié)論
雖然有許多不同的數(shù)據(jù)庫遷移工具可供使用,但具體用哪個(gè)取決于編程語言的種類、成本和特定的需求。例如,像Phinx這樣的開源工具對于PHP相關(guān)的數(shù)據(jù)庫遷移是非常友好,但對于使用實(shí)時(shí)分析的組織就可能不是完美解決方案。因此,最重要的是要根據(jù)你的數(shù)據(jù)庫管理需要來選擇合適的工具。
譯者介紹
楊曉娟,51CTO社區(qū)編輯,西安電子科技大學(xué)計(jì)算機(jī)專業(yè)碩士研究生,資深研發(fā)工程師,信息系統(tǒng)項(xiàng)目管理師,擁有近20年Java開發(fā)經(jīng)驗(yàn)。分別在NEC、甲骨文、英方從事數(shù)據(jù)存儲、Oracle數(shù)據(jù)庫的數(shù)據(jù)遷移以及同構(gòu)/異構(gòu)數(shù)據(jù)庫復(fù)制等研發(fā)工作,尤其在數(shù)據(jù)庫、數(shù)據(jù)編碼等方面有深入鉆研和了解。
原文標(biāo)題:6 Database Migration Tools For Complete Data Integrity & More,作者:Hiren Dhaduk