2014-09-11 3 views
0

У меня есть приложение, использующее SQL Azure (бизнес-уровень) для хранения данных. Это, по сути, транзакции 24/7, которые в настоящее время обрабатывают 8-10 тысяч в день. Каждая транзакция нормализуется при регистрации, при этом для поддержки нормализации требуются новые новые ключи. В итоге каждая транзакция занимает 1-2 секунды для регистрации.Ведение журнала транзакций в Azure Table, а затем суммирование в базе данных SQL Azure для отчетности

Каждые 30 минут мы суммируем данные транзакций для многих отчетов, сгруппированных по часам, дням, неделям и месяцам. Эта операция занимает от 2 до 4 минут.

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

Мы рассматриваем возможность изменения на решение для обработки данных NoSQL для ведения журнала транзакций, возможно, для хранения таблиц Azure. Эта часть кажется относительно прочной.

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

Есть ли способ загрузить данные из табличного хранилища в Azure в пакетном режиме, который мы могли бы суммировать? Должны ли мы перемещать сводную логику в службу/приложение .NET, которая будет считывать из журнала транзакций, суммировать данные и затем записывать их в нашу базу данных SQL Azure?

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

По существу, мы ищем рекомендации или примеры по аналогичным сценариям. Спасибо за любые предложения.

ответ

0

Если я правильно понял, у вас уже есть инфраструктура отчетности, построенная поверх SQL Azure, которую вы хотите повторно использовать. В этом случае ваше решение о создании приложения, которое считывает необработанные данные из таблиц Azure, агрегирует данные и вставляет результаты в SQL Azure, похоже, является подходящим решением.

Выбор ключа раздела (pk) и строки (rk) может существенно влиять на производительность операций чтения/записи на таблицы Azure. Выбор свойств PK, RK и других таблиц зависит от того, как вы собираетесь использовать данные, ваш доминирующий запрос и поведение приложения. Команда BLOB-накопителя (http://blogs.msdn.com/b/windowsazurestorage/archive/2010/11/06/how-to-get-most-out-of-windows-azure-tables.aspx) имеет руководство по общим сценариям

Примечание: Возможно, вы уже знаете это, но есть Azure SDK на других языках, кроме .NET, которые вы можете использовать. Если возможно, вы можете также захотеть развернуть свое приложение в том же центре обработки данных, что и таблица Azure и SQL Azure для повышения производительности.

Смежные вопросы