本文由 Gideon(AI)翻译自英文原版。
什么是"数据迁移"?
每当我谈到数据迁移,我总会联想到搬家。用搬家来理解数据迁移——如果你要搬到一个新地方,你会怎么做?数据迁移也是同样的道理:你要做的就是把数据从一个系统转移到另一个系统,就像搬家一样。你把旧房子里的所有东西打包,然后搬到新家。现在麻烦来了:你的旧房子可能比新家小得多,或者你的新地方是一套四居室,而你之前住的是一居室公寓。在这种情况下,我们该怎么办呢?
到目前为止,我已经做过几次数据迁移了,每一次都有相似之处,但每次又都不一样。数据迁移有几种类型,我喜欢用搬家来比喻向别人解释数据迁移,这里我也会沿用这个比喻。希望这能帮助你更好地理解数据迁移。
在两个相似系统之间迁移 链接到标题
在两个相似系统之间迁移数据相当直接,就像从你现在住的公寓楼三楼搬到四楼,户型完全一样,你清楚地知道每样东西该放在哪里,跟之前一样的位置,哈哈。当然这里假设你不想重新布置空间——重新布置应该在把所有东西搬进来之后再做!这就是我们所说的"直接迁移"(lift and shift)。
在两个相似但大小不同的系统之间迁移 链接到标题
这仍然是直接迁移,但这种情况下,你无法把旧地方的所有东西都带到新地方,所以你需要处理掉一些东西——要么卖掉旧家具,要么捐给二手店,剩下放不下的东西,你可以考虑存入储存仓库。数据迁移也是如此,你可能会把最相关的、正在使用的数据迁移到新环境中;如果你真的想保留从 1900 年开始的所有数据,那么我们可以把它放入数据仓库,只把支撑性数据保留在新系统中。
这样做的好处是:1)节省当前系统的存储空间;2)系统中数据量减少,数据检索效率更高;3)数据结构更易于维护。
有了数据仓库,你仍然可以保存所有数据,可以追溯历史数据并生成报告;如果你有兴趣进行机器学习或训练自己的 AI,那些数据仍然可以使用,而且都集中在一处,更易于访问。
在两个不同系统之间迁移 链接到标题
这才是真正棘手的情况。就像你从公寓搬到房子,或者从房子搬到公寓一样,整个平面布局都不一样,你需要重新规划空间,想清楚每样东西该放在哪里。数据迁移也是同样的道理。当你把数据从一个系统迁移到另一个完全不同的系统时,你不仅需要考虑数据本身,还需要考虑功能需求。
所有这些都指向业务流程、业务流程、业务流程——重要的事情说三遍。人们不一定清楚自己想要保留哪些功能,他们会告诉你想要一切跟以前一样,而我也有责任提醒他们:“如果我们可以做得更好,为什么不呢?你们的痛点是什么?“解决方案可以留到后面再想。我始终相信,关键在于获取需求、理解什么才是真正能帮助他们的,然后我们才能思考解决方案。解决问题的方式有很多,只要你知道问题是什么。:)
在所有这些复杂情况中,数据是任何系统的核心——数据支撑着你的流程,数据呈现在你的前端网页上,总而言之,没有数据,系统只是一个空壳。这里最关键的是,当数据来自不同系统时,你如何管理它们。在旧系统中,数据支撑着一套不同的业务流程,并因此而存在。在新系统中,我们有一套全新的流程需要支撑,因此数据结构/数据模型当然也需要相应调整。新的数据模型不仅需要能够承载来自旧系统的数据,还需要在新系统中有意义。这绝非易事。你会不断发现自己要处理旧系统中 4 到 5 张需要合并成新系统中 1 张表的情况,或者需要将旧系统的 2 张表合并后再拆分成新系统中 3 张不同的表。这要求你彻底理解旧系统的每一个细节,同时清楚地预见新系统未来的走向。作为数据架构师,你需要让数据愿景与项目的方方面面保持一致。
在两个不同且存储容量不同的系统之间迁移 链接到标题
正如前面提到的,在两个不同系统之间迁移已经不容易了,如果再加上不同的存储容量,你就真的需要从杂草中挑出面包和黄油了。我总是对人们说,想想那些你不可或缺的东西。虽然把所有东西都打包带走更省事,但如果你要从三居室的房子搬到公寓,想把所有东西都带过去几乎是不可能的——除非你有一个大储藏室。带上你的必需品!
总结 链接到标题
数据模型和数据库的全部意义在于帮助你在未来更轻松地检索数据,并以更高效的方式保存数据。根据你在前端如何展示数据,或者你希望如何检索数据,你会相应地决定如何在后端存储数据。换个方式来说,当你看《怦然心动的人生整理魔法》时,你会注意到近藤麻理惠以一种便于检索、清晰可见的方式整理物品。老实说,现在想想,整个系统迁移基本上就是用近藤麻理惠的方法整理你的家。最终,你将拥有一个令你心动的系统!
我喜欢与数据打交道,它带来了各种各样的挑战,但我一如既往地热爱挑战。:) 与数据打交道不仅要求你理解数据本身,更重要的是,你需要具备从数以亿计的数据中挖掘出最重要信息的能力;同时还需要能够将这些数据有意义地呈现给用户。脱离上下文的数据只是无用的信息。
结语 链接到标题
总体而言,我认为架构师就像一名产品经理,系统架构师负责设计系统,而系统就是你的产品。因此,作为架构师,我真心认为你需要理解各种角度的问题,你不需要对所有事情了解得面面俱到,但你应该有一个大致的概念。哈哈。
架构愉快!
关于作者 链接到标题
我是靳璇,是一名系统架构师,帮助清理和修复各种问题。所有那些修复和帮助他人的经历造就了今天的我。我的超能力是快速学习新事物,既能通过动手实践,也能通过阅读文档来学习。我还运营着一个充满 Salesforce 热情的社群,在那里我回答成员的问题,并鼓励大家互相帮助。