Файл: Операции, производимые с данными (Описание работы с данными).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 31.03.2023

Просмотров: 186

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2.2 Постановка проблемы и задач исследования

Сегодняшней проблемой всей области e-commerce является полная несовместимость мощных инструментов с анализом большого потока данных в режиме реального времени. Таким инструментам постоянно требуется участие человека и постоянные выгрузки данных. Поэтому требуются некоторые другие инструменты, в ожидании того, что в будущем и мощные передовики индустрии анализа дотянут свою функциональность для ведения подхода в режиме реального времени. Более того большинство организаций сегодня видят основные инструменты лишь в качестве «поверхностного анализа» данных, а именно – отображение основных метрик в удобных срезах для менеджеров, на основе которых все так же будут приниматься ошибочные решения ввиду отсутствия по-настоящему ценной информации, в виде формата основного потребителя или потенциала кросс-продаж.

Таким образом, главной целью исследования является создание нового инструмента по покрытию разработанной карты новых показателей аналитики данных e-commerce для дальнейшей помощи в принятии управленческих решений. Для достижения поставленной цели автором были поставлены следующие задачи:

  • определить недостатки имеющихся систем обработки потоковой информации в выбранной области и выбрать системную базу для дальнейшей реализации нового инструментария для принятия решений;
  • составить карту вычисляемых показателей маркетинговых компаний для определения ценности принимаемого решения бизнес подразделением на основе статистических инструментов;
  • построить новый двухзвенный инструмент на основе выбранных решений решающий проблему принятия управленческих решений в рамках крупных маркетинговых компаний бизнеса.

2.3 Инструментальные методы и средства поставленной проблемы

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


  1. Ограниченные данные.

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

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

  1. Неограниченные данные – пакетное решение.

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

    1. Фиксированные окна.

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


Однако на самом деле в большинстве систем по-прежнему существует проблема полноты: если некоторые из событий задерживаются в пути к журналам из-за сетевого раздела? Что делать, если события собираются по всему миру и должны быть перенесены в общую папку перед обработкой? Что делать, если мероприятия происходят с мобильных устройств? Это означает, что может потребоваться смягчение (например, откладывание обработки до тех пор, пока вы не убедитесь, что все события собраны или повторная обработка всего пакета для данного окна всякий раз, когда данные задерживаются).

    1. Сессии

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

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

  1. Неограниченные данные – потоковый подход

В противоположность специальному характеру большинства методов неограниченной обработки данных на основе пакетной обработки, потоковые системы строятся для неограниченных данных. Как уже было отмечено ранее, для многих реальных источников распределенных входных данных не только приходится иметь дело с неограниченными данными, но также и с данными, которые:

  • Неупорядоченные по времени события. То есть необходим какой-то поток, образованный на основе временного промежутка, внутри общего потока данных, чтобы анализировать данные в контексте, в котором они имели место.
  • Варьирование временного перекоса. То есть можно просто предположить, что большинство данных для временного события X будет всегда попадать в некоторую постоянную эпсилон времени Y.

Есть несколько подходов, которые можно использовать при работе с данными, которые имеют эти характеристики. Данные походы можно квалифицировать в четыре группы.


    1. Время-агностик.

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

      1. Фильтрация.

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

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

      1. Внутренние соединения.

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

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

    1. Приближение.

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


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

    1. Окно по времени обработки и окно по времени события.

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

  • Фиксированные окна. Фиксированные окна нарезаются на отрезки времени с фиксированным размером временной длины. Сегменты для фиксированных окон применяются равномерно по всему набору данных, который является примером выровненных окон. В некоторых случаях желательно постепенно сдвигать окна для различных подмножеств данных (например, за ключ) для распространения нагрузки завершающего окна более равномерно в течение долгого времени, что вместо того, является примером не выровненных окон, так как они изменяются по данным
  • Раздвижные окна. Обобщение фиксированных окон, раздвижные окна определяются фиксированной длины и фиксированного периода. Если период меньше длины, то окна перекрываются. Если период равен длине, система попала в покрываемое окно. И если срок больше, чем длина, у системы есть странный вид окна выборки, который выглядит только на подмножестве данных с течением времени. Как с фиксированными окнами, раздвижные окна, как правило, выравниваются, хотя могут быть выровненными путем оптимизации производительности в некоторых случаях использования.
  • Сессии. Пример динамических окон, сеансы которых состоят из последовательности событий, заканчивающихся щелью неактивности больше, чем какой - то тайм - аут. Сессии обычно используются для анализа поведения пользователей с течением времени, путем объединения ряда событий, связанных для пользователя во времени (например, последовательность видео, просматриваемых пользователем в рамках одномоментного присутствия за компьютером в одном заседании). Сессии интересны тем, что их длина не может быть определена априори заранее автоматически независимым алгоритмом; они зависят от фактических данных, которые поступают от участвующих в данных итерациях пользователей. Данный вариант также является каноническим примером выровненных окон, так как сеансы практически никогда не бывают идентичными друг другу в разных подмножествах данных (например, в любой момент это могут быть различные пользователи).