常见问题

本文为您介绍冷数据按行归档(行级归档)的一些常见问题。

归档的历史数据存储在哪里?

所有归档的历史数据将被保存至OSS对象存储中。

创建归档表后,数据是如何进行归档的?

在冷数据按行归档(行级归档)过程中,创建归档表的操作实际上是一个创建列存索引的过程。如图所示,在此过程中,一方面,列存节点会基于快照读将在线表(即TTL表)的存量数据上传至OSS对象存储。另一方面,列存节点会实时订阅在线表的Binglog日志,并实时执行行转列转换,随后将更新内容上传至OSS对象存储。详细说明,可参考列存索引的构建原理

image.png

业务能否使用原表名来查询归档数据?

可以。您需要开通列存只读实例,并让业务直连列存只读实例,即可实现使用原表名查询归档数据。如无列存只读实例,您可以添加列存只读实例

说明
  • 不使用原表名查询归档数据的具体操作,请参见查询归档表数据

  • 因主实例和列存只读实例分别提供了独立的数据库连接串,所以应用程序只需修改数据库连接配置,即可切换业务所连接的实例。

TTL时间列的范围查询是否支持自动路由到在线表或归档表?

不支持。应用需要自行处理查询的目标表是在线数据还是归档数据。

TTL时间列的范围查询若同时跨越在线数据与归档数据,应用该如何处理?

应用应将查询路由至归档表。因为归档表具有提前归档的特性,所以它会保存对应在线表的所有数据(非归档表冷数据清理的部分)。

如果按行清理冷数据的速度跟不上在线表新增数据的速度,应如何处理?

TTL表按行清理的算法,默认采用“从前往后”的逐步清理思路,更多信息,请参见冷数据清理算法。但如果清理速度无法跟上数据的产生速度,目前可采用三种处理方案:

  • 调整清理速度限制,以提升按行清理的速度。

    说明

    调大清理速度将占用更多的CPU和IOPS资源。

  • 调整清理策略为基于在线重建新表并保留最近在线数据的Online DDL,实现对历史数据的清理。

    说明

    暂时不支持您自主调整清理策略,请联系我们处理。

  • 变更在线表的分区方案,调整为按时间列进行分区,并按照时间分区进行数据清理。

已归档的历史数据是否允许被修改?

TTL表中没有被清理的数据支持通过DML进行修改,并最终通过Binlog的方式自动同步到归档表中。

重要

TTL表中已经被清理的冷数据,不再允许修改。更多信息,请参见按行归档方案概述冷数据清理算法