Как реализовать механизм * финансовой * статистики в реальном времени из данных сервера SQL для отображения на приборной панели? - PullRequest
1 голос
/ 24 июня 2009

В настоящее время мы используем автоматизацию Excel для расчета статистики временных рядов и сохранения результатов в нашей базе данных SQL Server 2008 для удобства отображения / сортировки / и т. Д. позже.

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

Как только UX спроектирован, куда мне обратиться за реализацией?
Сторона сервера, сторона клиента? F # выглядит отличным языком для такого типа обработки данных, и я готов нанять разработчика, но должен подумать, что есть другие инструменты, которые мы можем использовать, прежде чем идти по этому пути.

Спасибо за ваши предложения.

Ответы [ 4 ]

1 голос
/ 14 сентября 2009

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

(a) вызывает событие, когда какие-либо новые данные добавляются или удаляются

(b) Не пересчитывать, это может быть очень дорого, вместо этого делать только частичные вычисления, вычисляя разницу между старыми данными и новыми данными.

Вот глупый пример:

Запись A = 2

Запись B = 1

Запись C = 1

Запись D = 5

теперь предположим, что ваша панель инструментов вычисляет среднее значение, в этом простом примере мы будем хранить (возможно, в той же базе данных) некоторые результаты частичных вычислений: например, -

NumRecords = 4 RecSum = 9

Mean = [RecSum]/[NumRecords]

Таким образом, при изменении данных можно сделать только три вещи (для каждой транзакции):

запись удалена (случай 1), запись добавлена ​​(случай 2), запись изменена (случай 3):

вариант 1 (запись А удалена), таким образом:

NumRecords-1> 3 RecSum- {Запись значения}> 9-2 = 7

Среднее = [7] / [3]

И вы можете делать аналогичные «частичные» вычисления для других случаев, идея состоит в том, что вы не выбрасываете свое последнее решение и рассчитываете различия. конечно, для более сложной статистики это будет более сложным.

Но, как вы можете видеть, если вы представите, что у вас миллион записей, то нет необходимости извлекать все эти записи снова, чтобы полностью пересчитать, что позволило бы им быть "в реальном времени"

1 голос
/ 24 июня 2009

На стороне сервера, так же, как у вас сейчас, с результатами, хранящимися в базе данных, но замените автоматизацию Excel на процедуры / функции CLR или даже ванильные SQL-процессы для простых вещей.

CLR-сборки, написанные на F #, могут иметь большой смысл.

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

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

0 голосов
/ 24 июня 2009

Для веб-приложения, если вы готовы потратить немного денег на покупку инструментов и сэкономить деньги, самое привлекательное решение, с которым я столкнулся, - это FusionCharts.

http://www.fusioncharts.com/LiveDemos.asp

Я имел некоторое отношение к Flex и был впечатлен. Я не говорил ни с кем, кто разрабатывал в FusionCharts, но я должен сказать, что они выглядят чертовски хорошо!

0 голосов
/ 24 июня 2009

Прямо сейчас, способ показать панели мониторинга и ключевые показатели производительности для ваших витрин данных и хранилищ - это Сервер Performance Point . Однако в следующем году это объединится с MOSS. Число игроков на этом рынке уменьшается с каждым днем ​​... MS приобрела Proclairty, SAP взяла OutlookSoft, а Oracle - Hyperion. Честно говоря, я бы искал партнера MS (я неравнодушен к Avanade), чтобы помочь определить и реализовать вашу стратегию BI.

...