UA-11904844-8

Использование MPP-систем для подготовки данных и скоринга

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

Соединение подразумевает объединение различных источников данных для сбора всей необходимой для анализа информации. Агрегация предполагает комбинирование сведений из нескольких записей. Один из примеров — вычисление общего и среднего объема продаж, приходящегося на одного клиента, по нескольким транзакциям. К деривации и преобразованию относятся такие действия, как вычисление соотношений, например объем продаж за одну транзакцию, и применение функций, например логарифм или квадратный корень, к переменным для создания дополнительных переменных.

Логика большинства задач, связанных с подготовкой данных, относительно проста. Для решения именно таких задач и предназначены реляционные базы данных и их родной язык, известный как язык структурированных запросов (structured query language — SQL).

Современный SQL может справиться с большинством, если не со всеми, задач подготовки данных, необходимыми для анализа. Именно использование SQL положило начало развитию аналитики, встроенной в базу данных, в MPP-системах. Аналитики просто поместили задачи в базу данных, написав их на SQL, вместо того чтобы писать их на аналитическом языке, что потребовало бы извлечения информации из базы данных.

Еще 10 лет назад SQL имел некоторые ограничения, когда речь шла об определенных сложных вычислениях, необходимых для поддержки передовой аналитики. Сегодня это язык гораздо более мощный. Старое правило, согласно которому при работе с конкретной строкой запрос не учитывает данные в других строках, уже не действует. Например, существуют SQL-функции, называемые «оконными» (windowed aggregates), которые при обработке конкретной строки позволяют запросу учесть данные, находящиеся в другом месте. При помощи таких функций запрос, например, может узнать, является ли данная транзакция первой или последней для клиента, и предпринимать разные действия при обработке данных. Такая функциональность позволяет SQL решать множество дополнительных сложных задач обработки, которые ставят средства передовой аналитики в процессе подготовки данных.

До того как SQL обзавелся более широкой функциональностью, для обработки информации необходимо было извлекать ее из базы данных. К счастью, все это в прошлом, поскольку язык SQL значительно эволюционировал. Большинство операций, связанных с подготовкой данных, теперь могут быть произведены с помощью SQL прямо в базе данных. Многие специалисты до сих пор пишут код на SQL вместо использования аналитических инструментов, однако в настоящее время существует и множество встроенных вариантов, о которых мы расскажем далее в этом разделе.

Не стоит недооценивать SQL

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

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

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

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

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

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

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

На сегодняшний день существует не менее четырех основных способов проведения подготовки данных и скоринга в базе данных: 1) модель проталкивания SQL; 2) функции, определенные пользователем (UDF); 3) встроенные процессы и 4) язык разметки для прогнозного моделирования (PMML).