云数据库 GAUSSDB-EXECUTE DIRECT:示例

时间:2024-07-01 18:37:09

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
--查询当前集群的节点名称。
gaussdb=# SELECT node_name,oid FROM pgxc_node WHERE node_type IN ('C','D') ORDER BY 1;
     node_name     |  oid  
-------------------+-------
 cn_5001           | 15517
 cn_5002           | 16387
 cn_5003           | 16391
 dn_6001_6002_6003 | 16384
 dn_6004_6005_6006 | 16388
 dn_6007_6008_6009 | 16392
(6 rows)


--创建以range分布的表,并插入数据。
gaussdb=# CREATE TABLE tbl_range(
  id       INT,
  name     VARCHAR(20),
  province VARCHAR(60),                        --省
  country   VARCHAR(30) DEFAULT 'China'        --国籍
)DISTRIBUTE BY RANGE(id)(
  SLICE s1 VALUES LESS THAN (100) DATANODE dn_6001_6002_6003,
  SLICE s2 VALUES LESS THAN (200) DATANODE dn_6004_6005_6006,
  SLICE s3 VALUES LESS THAN (MAXVALUE) DATANODE dn_6007_6008_6009
);
gaussdb=# INSERT INTO tbl_range VALUES (52,'Bob','Beijing','China'), 
                                       (100,'Ben','Shanghai','China'), 
                                       (150,'Scott','Guangzhou','China'),
                                       (300,'Jordan','Beijing','China');

--查询该表分布在dn_6007_6008_6009节点上的数据。
gaussdb=# EXECUTE DIRECT ON(dn_6007_6008_6009) 'SELECT * FROM tbl_range';
 id  |  name  | province | country 
-----+--------+----------+---------
 300 | Jordan | Beijing  | China
(1 row)

--删除表tbl_range。
gaussdb=# DROP TABLE tbl_range;
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0631.html