# 设置 tidb_snapshot 参数来读取历史数据

+ 步骤一：查看历史数据
  + `set @@tidb_snapshot="2020-10-08 16:45:26";`
  + `Query OK, 0 rows affected (0.00 sec)`
+ 步骤二：对检索到的目标结果进行二次处理，应用到目标业务表

-------------------------------------------------------------
TiDB 实现了通过标准 SQL 接口读取历史数据功能，无需特殊的 client 或者 driver。引入了一个新的系统变量 tidb_snapshot，这个变量的作用域为 SESSION。

- 查看历史数据
  - 通过标准的 SET 语句修改这个变量的值，为数据恢复的目标时间
    - 这个变量的数据类型为文本类型，能够存储 TSO 和日期时间。TSO 是从 PD 端获取的全局授时的时间戳，日期时间的格式为：“2016-10-08 16:45:26.999”，一般来说可以只写到秒，比如”2016-10-08 16:45:26”。
  - 变量被设置时，TiDB 会按照设置的时间戳建立 Snapshot（没有开销，只是创建数据结构）
  - 使用 SELECT 语句从这个 Snapshot 上读取数据。
  - 当读取历史版本操作结束后，可以结束当前 Session 或者是通过 SET 语句将 tidb_snapshot 变量的值设为 ""，即可读取最新版本的数据。
- 对检索到的目标结果进行二次处理，如生成反向 SQL，应用到目标业务表。
