概述

更新时间: 2023-09-28 16:24:03

若集群中某些库表的数据几乎没有更新、插入和修改操作,且读取频率非常低,如果您有降本需求,可以使用PolarDB MySQL版提供的冷数据归档功能,将这部分数据转存至低成本的OSS上存储,以降低数据存储成本。本章节介绍了冷数据归档方法、技术原理等内容。

技术原理

归档为CSVORC格式的技术原理图如下: 冷数据归档原理图集群中的热数据存储在共享存储(PolarStore)中,各个PolarDB节点通过分布式文件系统(PolarFileSystem)访问PolarStore中的数据。为降低数据存储成本,达到冷热数据分离管理的目的,您可以将共享存储中的冷数据转存至OSS:

  • 对于普通表,您可以将冷数据归档为CSV或ORC格式并存储在OSS上,随后PolarDB节点可通过阿里云内网访问OSS上的数据。

  • 对于分区表,您可以将冷数据归档为CSV或ORC格式并存储在OSS上,或在读写节点上创建DLM策略来自动归档冷数据。目前冷数据归档功能支持将分区表中的部分数据以OSS外表的形式归档至OSS,同时也支持将分区表中的部分分区直接转存至OSS。

冷数据归档完成后,PolarStore中的原表会转变为OSS上的归档表,归档表不支持删除,您可以联系我们进行删除。归档后的数据格式会转变为CSV或ORC格式并分成多个文件存储在OSS上,PolarStore中的这部分数据会被自动删除,存储费用也会随着存储空间容量的降低而减少。

说明
  • 归档分区表中的冷数据功能目前处于灰度阶段,如需使用,请前往配额中心,根据配额IDpolardb_mysql_hybrid_partition找到配额名称,在对应的操作列单击申请来开通该功能。

  • 冷数据归档完成后,OSS上的归档表只读,且查询性能较差。在没有索引且使用串行查询的情况下,查询性能约为InnoDB存储引擎的五分之一到十分之一。您需要提前测试数据归档后能否满足您的查询性能要求。

    费用

    冷数据存储按照OSS中冷数据存储的容量收取费用,具体收费为:

    • 中国内地地域:0.00021元/GB/小时。

    • 中国香港及海外地域:0.000294元/GB/小时。

    您可以购买存储包,来抵扣OSS中冷数据的存储容量,以减少存储冷数据的费用。存储包抵扣规则如下:

    地域类型

    抵扣因子

    1 GB存储包的OSS存储空间抵扣量

    中国内地

    0.045

    1/0.045=22.22 GB

    中国香港及海外

    0.045

    1/0.045=22.22 GB

    例如,您购买了一个容量为100 GB的存储包,抵扣完存储空间使用量后还剩50 GB。您的集群的冷数据在中国内地地域使用了50 GB的OSS存储用量。此时,存储包将自动使用 2.25 GB(50/22.22)的容量用于抵扣该部分的备份空间用量,最后该存储包还剩余47.75 GB容量。

    若存储包中剩余容量不足以冷数据OSS存储用量,超出部分将正常按量付费。

    说明

    版本要求

    归档为CSVORC格式的企业版集群的版本要求如下:

    • 当产品系列为集群版时,版本需为如下版本之一:

      • PolarDB MySQL版8.0.1版本且修订版本为8.0.1.1.31及以上。

      • PolarDB MySQL版8.0.2版本且修订版本为8.0.2.2.9及以上。

    • 当产品系列为多主集群(库表)时,版本需为PolarDB MySQL版8.0.1.0.13及以上。

    说明

    如何确认集群版本,详情请参见查询版本号

    支持的地域

    华东1(杭州)、华东2(上海)、华北1(青岛)、华南1(深圳)、华北2(北京)、中国香港、美国(弗吉尼亚)、马来西亚(吉隆坡)。

    不同文件格式对比

    归档冷数据时,您可以根据实际需要,选择合适的归档文件格式。

    文件格式

    归档速度

    读取速度

    是否是开源格式

    占用的存储空间

    归档后的数据修改方式

    CSV

    较ORC格式快

    说明

    只支持使用单线程方式归档数据。

    行存节点上,较ORC格式文件快。

    说明

    支持使用单线程和多线程两种方式读取数据。

    与没有索引的InnoDB引擎中的表占用的存储空间一致

    需要将OSS数据导回至PolarStore,再进行修改。

    ORC

    说明

    只支持使用单线程方式归档数据。

    适合通过单独的列存节点进行AP查询。

    说明

    只支持使用单线程方式读取数据。

    相同数据量的情况下,占用的存储空间为CSV格式文件占用的存储空间的45%。

    使用说明

    • 归档冷数据

      您需要先登录PolarDB控制台开启冷数据归档功能,然后连接数据库集群,再执行冷数据归档操作:

    • 查询冷数据

      对普通表和分区表执行冷数据归档操作后,您可以通过以下方法查询归档后的冷数据:

      • 普通表:执行冷数据归档后,查询冷数据的方法和查询热数据的方法一致,不需要修改访问方式。

      • 分区表:执行冷数据归档后,查询冷数据的操作方法请参见查询混合分区

      由于归档后的冷数据为单表多文件格式,在查看冷数据时,您可以采用并行查询进行查询优化,详情请参见基于OSS外表的单表多文件查询

    • 修改冷数据

      如果您有低频修改归档到OSS上冷数据的需求,您可以通过ALTER ENGINE语法将OSS数据导回至PolarStore进行修改。数据导回至PolarStore后,会同步删除OSS上的冷数据。修改完数据之后,您可以再次将修改后的表归档为OSS表。详情请参见将OSS数据导回至PolarStore

    • 删除冷数据

      暂不支持删除已归档的冷数据,您可以联系我们进行删除。

    阿里云首页 云原生数据库 PolarDB 相关技术圈