HBase функция "два столбца в одном" - PullRequest
0 голосов
/ 25 октября 2018

Следующая книга подразумевает, что есть способ поместить два столбца в один без использования семейств столбцов.Это реальная функция HBase или это просто хак для разработчиков типа «объединить два значения в одном столбце перед отправкой их в Hbase, и я буду помнить, что на самом деле это два столбца, которые я поместил туда» - хак?Если это особенность, то каков синтаксис для этого?

"Архитектуры приложений Hadoop Марка Гровера, Теда Маласки, Джонатана Сейдмана и Гвен Шапиры (О'Рейли)".:

[При установке двух столбцов foo и bar на запись] каждая логическая запись в таблице HBase будет иметь две строки в формате HBase HFile.Вот структура такого HFile на диске:

|RowKey |TimeStamp  |Column |Value
|101    |1395531114 |F      |A1
|101    |1395531114 |B      |B1

Альтернативный выбор - иметь оба значения из foo и bar в одном столбце HBase.Это относится ко всем записям таблицы и имеет следующие характеристики:

  • Оба столбца будут извлечены одновременно.Вы можете игнорировать значение другого столбца, если вам это не нужно.
  • Оба значения столбца необходимо будет обновить вместе, поскольку они хранятся как один объект (столбец).
  • Оба столбца будут устаревать вместе в зависимости от последнего обновления.

Вот структура HFile в таком случае:

|RowKey |TimeStamp  |Column |Value
|101    |1395531114 |X      |A1|B1

Iдумаю, что это отличается от помещения нескольких значений в один столбец, как показано в HBase для хранения данных для определенного столбца с 2 или более значениями для одного и того же ключа строки в Scala / Java API и их можно рассматривать как «версии»значения, потому что здесь он говорит о том, что foo и bar - это два разных столбца с двумя разными ролями.Я не нашел упоминания о такой функции в документации по Hbase https://hbase.apache.org/book.html#schema.

1 Ответ

0 голосов
/ 25 октября 2018

Я думаю, что вы можете сделать это, используя массивы значений для значения HBase.После получения значения массива, вы должны разделить и использовать.Я не думаю, что есть другой способ хранить несколько значений в одном семействе столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...