TiDB 怎么找冷数据

问一下各位大佬,平常是怎么管理或者说"处理"掉冷数据的呢?

目前数据量已经上来了[30T],[380W regions],里面谁冷谁热,谁是临时表,谁是一次性的数据,都不知道.(对不起,目前因为项目遗留问题,没有元数据管理系统)

现在想迁移,或者想减少点集群压力.

暂时就只知道一个调pd里的参数,比如merge这些,没人用的时候调小点,平常改回来.

那还有啥黑科技,能够方便我们找到冷数据呢?

  • 如果有开启统计信息自动更新的话,可以通过查看统计信息相关的表 mysql.stats_meta 来确认有没有数据的更新以及写入。可以大致判断哪些表是有是只有select 的。当然最后还是要结合业务代码来做判断哪些表是可以清理的,哪些表是可以作为冷数据迁移的。

  • 对于海量 Region 调优可以参考下这个 TiDB 最佳实践之海量 Region 集群调优

  • region merge 可以调大一些,小 region 合并,减少 region 数量,减少集群内部压力, 另外可以考虑打开静默 region 功能。

大佬问一下:

看了下个表。主要是记录表的更新时间与更新行数和总行数。

哪是不是可以理解这个更新时间,就是这张表的最后 dml或 ddl 操作时间呢?(从我的理解,像是最后的ddl操作时间,不像是dml的,翻了一圈代码,太菜:joy:,没翻到,来这问了)

对于第一点的 这个表里的modify_count 和count 分别代表的是更新及插入的次数、select的次数?

可以参考 SHOW STATS META 输出内容的解释:

我做了测试。我就是想知道最后的select时间。

但是这个表没有记录最后的select时间。

是的 。。所以就感觉还是有些疑惑。。我们现在集群的冷数据都是业务方来判定,提供相应的条件来迁移的。。

1、真冷数据查找定位数据库侧没太好方法判定吧,一般是业务侧冷热数据区分有个时间区分,从而进行数据清理 2、3.0 版本有静默 region,该通过判定 region 上得数据是否长期未访问,判定是否静默

静默region 。。这个有相关资料可以参考吗?

https://github.com/tikv/tikv/blob/fa6e6d3eda27e7580a2c2e5ec88a8895d7b4cafb/docs/reference/configuration/raftstore-config.md#hibernate-region 参考这个文档看下

谢谢,看了文档说明,这还是一个实验特性- -生产还是暂时不开了。。。观望一段时间。3Q。