更新时间:2024-09-02 GMT+08:00

实时数仓函数

hstore_light_merge(rel_name text)

描述:该函数用于手动对HStore表进行轻量化清理操作,持有目标表的三级锁。

返回值类型:int

示例:

1
SELECT hstore_light_merge('reason_select');

hstore_full_merge(rel_name text,partitionName text)

描述:该函数用于手动对HStore表进行全量清理操作,其中第二个入参为可选参数,用于指定单分区进行操作。

返回值类型:int

  • 执行该操作会强制将DELTA表上的所有可见操作Merge到主表,然后建一张新的空Delta表, 期间持有该表的八级锁。
  • 该操作的耗时长度与DELTA表上的数据量有关,务必打开HStore的清理线程,确保HStore表的及时清理。
  • 仅在8.3.0.100及以上集群版本支持第二个可选参数partitionName,因此8.3.0.100及以上集群版本不支持使用call调用此函数(call不支持重载)

示例:

1
SELECT hstore_full_merge('reason_select''part1');

gs_hstore_compaction(rel_name text, row_count int)

描述:该函数用于合并目标表的小CU。其中第二个参数row_count为可选参数,表示小CU的阈值,存活元组数小于这个值的就会被认为是小CU,默认值100。该函数仅8.2.1.300及以上版本支持。

返回值类型:int

返回值:numCompactCU: 合并小CU的数量。

  • 这里的CU是跨列的概念,并非一列一个的CU。
  • 函数中并不能传入分区名,该函数暂不支持指定单分区。

示例:

1
SELECT gs_hstore_compaction('hs'10);

pgxc_get_hstore_delta_info(rel_name text)

描述:该函数用于获取目标表的delta表信息,包括delta表的大小,insert/delete/update各种类型记录的数量等。该函数仅8.2.1.100及以上集群版本支持。

返回值类型:record

返回值:

node_name:DN节点名。

part_name:分区名,非分区表此列为non partition table。

live_tup:存活的元组数量。

n_ui_type:type 是 ui (小cu合并和upsert走update插入) 的记录的数量。一条ui记录表示一次插入,可以是单插或者批插。该参数仅8.3.0.100及以上版本支持。

n_i_type:type 是 i (insert) 的记录的数量。一条i记录表示一次插入,可以是单插或者批插。

n_d_type:type 是 d (delete) 的记录的数量。一条d记录表示一次删除,可以是单条删或者批量删除。

n_x_type:type 是 x (由update产生的delete) 记录的数量。

n_u_type:type 是 u (轻量化update) 的记录数量。

n_m_type:type 是 m (merge) 的记录数量。

data_size:表的大小。

示例:

1
2
3
4
5
6
7
SELECT * FROM pgxc_get_hstore_delta_info('hs_part');
 node_name | part_name | live_tup | n_ui_type | n_i_type | n_d_type | n_x_type | n_u_type | n_m_type | data_size
-----------+-----------+----------+-----------+----------+----------+----------+----------+----------+-----------
 dn_1      | p1        |        2 |         0 |        2 |        0 |        0 |        0 |        0 |      8192
 dn_1      | p2        |        2 |         0 |        2 |        0 |        0 |        0 |        0 |      8192
 dn_1      | p3        |        2 |         0 |        2 |        0 |        0 |        0 |        0 |      8192
(3 rows)

pgxc_get_cstore_dirty_ratio(rel_name text, partition_name)

描述:该函数用于获取各个DN上目标表的cu、delta以及cudesc的脏页率以及大小,仅支持HStore_opt表。

其中partition_name为可选参数,如果传入分区名则只返回该分区对应的信息;如果没传入分区名且是主表时分区表返回所有分区对应的信息。该函数仅9.1.0.100及以上集群版本支持。

返回值类型:record

返回值:

node_name:DN节点名。

database_name:表所在数据库名称

rel_name:主表名

part_name:分区名

cu_dirty_ratio:cu文件的脏页率

cu_size:cu文件大小

delta_dirty_ratio:delta表脏页率

delta_size:delta表大小

cudesc_dirty_ratio:cudesc表脏页率

cudesc_size:cudesc表大小

示例:

1
2
3
4
5
6
7
8
SELECT * FROM pgxc_get_cstore_dirty_ratio('hs_opt_part');
 node_name | database_name |      rel_name      | partition_name | cu_dirty_ratio | cu_size | delta_dirty_ratio | delta_size | cudesc_dirty_ratio | cudesc_size
-----------+---------------+--------------------+----------------+----------------+---------+-------------------+------------+--------------------+-------------
 dn_1      | postgres      | public.hs_opt_part | p1             |              0 |       0 |                 0 |      16384 |                  0 |       24576
 dn_1      | postgres      | public.hs_opt_part | p2             |              0 |       0 |                 0 |      16384 |                  0 |       24576
 dn_1      | postgres      | public.hs_opt_part | p3             |              0 |       0 |                 0 |      16384 |                  0 |       24576
 dn_1      | postgres      | public.hs_opt_part | p4             |              0 |       0 |                 0 |      16384 |                  0 |       24576
 dn_1      | postgres      | public.hs_opt_part | other          |              0 | 1105920 |                 0 |     524288 |                  0 |       40960