SQL-сервер - таблицы форм чтения панели мониторинга в реальном времени
У меня есть служба APPS, размещенная на Azure с использованием базы данных SQL Azure, содержащей около 15 таблиц: - помощь - пользователи - EventLogs и т. Д.
В настоящее время у меня около 150 тыс. Записей, и ежедневно моя БД получает около 2000 новых помощников, связанных с новыми пользователями. В моем приложении есть cron, который выполняет много операций каждые 1 мин для всех таблиц (обновление, вставка и т. Д.).
Сейчас моя цель - создать хорошую панель инструментов, которая будет отображать данные для администраторов (например, состояния помощи, количество задержек при помощи помощи и т. Д.) - в основном чтение данных из этих таблиц. Он также должен давать возможность фильтровать по датам (с - на дату) - так что в худшем случае лишь немногие пользователи могут генерировать отчет за месяц (приблизительно 60 тыс. Записей) одновременно. Я боюсь делать это непосредственно в моей базе данных, потому что у меня уже есть много операций, поэтому я беспокоюсь о блокировке.
Мои идеи: - хранилище базы данных sql -> самая большая проблема - это стоимость. - репликация во вторую БД, которая будет использоваться для запроса данных на приборной панели. - Я не уверен в этом решении. - репликация в базу данных noSQL (получение только важной информации) и использование ее в качестве источника панели мониторинга. - У меня пока нет опыта с таким решением.
Есть ли у вас какие-то предложения, что будет лучшим?
2 ответа
В конце я использовал опцию Geo-репликации из Azure, которая использует изоляцию моментальных снимков, так что это здорово! Даже MS Azure рекомендует использовать эту базу гео-репликации в качестве второй базы данных, используемой только для чтения! Я проверил и отлично работает:)
Вы можете использовать автоматизацию Azure для планирования тех задач, которые запускаются каждую минуту, а не из приложения. Вы можете узнать больше об автоматизации Azure здесь.
Вместо использования гео-репликации рассмотрите возможность синхронизации данных SQL Azure. Сделайте вашу первичную базу данных "хаб-базой" и используйте реплику для отчетов. Вы можете узнать больше о синхронизации данных SQL здесь.
Вы также можете использовать Power BI для создания панелей мониторинга, как описано здесь.
Надеюсь это поможет.