Сценарий ключевой строки Bigtable, чтобы избежать горячей точки? - PullRequest
0 голосов
/ 22 декабря 2018

Сценарий с ключом строки Bigtable, чтобы избежать появления горячих точек?

Компании необходимо, чтобы вы создали схему в Google Bigtable, которая позволит проводить исторический анализ записей за последние 2 года.Каждая поступающая запись отправляется каждые 15 минут и содержит уникальный идентификатор устройства и запись данных.Наиболее распространенный запрос для всех данных для данного устройства за данный день.Какую схему использовать?

  • A.Rowkey: date # device_id, данные столбца: data_point
  • B.Rowkey: дата, данные столбца: device_id, data_point
  • C.Rowkey: device_id, данные столбца: дата, data_point
  • D.Rowkey: data_point, данные столбца: device_id, дата
  • E.Rowkey: date # data_point, данные столбца: device_id

Каков наилучший вариант выше?

1 Ответ

0 голосов
/ 06 января 2019

Согласно документации Bigtable :

Строки сортируются лексикографически по ключу строки.

Это означает, что во избежание появления горячих точекобычные запросы должны возвращать последовательные результаты.

По сути, вы хотите запрашивать строки с заданной датой и идентификатором устройства.Google Cloud Bigtable позволяет запрашивать строки по определенному префиксу ключа строки.Поскольку наиболее часто запрашиваются все данные для данного устройства и даты, устройство и данные должны быть частью запроса префикса строки и должны быть первыми двумя записями в ключе строки.

...