冷热表用户函数
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) |