如何在系统表中查询表的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分布列。

最后修改于:2020年10月28日 16:47

添加新评论