数据是种需要认真对待的新通货!所以在看到拉米·马雷克(Rami Malek) 在美剧《黑客军团》(Mr. Robot)中运用数据力量后,我意识到了为什么数据完整性如此重要。尤其是当数据库在平台间迁移,数据完整性和安全性更是重中之重。
驱动数据库迁移的正面因素包括更低成本、更好特性和更佳扩展能力等等。然而,因为更多组件可能导致数据受损,数据的安全性也就至关重要。以手机输入法这样一个简单的应用程序为例,谷歌自带的输入法比那些带有自定义皮肤或图片等功能的第三方应用程序更安全。
而迁移过程也并非百分百安全,你也可能丢失重要的数据。一份报告显示,基础设施安全性有43%的部分是云迁移最重大的挑战之一。但是,有一种方法可以确保完全的数据完整性和合规性,即“数据库迁移工具”。
在这里,我们将讨论六种这样的数据库迁移工具。
但是,在此之前,让我们先来了解一下数据迁移的核心!
什么是数据库迁移?
数据库迁移就像是把你的房子连同里面的东西一起搬到另一个地方!因此,如果不小心看管数据,就可能有一些信息丢失。
数据库迁移是一个复杂的过程,包括:
数据评估
脚本转换
模式转换以匹配目标平台语法
数据迁移
功能测试
性能调整
那么,来看看下一个让人思考的问题!
为什么需要数据库迁移?
企业不断创新,这也是他们能快速适应市场变化的唯一途径。然而,不创新并迁移到高级平台,要达到这种业务敏捷性并不容易。因此,以下是数据库迁移的一些原因:
成本优化
由于存在间接成本,使用遗留数据库可能会价格高昂。例如,Evernote是最受欢迎的笔记本应用程序之一,超过2亿用户的间接成本不断在数据库管理上累加。
Evernote使用了一种利用遗留基础设施和私有云服务的混合方法,但还不足以满足其扩展需求。因此,他们将数据库迁移到谷歌的公有云服务,以降低运营成本并为用户提供更大的存储容量。不过,成本并非驱动数据库迁移的唯一因素。
技术升级
升级基础设施是必不可少的业务活动之一。坚持遗留的基础设施就像在OLED电视时代使用显像管电视一样。对于遗留数据库系统,你必须同时对运行成本和质量做出妥协。
例如,三星电子(Samsung Electronics)的认证和授权服务激增,超过11亿客户。因此,这家电子巨头决定将他们的数据库从传统的甲骨文互联网数据中心(IDC)解决方案升级到亚马逊Aurora。除了成本考虑和技术升级外,安全性对业务连续性也至关重要,影响着数据库迁移。
安全需求
数据库比你想象的更容易受到攻击。据《华尔街日报》研究,拥有与客户忠诚度计划相关的大型数据库的零售行业很容易受到攻击,只有62%的企业做好了应对网络攻击的准备。
因此,安全顾虑是影响数据库迁移的最重要因素之一。但是,它也让你的组织在整个迁移过程中保持数据的完整性和合规性。
以Oracle数据库迁移为例,这种迁移通过可插拔数据库帮助提升安全性、资源管理和成本优化。此外,正如新视野大学(New Horizon University)的一位Oracle高级讲师所指出的,它使得类别和单独条目的组织速度更快。
在熟悉了驱动数据库迁移的原因后,我们将列举一些在迁移过程中可以提供帮助的工具。
1.Dbmate
Dbmate是一个数据库迁移工具,可帮助实现架构与多个服务器保持同步。它支持Go、Node.js、Python、Ruby和PHP等编程语言。因此,如果您计划使用不同的语言为你的应用程序编写多个服务,它将大有帮助。例如,如果你想利用基于不同语言的前端和后端框架,Dbmate是适合的选择。
2.Apache NiFi
如果你正在寻找的是一个能够对整个过程提供更多控制、监视和持续反馈的数据库迁移工具,Apache NiFi是上佳选择。它提供了一个与数据库服务器连接的Web接口,方便了数据摄取、通过可扩展有向图、转换、提取等进路由。
选择Apache NiFi的优点是它的安全特性,比如多租户授权以及SSL、SSH、HTTPS和加密内容。
3.Ladder
如果你正在寻找的是MySQL数据库的开源迁移工具,那么支持PHP的Ladder是一个不错选择。通过将数据库和源代码中的所有更改集成在一起,可对其实现跟踪。使用Ladder可以轻松添加并删除alt列或索引。
4.Phinx
另一个以PHP为核心的数据库迁移工具是Phinx。它提供基于PHP编码的应用程序编程接口(API)。因此,开发人员不需要编写SQL脚本。它在短时间内便可执行迁移,并且易于集成到多个应用程序中。
5.Flyway
Flyway是另一个开源工具,它支持Oracle、SQL Server、DB2和MySQL的数据库迁移。它提供了一个命令行API以支持简单易用的命令,比如迁移数据、清理数据、验证数据、撤消更改、创建基线和修复。
6.TiDB
如果你的企业在运营中使用实时分析,选择TiDB更为理想。TiDB是一款混合事务/分析处理(HTAP)的数据库,支持OLTP和OLAP负载迁移。
这些架构使用IMC(内存计算)技术,咨询公司Gartner表示,这项技术将分析数据与事务数据存储在同一数据库上。此外,TiDB还提供了一个工具来支持将数据从MySQL/MariaDB迁移到其数据库服务。
结论
虽然有许多不同的数据库迁移工具可供使用,但具体用哪个取决于编程语言的种类、成本和特定的需求。例如,像Phinx这样的开源工具对于PHP相关的数据库迁移是非常友好,但对于使用实时分析的组织就可能不是完美解决方案。因此,最重要的是要根据你的数据库管理需要来选择合适的工具。
译者介绍
杨晓娟,51CTO社区编辑,西安电子科技大学计算机专业硕士研究生,资深研发工程师,信息系统项目管理师,拥有近20年Java开发经验。分别在NEC、甲骨文、英方从事数据存储、Oracle数据库的数据迁移以及同构/异构数据库复制等研发工作,尤其在数据库、数据编码等方面有深入钻研和了解。
原文标题:6 Database Migration Tools For Complete Data Integrity & More,作者:Hiren Dhaduk