全部产品
Search
文档中心

云原生数据库 PolarDB:概述

更新时间:Sep 05, 2024

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

技术原理

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

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

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

归档后的数据格式会转变为CSV或ORC格式并分成多个文件存储在OSS上,PolarStore中的这部分数据会被自动删除,存储费用也会随着存储空间容量的降低而减少。

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

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

  • 当数据被归档为CSV或ORC格式作为冷数据存储后,不再支持事务。

  • 冷数据归档完成后,进行备份操作时,不会对OSS上已归档的冷数据进行备份,因此不支持通过备份进行库表恢复、备份恢复或按时间点还原操作。

费用

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

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

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

您可以购买PolarDB存储包,来抵扣OSS中冷数据的存储容量,以减少存储冷数据的费用。关于PolarDB存储包的说明,请参见什么是存储包

PolarDB存储包抵扣规则如下:

地域类型

抵扣因子

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

中国内地

0.045

1/0.045=22.22 GB

中国香港及海外

0.045

1/0.045=22.22 GB

例如,您购买了一个容量为100 GB的PolarDB存储包,抵扣完存储空间使用量后还剩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及以上。

不同文件格式对比

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

文件格式

归档速度

读取速度

是否是开源格式

占用的存储空间

归档后的数据修改方式

CSV

较ORC格式快

说明

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

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

说明

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

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

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

ORC

说明

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

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

说明

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

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

使用说明

  • 归档冷数据

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

  • 查询冷数据

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

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

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

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

  • 修改冷数据

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

  • 删除冷数据

    首先,你需要使用DROP TABLE删除归档表,然后再通过CALL dbms_oss.delete_table_file('database_name', 'table_name');来删除归档后的冷数据。

联系我们

若您对冷数据归档功能有任何问题,可通过钉钉搜索群号入群咨询。您可以直接@群内专家,并附上您要咨询的问题;同时群内也有PolarDB MySQL版 小助手24*7小时在线回答您的问题。

钉钉群号:24490017825