hbase踩坑
1、没加索引,导致查询耗时慢
背景:因为业务需要在表里加了activityIdUnique字段,同时将原先的查询条件由activityId改为activityIdUnique,
过程:业务代码改完,发到QA上后SQL监控显示一条查询语句耗时将近10s。
了解到之前建表的时候PK是指定了activityId的,也就是说加了索引,于是求救运维帮忙将activityIdUnique加上索引,耗时降回到几十毫秒级别。
结论:合理加索引,(疑惑点就10万级别数据竟然也会这么慢)
2、增加索引,导致写报错
背景:在监控SQL时发现另外一张表耗时也很慢,于是让DBA也一起加上了对应的索引。
过程:加上后运行了一段时间,突然开始报错,错误信息:
{"errorNodeIndex":3,"shortErrorMsg":"\n### Error querying database. Cause: java.sql.SQLException: ERROR 212 (22012): Arithmetic error on server. Overflow mp_search_center:index_hb_goods_detail,,1642752022848.2a289be7d1e3e319f1ce49c93cf0bbc9.\n### The error may exist in URL [jar:file:/app"}。
此问题尚未查到原因。
3、删除索引,导致写报错
背景:由于2的报错,临时又让DBA将索引删掉。
过程:删掉后发现读写依旧报错,错误信息:
ERROR 1121 (XCL21): Write to the index failed. disableIndexOnFailure=false, Failed to write to multiple index tables: [mp_search_center:index_phoenix_index_test20220121] ,serverTimestamp=1642753893931,\n\tat
DBA重启hbase后依旧异常,重启应用后恢复正常。
结论:删除索引后,需重启应用才可生效(怀疑phoenix有缓存)。官方建议删除表索引时业务侧暂停表读写(https://issues.apache.org/jira/browse/PHOENIX-4977 )
posted on 2022-01-26 16:01 Iversonstear 阅读(164) 评论(0) 编辑 收藏 举报