Phoenix duplicate record -- 查询数据重复的原因和解决方案
问题说明 issue A: 开启参数后(phoenix.stats.enabled=true),使用Phoenix SQL查询数据,出现重复(查出来的数据多余HBase实际存储的内容) issue B:关闭参数后(phoenix.stats.enabled=false),Phoenix SQL性能降低。 环境 Phoenix 版本:phoenix-4.8.0-HBase-1.1 本文目的 探究stats对查询的影响 参数描述 phoenix.stats.enabled: 是否启用统计(默认值true)。 参数功能 在stats开启的情况下,major compaction以及region split 会自动调用StatisticsCollector的updateStatistic方法,收集Region的key信息,计算guideposts并写入到system.stats表中。 参数影响(并行度) Phoenix SQL通过将查询划分成更多的scan、并行执行scan来提升性能。 在guideposts之间的数据都会当成一个chunk,每一个chunk对应一个scan,通过并行执行scan来获取查询性能的提升。 chunk 的大小可以通过 phoenix.stats.guidepost.width来配置。更小的chunk意味着更多的scan&更大的并发度