spqplugin_v2函数参考

分布式表相关

  • create_distributed_table(table_name, distribution_column, shard_count)

    描述:把local表转化为分布式表,注意除了指定的分布列,表的其它列不能有PRIMARY KEY、UNIQUE约束,对于分布式列而言,要求其比较collation是明确的,即相同的value必须有相同的hash值。

    参数说明:

    • table_name:转分布式表的表名
    • distribution_column:指定的分片列名
    • shard_count:分片数量,不指定时默认为spq.shard_count

    返回值类型:N/A

    示例:

    -- 创建local表
    openGauss=# create table t1(id int primary key, b varchar(10));
    -- 将local表转为分布式表
    openGauss=# select create_distributed_table('t1', 'id', shard_count:=4);
    
  • alter_distributed_table(table_name, distribution_column, shard_count)

    描述:修改分布式表的分布列、分片数量。

    参数说明:

    • table_name:分布式表的表名
    • distribution_column:指定的分片列名
    • shard_count:分片数量,不指定时默认为spq.shard_count

    返回值类型:N/A

    示例:

    -- 修改分片数量
    openGauss=# select alter_distributed_table('t1', shard_count:=8);
    
  • undistribute_table(table_name)

    描述:把分布式表转回local表

    参数说明:

    • table_name:分布式表的表名

    返回值类型:N/A

    示例:

    -- 修改分片数量
    openGauss=# select undistribute_table('t1');
    
  • rebalance_table_shards()

    描述:按照每个DN节点分片数量平衡的策略,对分布式表分片进行重新分布。

    参数说明:N/A

    返回值类型:N/A

    示例:

    -- 加入一个新的DN节点
    select spq_add_node('127.0.01', 5432);
    -- 重分布
    openGauss=# select rebalance_table_shards();
    
  • spq_rebalance_start()

    描述:作用同rebalance_table_shards,调用后立即返回,数据重分布任务将在后台异步进行。

    参数说明:N/A

    返回值类型:N/A

    示例:

    -- 加入一个新的DN节点
    select spq_add_node('127.0.01', 5432);
    -- 重分布
    openGauss=# select spq_rebalance_start();
    

节点管理相关

  • spq_set_coordinator_host(host text, port integer default current_setting('port')::int)

    描述:将某节点设置为CN节点,每个集群仅需要一个读写CN。

    参数说明:

    • host:当前CN的ip地址、域名或endpoint等
    • port:CN节点的openGauss端口号

    返回值类型:N/A

    示例:

    openGauss=# select spq_set_coordinator_host('127.0.01', 5432);
    
  • spq_add_node(nodename text, nodeport integer)

    描述:添加DN节点,该节点被立即激活,可以立刻被使用。

    参数说明:

    • nodename:当前DN的ip地址、域名或endpoint等
    • nodeport:DN节点的openGauss端口号

    返回值类型:N/A

    示例:

    openGauss=# select spq_add_node('127.0.01', 5432);
    
  • spq_add_inactive_node(nodename text, nodeport integer)

    描述:添加DN节点,该节点不会被立即激活,即分布式表的分片不会落在这个节点上。

    参数说明:

    • nodename:当前DN的ip地址、域名或endpoint等
    • nodeport:DN节点的openGauss端口号

    返回值类型:N/A

    示例:

    openGauss=# select spq_add_inactive_node('127.0.01', 5432);
    
  • spq_activate_node(nodename text, nodeport integer)

    描述:激活某个非活跃节点,在spq_add_inactive_node之后使用。

    参数说明:

    • nodename:当前DN的ip地址、域名或endpoint等
    • nodeport:DN节点的openGauss端口号

    返回值类型:N/A

    示例:

    openGauss=# select spq_activate_node('127.0.01', 5432);
    
  • spq_disable_node(nodename text, nodeport integer)

    描述:与spq_activate_node相反的操作,将某个激活节点变为非激活节点。

    参数说明:

    • nodename:当前DN的ip地址、域名或endpoint等
    • nodeport:DN节点的openGauss端口号

    返回值类型:N/A

    示例:

    openGauss=# select spq_disable_node('127.0.01', 5432);
    
  • spq_update_node(node_id int, new_node_name text, new_node_port integer)

    描述:更新某个节点的IP和端口。

    参数说明:

    • node_id:节点在pg_dist_node表中的node id
    • new_node_name:节点的新ip地址、域名或endpoint等
    • new_node_port:节点的新openGauss端口号

    返回值类型:N/A

    示例:

    openGauss=# select spq_update_node(1, '127.0.01', 5432);
    
  • spq_remove_node(nodename text, nodeport integer)

    描述:移除某个节点,要求当前节点不存在数据分片。

    参数说明:

    • nodename:当前DN的ip地址、域名或endpoint等
    • nodeport:DN节点的openGauss端口号

    返回值类型:N/A

    示例:

    openGauss=# select spq_remove_node('127.0.01', 5432);
    
  • spq_is_coordinator()

    描述:查询当前节点是否是CN节点

    参数说明:N/A

    返回值类型:bool

    示例:

    openGauss=# select spq_is_coordinator();
     spq_is_coordinator
    --------------------
     t
    
  • spq_get_active_worker_nodes()

    描述:获取集群中活跃的DN节点信息

    参数说明:N/A

    返回值类型:record

    示例:

    openGauss=# select spq_get_active_worker_nodes();
     spq_get_active_worker_nodes
    -----------------------------
     (127.0.0.1,5432)
     (127.0.0.1,5532)
    
  • spq_check_connection_to_node(nodename text, nodeport integer)

    描述:检查节点的连通性

    参数说明:

    • nodename:当前DN的ip地址、域名或endpoint等
    • nodeport:DN节点的openGauss端口号

    返回值类型:bool

    示例:

    openGauss=# select spq_check_connection_to_node('127.0.0.1', 5432);
     spq_check_connection_to_node
    ------------------------------
     t
    
意见反馈
编组 3备份
    openGauss 2025-09-25 07:42:18
    取消