Феникс соленый стол проблема Rowkey с Hbase

У меня есть проблема с ключом, когда я солю таблицу феникса и вставляю данные непосредственно из hbase.

Вот сценарий:

1- Создайте таблицу на Феникса с salt_buckets = 16

2- Данные вставляются в таблицу hbase болтом hbase. Hbasebolt вставляет данные непосредственно в hbase, не проходя мимо феникса.

Проблема в том, что в ключе строки феникса всегда отсутствует первый символ по сравнению с ключом строки базы, когда я запускаю запрос на выборку для феникса

Пример:

  • hbase rowkey: 1f05d01f-6a17-4d7b-8d97-df32d8856666
  • Феникс Rowkey: f05d01f-6a17-4d7b-8d97-df32d8856666

Я с нетерпением жду ответа, ребята. Заранее спасибо.

С уважением,

0 ответов

Если вы собираетесь запрашивать данные с помощью Apache Phoenix, запишите данные в эту таблицу через API-интерфейсы Phoenix.

Когда вы записываете данные в таблицу Phoenix через API-интерфейсы Phoenix, он выполняет множество функций, среди которых:

  1. Обеспечивает соответствие записанных вами данных схеме таблицы, в которую вы пишете.
  2. Обновляет любые вторичные индексы
  3. Кодирует имена столбцов так, как ожидает Phoenix.
  4. Обновляет статистику, описывающую физическое распределение данных в этой таблице, для будущего планирования запросов.

Когда вы записываете данные непосредственно в таблицу Phoenix через API-интерфейсы HBase, вы обходите все эти конструкции. В лучшем случае ваши запросы через Phoenix потерпят неудачу с очевидной ошибкой десериализации. В худшем случае устаревшие индексы будут использоваться для ответа на запрос, который вернет вам неверные результаты.

Другие вопросы по тегам