1、定义
何谓数据异构,上周交易部门商品的同事过来做分享,又看到这个词,他的PPT里面是 数据库异构。其实我们以前做的事情,也是可以成为数据异构。比如我们将DB里面的数据持久化到REDIS里面去,就是一种数据异构的方式。如果要下个定义的话:把数据按需(数据结构、存取方式、存取形式)异地构建存储。
2、常见应用场景
分库分表中有一个最为常见的场景,为了提升数据库的查询能力,我们都会对数据库做分库分表操作。比如订单库,开始的时候我们是按照订单ID维度去分库分表,那么后来的业务需求想按照商家维度去查询,比如我想查询某一个商家下的所有订单,就非常麻烦。这个时候通过数据异构就能很好的解决此问题,比如下图
总结起来大概有以下几种场景
- 数据库镜像
- 数据库实时备份
- 多级索引
- search build(比如分库分表后的多维度数据查询)
- 业务cache刷新
- 价格、库存变化等重要业务消息
3、数据异构方向
在日常业务开发中大致可以分为以上几种数据去向,DB-DB这种方式,一般常见于分库分表后,聚合查询的时候,比如我们按照订单ID去分库分表,那么这个时候我们要按照用户ID去查询,查询这个用户下面的订单就非常不方便了,当然可以使用统一加到内存中去,但这样不太好。所以我们就可以用数据库异构的方式,重