Создание базы данных агрегации / сводной отчетности по Oracle, Sql Server и Mongodb - PullRequest
4 голосов
/ 01 марта 2012

Это дизайн, так как я не делал ничего подобного в прошлом, и это хороший вызов. У меня есть сервер, который поддерживает Oracle, Sql Server и Mongodb. Вы можете выбрать, какой использовать при запуске. По сути, каждый сервер хранит XML-пакеты, которые разбиты на составляющие их элементы.

Мне нужно создать базу данных отчетов, которая предоставляет сводные и сводные данные для отчетов для панели инструментов, но проблема (возможность) - Mongodb. Я мог бы легко использовать службы отчетов SQL Server для создания базы данных reportdb, то же самое с Oracle, или я мог что-то вроде Crystal, который работает против обоих, или даже создать базу данных и установить набор триггеров для каждой таблицы с некоторой логикой pl / sql с Oracle или T-Sql с Sql для создания базы данных отчетности на лету. И это позаботится об отчете. Но их это mongodb. Мало или нет инфраструктуры отчетности, конечно, не за пределами BIRT или jaspersoft (Java). Я использую C #.

Я думал о серверном компоненте c #, который перехватывает входящие xml-пакеты, извлекает данные из соответствующих полей элемента и записывает их в базу данных отчетов, возможно, что-то вроде sqlite (которая может быть слишком маленькой). Если бы он работал на сервере SQL или Oracle, то я бы использовал этот экземпляр базы данных для поддержки базы данных отчетности.

В любой базе данных я действительно поддерживаю данные за 6 месяцев. Данные будут классифицированы как 24 часа, 1 неделя, 1 месяц, 3 месяца, 6 месяцев, с прогрессивным архивированием на сжатие и резервное копирование в БД.

Но вот тут-то и туманно. Например, используя sqlite в качестве базы данных отчетов, и mongodb в качестве базы данных xml. Принимая пример. Если пользователь хочет выполнить детализацию, нужно ли мне предоставлять какое-то динамическое обновление, которое будет извлекать дополнительную отчетную информацию из Mongodb, или все это можно сделать на этапе компонента сервера, когда оно записано в sqlite.

Или все f bol.cks

Любые идеи или мысли очень ценятся. Боб.

Ответы [ 4 ]

3 голосов
/ 07 марта 2012

Что касается получения данных от mongodb для отчетности, вы можете написать свой собственный код поверх 1) mongodb-запросы 2) Структура агрегации 3) В базе данных Map / уменьшить или 4) Используйте разъем hadoop. Вы можете использовать драйвер C # для этого. Кроме того, как вы упомянули, есть интеграция с Jaspersoft или Pentaho (http://wiki.pentaho.com/display/BAD/Create+a+Report+with+MongoDB)

2 голосов
/ 09 марта 2012

Я думаю, что Biztalk Server от Microsoft лучше всего соответствует вашим потребностям. Вы можете использовать конвейерный компонент сервера Biztalk для фактической обработки входящих сообщений. (Вы можете выполнять простые продвижения свойств, преобразования и т. Д.) Вы можете использовать Biztalk Orchestrations для реальной обработки данных. А для агрегации и отчетности вы можете использовать Мониторинг деловой активности Biztalk . Он поддерживает агрегирование данных в реальном времени и помещает их в вашу базу данных. Он имеет портал BAM, с которого вы можете видеть все сохраненные и агрегированные данные. Если вам нужен собственный стиль отчетов, вы можете использовать Microsoft Report Builder 3 и развертывать отчеты с использованием SSRS.

1 голос
/ 09 марта 2012

Взгляните на Nucleon BI Studio .Вы можете получить полнофункциональную бесплатную 30-дневную пробную версию, а полная версия стоит $ 250.Я использовал его в прошлом, это неплохо, и часть того, что стоило бы его развивать.

Я никак не связан с компанией.

1 голос
/ 01 марта 2012

Возможно, я не совсем понимаю ваш вопрос, но я сделаю попытку: сначала ваш вопрос, обобщенный.

Вы хотите создавать отчеты на основе разных типов хранилищ данных: SQL, SQL или база данных документов. Текущие параметры, которые, по вашему мнению, у вас есть, представляют собой различные типы отчетов.

У вас есть различные точки для получения данных. Вы можете перехватывать данные по мере их поступления в систему или получать информацию из ваших баз данных. Чтобы составить динамический отчет с детализацией, он действительно зависит от типа инструмента отчетности, который вы хотите использовать. Вам просто нужно построить фасад, который скрывает хранилище данных - либо перехватывая пакеты и сохраняя их в базе данных по вашему выбору, либо фактически создавая их из выбранного вами хранилища данных через ту же абстракцию / фасад. Вы даже можете подумать о гибридном решении, в котором вы инициализируете из хранилища данных, например, mongo, при инициализации компонента отчетности, а затем динамически обновляете на основе входящих пакетов.

Все зависит от того, куда вы хотите пойти.

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