更新时间:2024-06-29 GMT+08:00

冷热表用户函数

pg_obs_cold_refresh_time(table_name, time)

描述:用来修改冷热表的冷数据切换至OBS上的时间,默认为每日0点。

table_name为冷热表表名,类型为name,time为数据切换任务调度时间,类型为Time。

返回值:SUCCESS,任务时间修改成功。

示例:

1
2
3
4
5
SELECT * FROM pg_obs_cold_refresh_time('lifecycle_table', '06:30:00');
pg_obs_cold_refresh_time
--------------------------
 SUCCESS
(1 row)

pg_refresh_storage()

描述:切换所有冷热表,将符合冷热切换规则的数据由热数据切换至冷数据(OBS中)。

返回值类型:int

返回值字段:

  • success_count int:切换成功的表个数
  • failed_count int:切换失败的表个数

示例:

1
2
3
4
5
SELECT * FROM pg_refresh_storage();
 success_count | failed_count
---------------+--------------
             1 |            0
(1 row)

pg_lifecycle_table_data_distribute(table_name)

描述:查看某个冷热表的数据分布情况。

table_name为表名,不可缺省。

返回值:record

示例:根据节点数量形成多条记录,如下示例为只有一个dn节点时w1表数据分布情况。

1
2
3
4
5
SELECT * FROM pg_catalog.pg_lifecycle_table_data_distribute('w1');
 schemaname | tablename | nodename | hotpartition | coldpartition | switchablepartition | hotdatasize | colddatasize | switchabledatasize 
------------+-----------+----------+--------------+---------------+---------------------+-------------+--------------+--------------------
 public     | w1        | dn_1     | p2           | p1            |                     | 80 KB       | 0 bytes      | 0 bytes
(1 row)

pg_lifecycle_node_data_distribute()

描述:查看所有冷热表数据分布情况。

返回值:record

示例:数据库中当前存在两个冷热表,其数据分布情况如下。

1
2
3
4
5
6
SELECT * FROM pg_catalog.pg_lifecycle_node_data_distribute();
 schemaname | tablename | nodename | hotpartition | coldpartition | switchablepartition | hotdatasize | colddatasize | switchabledatasize 
------------+-----------+----------+--------------+---------------+---------------------+-------------+--------------+--------------------
 public     | w1        | dn_1     | p2           | p1            |                     |       81920 |            0 |                  0
 public     | w2        | dn_1     | p2           | p1            |                     |       81920 |            0 |                  0
(2 rows)