Введение 4
Методы решения проблемы. Способы улучшения. 6
Существующие методы решения проблемы 6
Способы улучшения 9
Теоретическое представление 10
Реализация 11
Выбор веб-платформы 11
Выбор базы данных 12
Установка и настройка 13
Практические результаты 14
Пример единичного запроса 14
Шаблонизация данных 19
Практическая демонстрация 26
Инфографика 27
Граф 29
Дальнейшая оптимизация 31
Redis 32
Дублирование данных 34
Подготовка ответов на все вопросы 35
LazyLoad 36
Инвалидация 36
Сокрытие времени выполнения запросов 38
Заключение 39
Список использованных источников 40
Приложение
В современном мире быстро растущих объемов информации человеку все труднее воспринимать, запоминать и обрабатывать её. Для облегчения работы с информацией необходимо переложить обработку информации на автоматизированные системы, предоставляя человеку только необходимые и структурированные данные в привычном виде.[1, c.13]
Поставлена задача - разработать автоматизированную систему, которая будет иметь следующие свойства:
• Анализ огромных объемов информации.
• Предоставление данных за минимальное время.
• Простой и интуитивно понятный пользователю интерфейс.
• Способность распознавать и структурировать данные, предоставленные в нестандартном виде.
Такая система предоставит нам такие преимущества, как:
• Снижение временных и денежных затрат компаний на анализ информации.
• Снижение экономических рисков путем более точного предсказания тенденций роста или спада.
• Улучшение текущей экономической ситуации благодаря эффективному распределению ресурсов.
Необходимо установить области применения данных технологий для большего понимания того, в каких сферах будет востребовано наше исследование:
1. Банки
Банковые компании в первую очередь заинтересованы в структурировании потока бесчисленных ресурсов, поэтому они находятся в постоянном поиске инновационных решений для манипуляций такими объемами данных.[2, c.54]
2. Производство
Производственные компании смогут отслеживать тенденции роста или спада потребительства определенных товаров в области, что позволит им эффективно составлять производственный план поставок, минимизируя при этом излишки.
3. Правительство
Правительство может анализировать и инвестировать определенные отрасли производства для укрепления внутренней экономики страны, либо увеличения экспорта за рубеж.
В рамках исследования нам предстоит разработать веб-сервис, который будет отображать текущую мировую ситуацию с использованием показателей, записанных в базе данных, над которой можно проводить манипуляции не структурируя данные предварительно.
В ходе работы необходимо выбрать:
• Язык программирования и фреймворк для создания веб-платформы.
• Технологию хранения информации в базе данных и соответствующий фреймворк для манипуляции данными внутри неё.
• Получить набор реальных данных для тестирования работы программы.
• Вывести шаблон обрабатываемых данных и сгенерировать большой объем типовых тестовых данных для полноты картины работы программы в стрессовых ситуациях.
Задача была детально разобрана и проработана. Была подана оптимальная идея для использования хранилищ при работе с большими данными. Были получены графические результаты работы, удовлетворяющие поставленным временным ограничениям.
В совокупности, метод частичного декомпозитного кэширования на уровне базы данных и управление огромными запросами на серверной стороне позволили нам разработать собственную технологию быстрой подачи массивного количества данных для последующей визуализации.
На выходе получен рабочий продукт, готовый выступить как основа для дальнейших наработок. Пользователи платформы могут добавлять документы, подстраивать данные под свои нужды на основе паттерна MVC, а затем рендерить с помощью библиотеки D3.
Дальнейшей перспективой разработки является построение SaaS (Software-as-a-Service), которую можно модульно внедрять в другие проекты.
1. Scott Murray, Interactive Data Visualization for the Web. O'Reilly Media, 2013.
2. Cole Nussbaumer Knaflic, Storytelling with Data: A Data Visualization Guide for Business Professionals. John Wiley & Sons, 2015.
3. Nathan Yau, Visualize This: The Flowing Data Guide to Design, Visualization, and Statistics. John Wiley & Sons, 2012.
4. Eileen and Stephen McDaniel, The Accidental Analyst. 2013.
5. Ruby on Rails API http://api.rubyonrails.org/. 2017.
6. MongoDB documentation https://docs.mongodb.com/. 2017.
7. D3js docs https://github.com/d3/d3/wiki/API-Reference. 2017.
8. SAS company, Data Visualization Techniques. SAS Institute Inc., 2014.
9. Scott Berinato, Good Charts: The HBR Guide to Making Smarter, More Persuasive Data Visualizations. Harvard Business Review Press, 2016.
10. Sandra Rendgen and Julius Wiedemann, Information Graphics. 2012.