冷热表用户函数
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) |
refresh_hot_storage(relname text)
描述:用于将指定冷热表的所有分区数据全部刷到OBS上。返回的数值为执行该函数切换分区的个数。该函数仅8.2.1.100及以上版本支持。
参数:
relname:表名(指定冷热表的表名,使用其他非冷热表的表名,并不会报错,返回值为0)
返回值类型:integer
1 2 3 4 5 |
SELECT refresh_hot_storage('multi_temper_table'); refresh_hot_storage --------------------- 4 (1 row) |
refresh_hot_storage(relname text,partname text)
描述:用于将指定冷热表的分区数据刷到OBS上。返回的数值为执行该函数切换分区的个数。该函数仅8.2.1.100及以上版本支持。
参数:
- relname:表名(指定冷热表的表名,使用其他非冷热表的表名,并不会报错,返回值为0)。
- partname:分区名(指定冷热表下的分区名)。
返回值类型:integer
1 2 3 4 5 |
SELECT refresh_hot_storage('multi_temper_table','p1'); refresh_hot_storage --------------------- 1 (1 row) |
reload_cold_partition(relname text)
描述:用于将指定冷热表的所有冷分区转换成热分区。返回的数值为执行该函数切换分区的个数。该函数仅8.3.0及以上版本支持。
参数:
relname:表名(指定冷热表的表名,使用其他非冷热表的表名,并不会报错,返回值为0)。
返回值类型:integer
1 2 3 4 5 |
SELECT reload_cold_partition('multi_temper_table'); reload_cold_partition --------------------- 4 (1 row) |
reload_cold_partition(relname text,partname text)
描述:用于将指定冷热表的特定冷分区转换成热分区。返回的数值为执行该函数切换分区的个数。该函数仅8.3.0及以上版本支持。
参数:
- relname:表名(指定冷热表的表名,使用其他非冷热表的表名,并不会报错,返回值为0)。
- partname:分区名(指定冷热表下的分区名)。
返回值类型:integer
1 2 3 4 5 |
SELECT reload_cold_partition('multi_temper_table','p1'); reload_cold_partition --------------------- 1 (1 row) |