当我在apache phoenix上执行 UPSERT 命令时,我总是看到Phoenix在hbase中添加了一个空值的额外列(名为_0),此列(_0)是自动生成的凤凰,但我不需要它,就像这样:
ROW COLUMN+CELL
abc column=F:A,timestamp=1451305685300,value=123
abc column=F:_0, timestamp=1451305685300, value= # I want to avoid generate this row
你能告诉我如何避免这种情况吗?非常感谢你!
答案 0 :(得分:3)
“在创建时,为了提高查询性能,空键值为 添加到任何现有行的第一列系列或默认值 如果没有明确定义列族,则列族。 Upserts还会添加此空键值。这通过设置一个键值列来提高查询性能,我们可以保证始终存在,从而最大限度地减少必须预测并随后返回给客户端的数据量。“
答案 1 :(得分:0)
关于您的问题是否可以避免:
您可以通过在sql末尾添加以下语句来解决此问题:
func main() {
go func(){
fmt.Println("Break Point 1")
}()
fmt.Println("Break Point 2")
time.Sleep(100 * time.Second)
fmt.Println("hello")
}
仅当您用phoenix查询某个表,然后又用另一个不知道该phoenix特定虚拟值的系统访问该表时,才应该这样做。