Введение - Программа расчета агрегатов по накапливающимся данным для построения отчетов
Бесчисленное количество веб-приложений полагается на базы данных. Нередко архитектура этих баз данных недальновидна с самого начала, а постоянно меняющиеся требования (что не редкость в веб-разработке, особенно на волне стартап-бума) вынуждают разработчиков вносить еще больше недальновидных изменений. По мере развития проекта сложность схемы реляционной базы данных стремительно возрастает. И хотя сама по себе высокая сложность схемы не представляет большой угрозы, некоторые задачи становятся нетривиальными. Одна из таких задач -- подсчет агрегатов.
Агрегирующие запросы на вроде SELECT SUM имеют алгоритмическую сложность O(N) при работе с одной таблицей, то есть в самом простом случае. [5] [6]
В сложной нормализованной базе данных подсчет агрегата по нескольким таблицам становится алгоритмически нетривиальным. Задача лишь усложняется несовершенством популярных DBMS вроде MySQL. Как и многие проблемы масштабирования, эта проблема неизбежна, и проявляется неожиданно. При этом, универсального решения нет. К несчастью, все существующие решения плохо подходят средним проектам, когда вычислительные мощности еще достаточно скромные и вполне справляются с нагрузкой, но уже имеют большой объем накопленных данных, чтобы проблемы масштабирования начали проявляться.
Документо-ориентированные DBMS набирают популярность в вебе, и предлагают другие подходы к агрегации, но и они имеют преимущества в распределенных вычислениях.
Серьезные специализированные решения для анализа данных мало популярны среди веб-разработчиков и часто игнорируются. Вполне возможно, что незаслуженно, но этот вопрос выходит за рамки данного исследования.
Задача этого проекта -- предоставить еще одно решение этой проблемы, которое позволит получать значения агрегатов из сложных баз данных с меньшей алгоритмической сложностью, нежели их прямой запрос, при этом лишенное некоторых недостатков, присущих существующим решениям.
Похожие статьи
-
Предлагаемая библиотека хранит все данные в отдельных таблицах, таким образом он не обязан использовать ту же СУБД, что и основное приложение. В качестве...
-
Целостность, Миграция - Программа расчета агрегатов по накапливающимся данным для построения отчетов
Еще одна возможная проблема -- целостность данных. Если приложение не уведомит Библиотеку об изменении данных, то ошибка останется в агрегате навсегда....
-
Ожидается, что предлагаемая библиотека даст большой прирост в производительности операций чтения, заполнив собственную нишу среди решений проблем...
-
MapReduce, Кеш - Программа расчета агрегатов по накапливающимся данным для построения отчетов
MapReduce -- модель распределенных вычислений, используемая для параллельных вычислений над большими объемами данных в кластерах. MapReduce позволяет...
-
Реализация, Composer - Программа расчета агрегатов по накапливающимся данным для построения отчетов
Для эффективного тестирования и демонстрации библиотеки было решено разработать PHP-приложение, состоящее из: 1. Менеджера зависимостей composer; 2....
-
Рисунок 1. Пример сложной схемы БД Пример проблемной ситуации, которую этот проект должен разрешить представлен на рис. 1. Организатор проводит события...
-
Удивительно, но StatMetric дает выигрыш в производительности даже на малых масштабах, в любом случае возвращая результат быстрее, нежели обычный запрос....
-
Методология Все тесты будут необходимо провести на разных размерах базы данных, чтобы увидеть, как классические JOINы скалируются в сравнении с...
-
Классы StatMetric содержат всю логику библиотеки и предоставляют интерфейс для обновления и получения значений агрегатов. Рисунок 4. Диаграмма классов...
-
База данные кеширование денормализация Предлагаемое решение -- скомбинировать некоторые идеи кеширования и денормализации в специальной библиотеке...
-
Заключение, Источники - Программа расчета агрегатов по накапливающимся данным для построения отчетов
Расчет агреатов в сложных базах данных -- ресурсоемкая задача. Известные способы сокращения времени ответа запросов не всегда приемлемы, что поднимает...
-
Для замеров производительности использовалось три запроса, представляющих три наиболее типичные проблемные рассчеты. Ниже приведены эти запросы на языке...
-
Модель данных - Программа расчета агрегатов по накапливающимся данным для построения отчетов
В файле dist/schema/schema. yaml (см приложение А) была описана схема будущей базы данных, по которой при помощи Doctrine были сгенерированы пустые...
-
Расчет таблицы - Программа построения равновесных стратегий для игры
В ходе разработки программы, для эффективной работы основного алгоритма программы будет понадобилось рассчитать некоторые предрасчетные данные. Для этого...
-
Введение - Программа построения равновесных стратегий для игры
Игра стратегия математический С появлением компьютеров широкое развитие получила тема искусственного интеллекта. Одним из направлений искусственного...
-
Разработка программного обеспечения предполагает необходимость координации значительного количества весьма разноплановых работ, в которых принимают...
-
Подход NoSQL - Технологии больших данных: анализ и выбор решения для реализации проекта
Понятие NoSQL означает "Не только SQL" или "Не SQL". Термин получил известность, начиная с 2009 год, когда развитие интернет-технологий и социальных...
-
Расчет равновесия по Нэшу - Программа построения равновесных стратегий для игры
В рамках данной ВКР была создана программа для расчета равновесных стратегий с помощью метода фиктивного разыгрывания. Благодаря использованию...
-
Стратегии - Программа построения равновесных стратегий для игры
Так как игра случайная, платежная матрица будет состоять из математических ожиданий возможных сочетаний стратегий. Стратегия в данной игре определяет...
-
Введение - Технологии больших данных: анализ и выбор решения для реализации проекта
В конце 2000х годов были уже сформированы решения класса Business Intelligence, которые являются альтернативой традиционным методам управления базами...
-
Описание исходных данных На текущий момент (в силу большой загрузки IT-отдела) не реализован доступ к серверу с ХД, маркетинговые данные выгружаются в...
-
Полное наименование разрабатываемой системы - корпоративная информационная система "Бюджетное планирование и отчетность" группы компаний, занимающейся...
-
В связи с увеличением числа сотрудников, работающих в компании, а также с расширением рабочего проекта, возникла проблема, связанная с версионностью...
-
Интерпретация полученных результатов - Программа построения равновесных стратегий для игры
При изучении равновесных стратегий в модели jam-fold для двоих игроков можно заметить тот факт, что стратегии зависят только от соотношения...
-
Введение В настоящем дипломном проекте исследуются вопросы, связанные с генерацией искусственных биометрических образов. Рассматриваются различные...
-
Введение - Различные виды программ для Multi-Touch столов
Мобильные телефоны, планшеты, платежные терминалы, стенды с интерактивными картами торговых центров, Multi-Touch стенды на выставках - все это яркие...
-
В данном разделе была разработана функциональная схема работы программного комплекса, которая в общем виде описывает состав комплекса, характер и виды...
-
Равновесие по Нэшу - Программа построения равновесных стратегий для игры
В теории игр равновесием по Нэшу называется ситуация при который ни один из игроков не может увеличить свой выигрыш, в одностороннем порядке меняя свое...
-
Введение - Составление программы для решения системы уравнений
А) Постановка задач Б) Решения поставленной задачи 4. Порядок выполнения работы А) Изучение литературы Б) Составление алгоритма. В) Составление программа...
-
Введение - Разработка программы для реализации редактора временных графов синхронизации
Математическое моделирование дискретно-событийных динамических систем является относительно молодым направлением науки теории управления. Разработка...
-
Программа StudyProgram предназначена для того, чтобы помочь в усвоении приемов составления программ для машины Поста. Работа с программой осуществляется...
-
Основные конструкции для разработки базы данных - База данных "Кинотеатр"
База данных - это организованная структура, предназначенная для хранения информации. Систему управления базой данных (СУБД) можно определить, как...
-
Создание отчета "Турнирная таблица женский биатлон" 1. Создадим отчет с помощью Мастера отчетов. Для этого совершаем следующие действия Биатлонисты>...
-
Отчеты, Макросы - Проблема организации и хранения данных
Отчеты используются для отображения данных таблицы или запроса в удобном для пользователя формате (с заголовками и номерами страниц). Больше всего...
-
Обоснование выбора средств разработки проекта Для реализации корпоративной информационной системы "Бюджетное планирование и отчетность" в исследуемой...
-
При разработке практически всех инструментальных средств за основу принимается методология автоматизации проектирования на базе использования прототипов....
-
Информационная система крупной организации, как правило, представляет собой исторически сложившуюся совокупность отдельно работающих систем, которые...
-
Для осуществления первой задачи данной работы был проведен проведение подробный анализ семи наиболее распространенных технологий работы с Большими...
-
Сравнение аналогов - Разработка программы для реализации редактора временных графов синхронизации
Поскольку конечной целью работы был редактор сетей Петри, интегрированный с внешней библиотекой алгебраических вычислений, было рациональным рассмотреть...
-
Объектно-ориентированные СУБД Несмотря на большую популярность реляционных СУБД, развитие технологии появления данными на них не остановилось. Развитие...
Введение - Программа расчета агрегатов по накапливающимся данным для построения отчетов