2015-08-03 3 views
2

Мне нужно получить представление страницы продукта с даты начала до конца. Так что я проектирую такую ​​строку.Hbase rowkey design для запроса диапазона времени

ProductId(md5)_productId_dateKey(yyyymmdd) d:pageview. 

Пример: ProductID является 1180560. RowKey с 1 августа по 30 августа будет:

0f0e02e9e24c29ad2c2b28e37e4f250b_1180560_20150801 

..... 

0f0e02e9e24c29ad2c2b28e37e4f250b_1180560_20150830 

Так что я легко получить продукт для просмотра страницы диапазон времени путем сканирования RowKey с начальной строки, остановить строку

Мои вопросы:

Избегает ли эта конструкция hotspotting?

Длина rowkey кажется слишком длинной. Будет ли это влиять на производительность?.

Есть ли способ сократить rowkey и по-прежнему обеспечить избегание hotspotting, столкновения.

Есть ли лучший дизайн для этого случая?

ответ

1

Hotspotting: всегда рекомендуется не использовать последовательные клавиши строк, даже если вы получите лучшие результаты сканирования. Подробнее here.

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

Итак, следующее: использование соли и ее префикс помогут распределить строки среди серверов регионов. This может вам помочь

+0

Кажется, что мой дизайн прав, но длина строки - 49 символов. Это нормально ? – SieuCau

+0

Да, материал md5 раздувает длину строки строки – Ramzy

Смежные вопросы