产生背景:当要存贮的数据量非常大,单一的某种数据库不能满足数据量的要求,因此需要将数据分库存贮(数据表结构相同,但数据不同,数据不交叉),这种存贮方式,为程序的开发(提取数据,数据存贮)带来了不便,如果没有数据网关,则需要(1)程序去判断数据在哪里(2)程序进行跨库操作时,事务同步不好控制,数据网关的设计就是为了解决以上不便 (1)应用程序只面对一个数据提供者,即数据网关,多数据源对应用程序时透明的,例如程序执行select * from tab ;数据网关会在各个数据库中执行
select * from tab该语句,并将结果组合返给应用程序,该情况适合统计各个物理库的情况 (2)如果应用程序知道某数据的物理地址,则数据网关会根据应用程序提供的某些标志进行查询 (3)对事务封装 在应用程序看来,事务就如同在一个数据库里一样,数据网关为了完善事务,采用sql反补机制,例如 insert into tab () values () 如果失败
则执行delete tab where ,以保证数据的完整性