Синхронизация данных из MySQL в хранилище значений ключей NoSQL - PullRequest
0 голосов
/ 31 мая 2018

У меня устаревшая система с MySQL на бэкэнде и python в качестве основного языка программирования.

Недавно у нас появился сценарий, в котором нам нужно отобразить панель мониторинга с информацией, представленной в базе данных MySQL.Данные в таблице меняются каждую секунду.

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

У меня также есть несколько клиентов, которые отслеживают эту панель, которая обновляет статистику.

  • Мне нужно заказать эти данные в режиме реального времени, поскольку люди делают ставки в режиме реального времени.
  • Я не предпочитаю выполнять запросы к MySQL, потому что в любую секунду у меня может быть несколько тысяч клиентов, запрашивающих базу данных.Это создаст нагрузку на базу данных.

Пожалуйста, совет.

1 Ответ

0 голосов
/ 01 июня 2018

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

У меня есть примерыиспользования упорядоченных по KV карт в rbotzer / aerospike-cdt-examples .

Можно использовать аналогичный подход, когда ключом является идентификатор пользователя, а ставка представляет собой список со структурой [1343, { foo: bar, ts: 1234, this: that} ].Сумма ставки в центах (целое число) является первым элементом списка, а вся остальная информация находится на карте во второй позиции элемента.

Это позволит вам обновить ставку пользователя с помощью одной операции на карте.возвратите ставку пользователя с помощью одной операции, упорядочите по рангу (по сумме ставки), чтобы получить заказанные верхние ставки, получить все ставки в определенном диапазоне и т. д. У вас будет одна запись на элемент со всеми предложениямина этой карте, отсортированной по KV.

...