因为前期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


 

相关文章:

  • 2022-12-23
  • 2021-09-27
  • 2021-12-24
  • 2021-08-24
  • 2021-11-19
  • 2021-09-22
  • 2021-05-12
猜你喜欢
  • 2021-06-06
  • 2021-05-23
  • 2021-06-23
  • 2021-07-17
  • 2021-10-10
  • 2021-07-30
  • 2021-08-10
相关资源
相似解决方案