Как вы масштабируете postgres до миллиардов строк для этой схемы? - PullRequest
0 голосов
/ 04 марта 2020

Рассмотрим этот сценарий.

Вы являетесь службой сокращения ссылок, и у вас есть две таблицы:

  • Ссылки
  • Клики - преимущественно только для добавления, но для их создания потребуется полное сканирование. агрегаты, которые должны быть (но, вероятно, не будут) быстрыми.

Links - это миллионы строк, Clicks - это миллиарды строк.

Стоит ли разделить их на отдельные устройства? Какой правильный подход для получения максимальной отдачи от postgres для такого рода проблем?

Ответы [ 2 ]

1 голос
/ 04 марта 2020

При разбиении он должен быть достаточно масштабируемым. Раздел ссылок на ха sh сокращенной ссылки (ключ, используемый для поиска). В зависимости от ваших требований к агрегации и отчетности вы можете разделять клики по дате (может быть, один раздел в день?). Когда вы создаете новый раздел, старый может быть суммирован и перемещен в историю (или удален, если суммированных данных достаточно для ваших нужд.

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

В дополнение к разбиению, я предлагаю предварительно агрегировать данные. Если вам никогда не нужны отдельные данные, а только агрегированные данные за день, выполните агрегирование и материализуйте их в другой таблице после окончания каждого дня. Это значительно сократит объем и сделает данные управляемыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...