个人觉得主要是思维模式的转变,毕竟分布式数据库就目前而言,在事务而言,采用的分布式事务,还有就是分布式数据库主要有调度节点,计算节点和存储节点构成,这个跟传统的其实是个很大的差别,对于问题的排查可能需要更加准确的认知,还有一些分布式数据库的特性,分布式数据库的使用习惯,跟传统的有很大差别,比方说一件扩容,弹性扩展,在线迁移,还有就是高可用等,其次是传统意义上的备份方式就不是很实用了。
至于传统数据库的改造,说到底就是业务的改变,简单点而言,无论是传统数据库还是分布式数据库说到底的本质上而言是存储数据,并进行相应的业务逻辑处理,存储数据库大体是一致的,对于业务的处理部分就会牵扯到事务了,乃至于性能响应了,这部分的难点不言而喻,事务的一致性跟性能的可用性就是一个取舍,当然也可以使用事务的最终一致性来解决,而这个也是常规的分布式数据库所推荐的方案。
首先从业务系统角度来说,该系统所使用的数据库对象构成方面,最好只有简单的SQL语句,而无存储过程等传统数据库中的复杂对象,也就是数据迁移成本;
其次,对于所创建的分布式数据库集群,由于集群有一定的服务器规模,所以要平衡硬件成本问题;
最后我认为,业务系统的类型除了应满足高并发等OLTP数据库的特性之外,还有海量数据存储的需要。