实时数仓函数
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 2 |
SELECT hstore_full_merge('reason_select'); SELECT hstore_full_merge('reason_select','part1'); |
pgxc_get_small_cu_info(rel_name text, row_count int)
描述:该函数用于获取目标表的小CU信息。其中第二个参数row_count 为可选参数,表示小CU的阈值,存活元组数小于这个值的就会被认为是小CU,默认值200。该函数仅8.2.1.300及以上集群版本支持。
返回值类型:record
返回值:
node_name:DN节点名。
part_name:分区名,非分区表此列为空。
zero_cu_count:0CU的数量。当一个CU中的所有数据都被删除时,我们称之为0 CU。
small_cu_count:小CU数量。当一个CU中有存活数据 且 存活数量小于阈值时,称之为小CU。
total_cu_count:总的CU的数量。
sec_part_cu_num:每个二级分区的CU数量。当secondary_part_column被指定时,该列才会显示。该字段仅8.3.0及以上集群版本支持。
需要注意的是,这里的CU是跨列的概念,并非一列一个的CU。
示例:
1 2 3 4 5 6 |
SELECT * FROM pgxc_get_small_cu_info('hs'); node_name | part_name | zero_cu_count | small_cu_count | total_cu_count | sec_part_cu_num -----------+-----------+---------------+----------------+----------------+------------------------------------------ datanode1 | | 0 | 4 | 4 | p1:1 p2:0 p3:1 p4:0 p5:1 p6:0 p7:1 p8:0 datanode2 | | 0 | 4 | 4 | p1:0 p2:1 p3:0 p4:1 p5:0 p6:1 p7:0 p8:1 (2 rows) |
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) |