Phoenix 查看表信息及修改元数据

sqllinephoenix-sqlline模式

1.查看所有表信息

0: jdbc:phoenix:>!tables

输出结果:
在这里插入图片描述

2.查看表字段信息

0: jdbc:phoenix:> !desc SYSTEM.HBASE_TEST;

输出结果:
在这里插入图片描述

3.查看表主键信息

0: jdbc:phoenix:> !primarykeys SYSTEM.HBASE_TEST;

输出结果:
在这里插入图片描述

JDBC模式

1.查看所有表信息

select * from SYSTEM.CATALOG where TABLE_TYPE='u';

输出结果:
在这里插入图片描述

2.查看表字段信息

select * from SYSTEM.CATALOG where TABLE_NAME='HBASE_TEST';

输出结果:
在这里插入图片描述

修改元数据

Phoenix表是映射的hbase表, hbase存储的数据都是字节数组,因此,限制数据类型的只能是Phoenix自己。所以,我们就可以通过修改Phoenix元数据的方式修改表中字段的数据类型。

SYSTEM.CATALOG
SYSTEM.FUNCTION
SYSTEM.LOG
SYSTEM.SEQUENCE
SYSTEM.STATS

Phoenix的系统表有以上五张表, 其中SYSTEM.CATALOG表保存了我们新建表的元数据信息。

注:这种方法只能修改char、 varchar、 DECIMAL类型的长度、宽度等, 不能将varchar修改为integer类型。

1.建表

create table test (
a integer not null primary key,
info.b varchar(2),
info.c varchar(5),
info.d decimal(4,2),
info.e decimal(6,3)
);

2.查看元数据信息

!desc test;

在这里插入图片描述

select TENANT_ID,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,COLUMN_FAMILY,DATA_TYPE,COLUMN_SIZE,DECIMAL_DIGITS from SYSTEM.CATALOG where TABLE_NAME='TEST';

Phoenix 查看表信息及修改元数据_第1张图片
显示字段含义:

字段名称 含义
TENANT_ID 租户ID(这个不用管,所租户用的)
TABLE_SCHEM 表的schema
TABLE_NAME 表名
COLUMN_NAME 列名
COLUMN_FAMIL hbase底层的列族名
DATA_TYPE 列的数据类型
COLUMN_SIZE 列的数据长度(一般指char,varchar和decimal的长度)
DECIMAL_DIGITS decimal类型的小数长度

数据类型和类型名称的对应关系
Phoenix 查看表信息及修改元数据_第2张图片

3.插入数据

upsert into test values(1, '测试', '12345', 12.12, 123.123);  

Phoenix 查看表信息及修改元数据_第3张图片

4.插入错误数据

upsert into test values(2, '测试数据', '12345', 12.12, 123.123);

Phoenix 查看表信息及修改元数据_第4张图片

5.修改元数据

upsert into SYSTEM.CATALOG (TENANT_ID,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,COLUMN_FAMILY,COLUMN_SIZE) values('','','TEST','B','INFO',4);

Phoenix 查看表信息及修改元数据_第5张图片

select TENANT_ID,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,COLUMN_FAMILY,DATA_TYPE,COLUMN_SIZE,DECIMAL_DIGITS from SYSTEM.CATALOG where TABLE_NAME='TEST';

再次查询,发现已修改成功。

6.再次插入验证

upsert into test values(2, '测试数据', '12345', 12.12, 123.123);

Phoenix 查看表信息及修改元数据_第6张图片
发现仍未成功,此时需注意修改元数据后重启HBASE,并登出phoenix-sqlline
HBASE重启后phoenix-sqlline重新登入
Phoenix 查看表信息及修改元数据_第7张图片

你可能感兴趣的:(大数据,hbase,phoenix,元数据)