0

当我对 phoenix 表加盐并直接从 hbase 插入数据时,我遇到了 rowkey 问题。

这是场景:

1-使用 salt_buckets=16 在 phoenix 上创建一个表

2-数据通过storm hbase bolt插入到hbase表中。hbasebolt直接在hbase中插入数据,不经过phoenix。

问题是 phoenix rowkey 与 hbase rowkey 相比总是缺少第一个字符,当我在 phoenix 上运行选择查询时

例子:

  • hbase 行键:1f05d01f-6a17-4d7b-8d97-df32d8856666
  • 凤凰行键:f05d01f-6a17-4d7b-8d97-df32d8856666

我期待着得到回应。先感谢您。

亲切的问候,

4

1 回答 1

1

如果您打算使用 Apache Phoenix 查询数据,请通过 Phoenix API 将数据写入该表。

当您通过 Phoenix API 将数据写入 Phoenix 表时,它会做很多事情,其中​​包括:

  1. 确保您写入的数据与您正在写入的表的架构相匹配
  2. 更新任何二级索引
  3. 以 Phoenix 期望的方式对列名进行编码
  4. 更新描述该表中数据物理分布的统计信息,以用于未来的查询计划

当您通过 HBase API 将数据直接写入 Phoenix 表时,您绕过了所有这些构造。充其量,您通过 Phoenix 的查询将因明显的反序列化错误而失败。在最坏的情况下,陈旧的索引将用于回答返回错误结果的查询。

于 2019-12-09T16:47:17.163 回答