Следующая книга подразумевает, что есть способ поместить два столбца в один без использования семейств столбцов.Это реальная функция 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.