1

我创建了 Hbase 表 EMP,其中列族 f1 和 ID 作为行键,NAME 作为另一个列字段。

当我在这个 Hbase 表上创建 Phoenix View 时

创建视图 EMP(ID INTEGER NOT NULL PRIMARY KEY, NAME VARCHAR(40)); 并运行选择状态,Phoenix 视图显示 ID 列的负值。Hbase 中的实际值类似于 101,102,103 ......但是当我在 Phoenix 中运行“从 EMP 中选择 id”时,我得到的值为 -101 -102 -103

我尝试将 ID 的数据类型从 Integer 更改为 Unassigned_Int,这完全改变了 ID 的实际值。它是 32423 23429 12432

您能否建议如何将 Phoenix 中的主键定义为数值,而不是 varchar,因为我将对其执行 Sum(id) 而 Sum() 不会在 Varchar 上工作。

我也尝试在 Phoenix 中使用 Cast 函数,但该函数无法将 Varchar 转换为 Integer。

谢谢, 阿布舍克

4

1 回答 1

0

您是如何将数据加载到现有 HBase 表中的?如果非文本(int、float 等)值使用带有 \x 转义的十六进制字节 [] 格式进行序列化,那么您可能需要尝试使用这些值的 UNSIGNED_INT 或 UNSIGNED_FLOAT 字段创建 Phoenix 表/视图。

于 2015-03-08T13:14:26.263 回答