【 TiDB 使用环境】Poc
【 TiDB 版本】v7.0.0
TiDB提供了使用 AS OF TIMESTAMP 语法(推荐方式)读取历史数据的方法,但是这个方法只能全表导出到外部文件中,然后再导入到数据库中。为何不支持直接insert into select … from … as of timestamp的方式呢,这样子结合batch on非事务模式可以节省导入导出时间,也更方便操作。
1 个赞
这个时候查的数据是基于过去的时间点的,所有的数据都是,包括你insert数据。。。
当使用这个特性的时候,集群的快照已经切换到历史的版本,历史数据只能提供读操作
我理解的是insert发生的是当前读,与快照读是冲突的。但是如果是单纯的insert select(等特定几个恢复场景) 模式是否可以做到insert快照读兼容呢?
我记得ORACLE是支持,我也建议完善这个功能
where 条件支持的,我测了下你写错了吧
select a,b,c from test as of timestamp ‘2023-05-25 09:55:00’
where a=1;
insert into select 不支持,具体报错:
mysql> insert into test1
→ select a,b,c from test as of timestamp ‘2023-05-25 10:05:00’
→ where a=2;
ERROR 8135 (HY000): can not set different time in the as of
是的,谢谢纠正。
看文档8.1版本开始import into语句支持了对as of timestamp导入历史版本数据的支持,例如:
import into t from select * from customer as of timestamp date_sub(now(),interval 1 minute);
点个赞!
时隔一年后终于支持了。
一年前的贴子都翻出来了。
还没有升级到8版本
oracle支持这个功能,但是tidb也能快速在新版本上实现,点赞
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。