当前位置: 首页 > 科技观察

如何避免数据迁移陷阱

时间:2023-03-20 23:14:57 科技观察

想要实现数据基础架构现代化并将Hadoop迁移到云端?以下是组织在迁移之前需要问的五个问题:1.迁移了多少数据?有几种方法可以将少量数据传输到云平台,尤其是当数据是静态的且不会更改时。风险在于认为相同的方法适用于大量数据,特别是如果数据在移动到云时发生变化。如果数据集很大而且是静态的,组织需要知道在开始迁移之前是否有足够的时间和带宽,或者是否有足够的时间将其加载到批量传输设备(例如AWSSnowball或Azuredatabox)上,将设备运送到云计算服务提供商进行上传。迁移大量不断变化的数据时,可能会出现真正的挑战。在这种情况下,适用于小型数据集的方法将不会有效,并可能面临系统停机,从而导致严重的业务中断和数据迁移项目失败。选择通过网络传输大量数据的组织通常不会考虑为其他业务流程共享此网络资源。即使使用专用网络通道也需要考虑这一点,因为组织通常不会在不影响其他用户和流程的情况下使用所有带宽进行数据迁移。组织需要确保有适当的机制来确保数据得到充分控制,以免对业务产生不利影响。在许多情况下,在没有控制的情况下开始移动数据的组织最终会影响其他业务运营,并且必须停止迁移并在工作日结束时重新启动。2.在迁移过程中,如何保持源和目标之间的数据一致?当组织需要迁移不断变化的数据(无论是接收新数据还是更新或删除现有数据)时,有多种选择。组织可以在迁移完成之前冻结源数据,或者允许数据在目标位置继续更改。在这种情况下,您需要弄清楚如何考虑这些更改,以免在迁移完成后得到严重过时的副本。为了防止数据源和目标之间的数据不一致,需要找到一种方法来识别和迁移可能发生的任何更改。一种典型的方法是执行多次迭代以重新扫描数据集并捕获自上次迭代以来的变化。这种方法允许组织迭代到一致的状态。但是,如果一个组织的数据量足够大并且变化频繁,它可能永远赶不上变化的步伐。这是一个相当复杂的问题,很多时候组织并没有真正预料到这将对其资源和业务产生的全面影响。另一种选择是在源头冻结数据以防止任何更改。这无疑使迁移任务变得更加容易。使用这种方法,上传到新位置的数据副本,无论是通过网络连接还是通过批量传输设备,都与源中存在的数据一致,因为在迁移期间不允许更改。这种方法的问题在于它可能导致系统停机和可能的业务中断。这些系统对业务至关重要,依赖于它们的业务流程通常无法尝试关闭它们或长时间冻结它们。使用批量传输设备,可能需要数天到数周才能完成传输。如果通过专用网络连接传输数据,则取决于可用的网络带宽。为了通过1GB的网络链接移动1PB的数据,需要90多天的时间。对于绝大多数组织而言,数天、数周或数月的停机和业务中断是不可接受的。3.如何处理人工处理或迁移过程中的任何中断?如果组织停止数据迁移或发生中断,它将如何根据确切知道有多少数据已正确迁移来确定恢复点。根据所使用的工具,是否有可能从那时起恢复工作,或者组织是否必须有效地从头开始重新启动流程?这是一个复杂的问题,如果组织必须意外中断并继续迁移,手动处理过程会带来巨大的风险和成本。任何手动同步数据的尝试都是资源密集型、成本高且容易出错的。尝试在两种环境中手动执行此操作很困难,如果您尝试在多个环境中执行此操作会更加复杂。在Hadoop方面拥有深厚技术专长的组织将采用DistCp(分布式副本),并希望利用这个免费的开源工具来开发他们自己的自定义迁移脚本。但是,DistCp是为集群间/集群内复制而设计的,而不是为大规模数据迁移而设计的。DistCp只支持特定时间点的单向数据复制。它不适应不断变化的数据,并且需要对数据源进行多次扫描以了解运行之间所做的更改。这些限制带来了许多复杂情况。组织最好使用新的云计算环境,将资源投入开发和创新,而不是构建自己的迁移解决方案。4.您是否需要同时支持数据源和目标变更的混合云环境?混合云部署正变得越来越流行。这可能需要将公共云与私有云或组织的本地基础设施一起使用。对于真正的混合云场景,更改必须能够在任何地方发生,并且它们的更改需要传播到其他系统。仅考虑单向数据迁移的方法不支持真正的混合云场景,因为它们需要数据源和目标之间的链接。当组织跨两个以上端点迁移数据时,这会变得更加复杂。我们看到越来越多的分布式环境,不仅有一个数据源和一个目的地,还有多个云计算区域用于冗余目的,甚至使用多个云计算提供商的服务。为避免陷入单点解决方案,组织需要能够跨多个端点管理实时数据。这种情况需要一种解决方案,该解决方案可以跨多个环境复制更改并解决任何潜在的数据更改冲突(最好在冲突发生之前)。5.存在哪些导致数据引力驱动的应用程序依赖性?数据引力是指数据吸引应用程序、服务和其他数据的能力。数据量越大,吸引更多应用程序和服务所需的引力就越大。数据引力通常还会驱动应用程序之间的依赖关系。例如,可能有一个应用程序将另一个应用程序的输出作为输入,而后者又可以向更下游的其他应用程序提供数据。设计给定应用程序的业务部门或用户将知道他们的输入是什么,但他们可能不知道每个人都在使用他们创建的数据。很容易错过这种依赖性。当一个应用程序被移动到云端时,它生成的结果数据将不会同步返回到本地环境,并且其他工作流中的其他应用程序可能突然无法访问当前数据。许多组织在尝试将数据迁移到云端时都失败了。回答上面这五个问题可能会导致成功迁移或陷入数据迁移陷阱之间的差异,这可能会花费您的组织时间和金钱,并影响业务运营。