场景
1) 千万甚至亿级别的表, 每天要更新全量的数据. 之所以全量更新, 是因为, 每天新的数据相对于旧数据有增, 有减, 有更新. 所以只能全量更新.
2) 同时, 需要保证能够提供不间断的查询.
这两条很是冲突.
若是对于只增不减的数据, 我可以每天一个partition放增量的数据, 然后用sqoop导出到mysql, 根据update-key
对已有数据更新替换, 没有的新增. 虽然可能慢了点, 但是能保证不间断查询.
但是, 现在对于有增, 有减, 有更新的数据. 表示有点棘手.
目前想到是, mysql里准备A,B两张一样的表. web服务里面, 在新的一天, 比如8点开始, 定时检查, 若当前用的A表, 那么就去检查B表状态, 若成功更新了数据, web服务则切换到B表, 今天的所有查询就会走B表. 到第二天同样如此.
不知道, 还有没有更好的方案?
主从或者双机热备。。。一个写,一个读刚刚好。。。