Как бы я разработал ключ строки в Bigtable, если бы я проектировал приложение, которое должно искать теги / столбцы? - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь спроектировать систему поиска, подобную Netflix, и мне трудно обдумать идею о том, как разработать оптимальный ключ строки, который бы сводил к минимуму общее сканирование таблицы, когда пользователь выполнил поиск по столбцу, например название шоу или тегов.

Предполагая, что схема в BigTable будет иметь такие столбцы, как: showName, сезон, эпизод, эпизодName, теги

Как я могу спроектировать мой ключ строки таким образом, чтобы если бы пользователь искал указанный столбец c, он избежал бы полного сканирования таблицы? Или мне нужно изменить структуру базы данных?

Или системы, подобные Netflix, используют другой механизм для более оптимального поиска контента?

1 Ответ

0 голосов
/ 26 марта 2020

Я бы go сначала для двух таблиц:

  1. Таблица эпизодов с ключом: showName # season # эпизод, который указывает, как найти эпизоды.
  2. И таблица тегов для поиск тегов с помощью простого ключа: тег, который указывает на ключ строки в таблице эпизодов.

Например, эпизод или серия с тегом «Ужас и драма» дважды появятся в таблице тегов, сначала под драмой, а затем под террором.

...