BigTable: хранение идентификаторов в качестве квалификаторов? - PullRequest
0 голосов
/ 27 февраля 2019

В документе GCP указано:

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

https://cloud.google.com/bigtable/docs/schema-design#column_families

Может кто-нибудь помочь мне с примером?Если у меня есть 1M пользователей и каждое сообщение 1000 сообщений, имеет ли смысл иметь квалификаторы столбцов 1B (1M * 1000)?

Спасибо!

1 Ответ

0 голосов
/ 27 февраля 2019

Здесь есть пара ограничений:

  1. Существует жесткое ограничение в 256 МБ на строку
  2. Строка не может быть разделена на разные узлы, что предотвращаетраспараллеливание

Таким образом, вы хотели бы избежать хранения данных от нескольких пользователей в одной строке.Таким образом, у вас не будет 1B постов в одной строкеТем не менее, имея 1M строк, каждая с 1000 квалификаторов должна подойти.Вы можете рассматривать классификаторы столбцов как ключи в Hashmap.В отличие от SQL или семейств столбцов, квалификаторы в каждой строке совершенно не связаны с квалификаторами в другой строке.

...