2016-01-29 3 views
4

Итак, мне нужно внедрить систему статистики/данных/систему источников данных.Наилучший подход к расширяемой системе статистики

Я в принципе хочу передать данные периодически в «корень» и иметь его обрабатывать и обновлять соответствующие свойства для доступа по всему приложению - в качестве источников данных для построения графиков, этикеток, чеков и т.д. статуса

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

Редактировать для ясности: источники данных будут:

  • Локальные файлы XML (скорее всего),
  • Local SQL,
  • Дистанционно полученные данные JSON,
  • Дистанционно приобрела SQL.

Типы подсистем (ограниченный список, только для иллюстративных целей):

  • соединения статусы - как BOOL и текст,
  • Graphing/GridView источники данных,
  • Processing/Прогнозные методы (например распределение вероятностей и т. д.),
  • Общие статистические профили на основе клиента/отдела,
  • Общие статистические профили, основанные на дате/ti мне/пролеты,
  • подробнее ...

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

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

Я записал некоторые мысли по этому поводу, как мозговой штурм идеи.

  • Паттерн Наблюдатель

    Эта модель кажется хорошей, однако она имеет некоторые недостатки, в том смысле, что все подводные лодки будут уведомлены вместо избирательных единиц. Это заставит меня либо проверять данные, либо обрабатывать их, либо создавать несколько наблюдаемых объектов для каждого типа данных и каскадировать их на подсистемы. Мне определенно нравится, насколько это возможно, также позволяет мне подключаться к нескольким типам источников данных в случае необходимости. С другой стороны, также кажется, что много работы для получения каких-либо результатов. Оплатив это как бы так.

  • Стратегия

    Эта модель также представляется актуальным, но по-другому.Храните обработку необработанных данных отдельно и просто родительский класс, который содержит всю статистическую информацию (так сказать). Мне это нравится, потому что вся информация хранится централизованно, а «узлы» обрабатывают ее и возвращают. Позволяет легко получить доступ и хранить, однако количество свойств (если я не разделяю их, вероятно) будет огромным.

  • Пользовательские события.

    Теперь - я думаю, это COULD можно рассматривать как переосмысление первого. Но мне нравится контроль, который он предлагает.

  • Комбинация наблюдателя и стратегии.

    Это может быть странно, но выслушайте меня. Таким образом, у вашего наблюдаемого объекта есть данные, переданные ему, которые каскадируются до соответствующих подмножеств, которые будут обрабатывать эту информацию по разным причинам, затем используя стратегию от каждого из этих подсайтов и обрабатывая информацию соответственно и передавая ее обратно в подпрограмму хранение/доступ.

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

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

Мысли? Пробовал быть конкретным, но оставаться на тему.

ответ

2

Я закончил работу с помощью комбинации наблюдателя и стратегии с несколькими событиями, которые были ввезены. Смешно, как это работает. Он действительно работает очень хорошо - легкий, расширяемый и масштабируемый при тестировании с «большими» (5-7gigs) вводами. Желаемые результаты каждый раз. Хотя помощи не было, я думал, что разделю тот факт, что комбинация наблюдателей/стратегий действительно работает хорошо.

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