UA-11904844-8

Встроенные процессы

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

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

Язык разметки для прогнозного моделирования

Язык разметки для прогнозного моделирования (рredictive modeling markup language, PMML) — способ передачи результатов моделирования от одного инструмента другому. Концептуально он вмещает минимальное количество информации, необходимой для создания фрагмента кода в целях скоринга. Информация, включаемая в PMML-поток, содержит тип модели, имена переменных и их форматы, а также значения параметров. Язык PMML позволяет аналитикам использовать любой из PMML-совместимых инструментов для построения модели. Если инструмент PMML-совместим, а для проведения скоринга предполагается использование другого PMML-совместимого инструмента, просто передайте код PMML от первого инструмента второму, и второй инструмент автоматически сгенерирует процесс скоринга.

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

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

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

Технологию PMML следует понимать правильно

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

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