Феникс соленый стол проблема 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, он выполняет множество функций, среди которых:
- Обеспечивает соответствие записанных вами данных схеме таблицы, в которую вы пишете.
- Обновляет любые вторичные индексы
- Кодирует имена столбцов так, как ожидает Phoenix.
- Обновляет статистику, описывающую физическое распределение данных в этой таблице, для будущего планирования запросов.
Когда вы записываете данные непосредственно в таблицу Phoenix через API-интерфейсы HBase, вы обходите все эти конструкции. В лучшем случае ваши запросы через Phoenix потерпят неудачу с очевидной ошибкой десериализации. В худшем случае устаревшие индексы будут использоваться для ответа на запрос, который вернет вам неверные результаты.