数据迁移设计方案

自计算机发展以来,数据的存储的方式也不断的在发生变化,如一开始的的文件存储,到关系型数据库,再到非关键型数据库,半结构化的数据。再到当下火热的分布式存储。每种数据存储方式为了满足某种需求而自成一套体系。这就造成了数据之间的沟通存在困难,比如oracle数据导入mysql数据,redis数据库到mysql数据库等等。打破数据各有体系的壁垒,实现数据的互通有无,为进一步的数据分析都有着重要意义

1、数据分布

首先给数据分两个大类,一个是基本类型的比如 字符串,数字这些类型,另一种就是文件类型,比较图片,音乐等。而数据迁移针对是第一种基本类型。对于这样数据一般而已存储的地方如下:

  • 关系型数据库(mysql、oracal、达梦、sqlite、SQLServer等)
  • 非关系型数据库 (redis,monogoDB等)
  • 分布式数据库 (HBase,TiDB)
  • 文件系统 (CVS,excel,hadoop)

以上是数据存储在不同系统之上的冰山一角,还有存在许多不同地方以不同形式的存在的数据文件。

2、数据迁移过程

数据迁移过程主要分为3步:取出数据,数据过滤,插入数据。
这里着重说下数据过滤,在取出数据的时候,有可能原有的数据并不适合当下的系统,也有可能原有数据的一些字段要发生改变,以适应当前系统的需求。因此对原有数据进行过滤是很有必有的事情。

3、设计思路

面对如此海量的数据存储产品,在设计上确实面临了很大的困难,就比如说,数据访问的规范不一致,数据结构的不一致,关系型数据库和非关系型数据的不一致等等一系列问题。导致数据迁移在设计上的困难性。
但在设计上可以仿照JDBC的实现,数据迁移设计一系列的接口,通过统一的接口,来对下层数据统一查询进行访问,对上数据插入也是统一接口向上插入数据。

向下驱动
数据接口
向上开放

在当下的数据迁移面对关系型数据进行了深度的数据解耦,只需定义不同数据库的数据的类型,对不同的数据库里面的数据进取出操作,即可很方便的实现数据间的迁移。简单来说,对于mysql里面的数据转到oracle里面去,简单的逻辑来说就是用sql查询mysql里面的数据,然后通过oracal的sql语句将插入到oracle数据库里面去。
其核心转化逻辑就是这样的。因此对于不同数据间的转化就有一个匹配模式来进行自动匹配,好的做法通过相应的URL地址去识别数据库类别,在通过转化方向去进行相应的数据转化。

4. 总结

本文分析了相应的数据转化方案,会以此为基础上进行相应的具体实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

myenjoy_1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值