phoenix二级索引-重建索引后数据更新失败,问题原因分析

因为前期phoenix索引设置有问题,需要更新一下索引。我们先删除,然后再新建索引。语句如下:

drop index my_idx on my_table;

create index my_idx on my_table(column1);

但是遇到一个问题,新建索引后,upsert更新语句一直报错,

phoenix二级索引-重建索引后数据更新失败,问题原因分析

索引更新失败。经排查,发现是新建的索引并没有生效。排查过程:查看索引有没有成功,最终在hbase看状态,discribe 索引名

phoenix二级索引-重建索引后数据更新失败,问题原因分析

需要rebuild一下,让索引生效。

让索引生效有两种方式:

1、推荐的:使用rebuild方式,ALTER INDEX IF EXISTS my_idx ON my_table REBUILD

2、在hbase中,enable这个索引。不推荐使用,原因:因为在phoenix中的状态是不会变更的

 

经过本次处理过程,总结如下:

重建索引需要三步:

drop index my_idx on my_table;

create index my_idx on my_table(column1);

ALTER INDEX IF EXISTS my_idx ON my_table REBUILD