phoenix二级索引-重建索引后数据更新失败,问题原因分析
因为前期phoenix索引设置有问题,需要更新一下索引。我们先删除,然后再新建索引。语句如下:
drop index my_idx on my_table;
create index my_idx on my_table(column1);
但是遇到一个问题,新建索引后,upsert更新语句一直报错,
索引更新失败。经排查,发现是新建的索引并没有生效。排查过程:查看索引有没有成功,最终在hbase看状态,discribe 索引名
需要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