SQL commands
CREATE DISTRIBUTION
This command is used to create a new distribution with the specified name. Optionally, you can specify the column types for the distribution using the COLUMN TYPES clause.
CREATE DISTRIBUTION <distributionID> COLUMN TYPES <types>
where types is a comma-separated list of column types
where type is one of: VARCHAR, INTEGER, INT
DROP DISTRIBUTION
This command is used to drop an existing distribution with the specified name. The CASCADE keyword is optional and indicates that any dependent objects should also be dropped.
DROP DISTRIBUTION <distribution_name> [CASCADE]
ALTER DISTRIBUTION ATTACH RELATION
This command is used to alter an existing distribution. You can attach one or more relations to the distribution using the ATTACH RELATION clause.
ALTER DISTRIBUTION <distribution_name> ATTACH RELATION <relation_name> [, <relation_name> ...]
DISTRIBUTION KEY <keys> [HASH FUNCTION <hash_function_name>]
where hash_function_name is one of: IDENTITY, MURMUR, CITY
ALTER DISTRIBUTION DETACH RELATION
This command is used to alter an existing distribution. You can detach a relation from the distribution using the DETACH RELATION clause.
ALTER DISTRIBUTION <distribution_name> DETACH RELATION <relation_name>
CREATE KEY RANGE
This command is used to create a new key range. Since the key space is an ordered set, it is enough to specify only one end of the range
CREATE KEY RANGE [ <keyRangeID> ]
FROM <lowerBound>
ROUTE TO <shardID>
FOR DISTRIBUTION <distributionID>
DROP KEY RANGE
This command is used to drop an existing key range.
DROP KEY RANGE <keyRangeID>
MOVE KEY RANGE
This command is used to move an existing key range to a different shard.
MOVE KEY RANGE <keyRangeID> TO <shardID>
SPLIT KEY RANGE
This command is used to split an existing key range into two separate key ranges.
SPLIT KEY RANGE <keyRangeID> FROM <keyRangeFromID> BY <border>
UNITE KEY RANGE
This command is used to unite two adjacent key ranges into a single key range.
UNITE KEY RANGE <keyRangeIDLeft> WITH <keyRangeIDRight>
SHOW
This command is used to retrieve information about a specific entity of SPQR cluster and simple filtering.
SHOW entity [WHERE where_clause]
where entity is one of databases, routers, pools, shards, backend_connections, key_ranges, clients, status, distributions, version, relations, task_groups, prepared_statements:
Thewhere_clause
is used to filter the results based on specific conditions. It allows you to specify criteria for selecting the information to be shown.
spqr-console=> SHOW backend_connections WHERE hostname='hostname:6432'
backend connection id | router | shard key name | hostname | user | dbname | sync | tx_served | tx status
-----------------------+---------+----------------+---------------+--------------+--------+------+-----------+-----------
824694216064 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 10102 | IDLE
824646300800 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 7508 | IDLE
824682931072 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 16623 | IDLE
824688144384 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 10112 | IDLE
824686833408 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 21080 | IDLE
824686834560 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 21069 | IDLE
824653676928 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 34227 | IDLE
824686833664 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 21060 | IDLE
824646300928 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 8003 | IDLE
824682937984 | no data | app-prod-spqr1 | hostname:6432 | test_app_app | testdb | 0 | 7622 | IDLE
Exists feature - order by col asc/desc for clients.
SHOW clients ORDER BY <column> (ASC/DESC)
The ORDER BY column feature works with clients, not works with other entities.
KILL CLIENT
This command is used to terminate a specific client connection in a SPQR Router.
KILL CLIENT <client_id>
Was this page helpful?