如何在系统表中查询表的hash分布列?
warning:
这篇文章距离上次修改已过1647天,其中的内容可能已经有所变动。
可以通过查询系统表gbase.table_distribution
查询hash分布列。
gbase> create table t1(c1 int,c2 varchar(10)) distributed by ('c1');
Query OK, 0 rows affected (Elapsed: 00:00:00.22)
gbase> desc gbase.table_distribution;
+--------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+-------+
| index_name | varchar(128) | NO | PRI | | |
| dbName | varchar(64) | NO | | NULL | |
| tbName | varchar(64) | NO | | NULL | |
| isReplicate | varchar(3) | NO | | YES | |
| hash_column | varchar(64) | YES | | NULL | |
| lmt_storage_size | bigint(20) | YES | | NULL | |
| table_storage_size | bigint(20) | YES | | NULL | |
| is_nocopies | varchar(3) | NO | | YES | |
+--------------------+--------------+------+-----+---------+-------+
8 rows in set (Elapsed: 00:00:00.00)
gbase> select * from gbase.table_distribution where dbname='guo' and tbname='t1'\G
*************************** 1. row ***************************
index_name: guo.t1
dbName: guo
tbName: t1
isReplicate: NO
hash_column: c1
lmt_storage_size: NULL
table_storage_size: NULL
is_nocopies: NO
1 row in set (Elapsed: 00:00:00.00)
表中的hash_column字段即为hash分布列。