Модель проталкивания SQL
SQL — родной язык для MPP-системы, и он отвечает широкому спектру требований. Это особенно касается агрегирования, соединения и преобразования данных. Многие основные задачи, связанные с подготовкой данных, могут быть переведены на язык SQL пользователем. Либо аналитический инструмент может генерировать SQL-код от имени пользователя и «протолкнуть» его в базу данных. Код SQL также легко генерируется многими аналитическими алгоритмами, обладающими довольно простой логикой. К этой категории относятся линейная регрессия, логистическая регрессия и деревья решений. Аналитические инструменты часто переводят логику модели на язык SQL. Иногда пользователи самостоятельно пишут SQL-сценарий после создания модели. В любом случае подготовка данных или процессы скоринга в конечном счете выполняются только с использованием SQL.
Функции, определенные пользователем
Функции, определенные пользователем (UDF), — относительно новая особенность реляционных баз данных. Возможности UDF выходят за рамки возможностей языка SQL. Определенные пользователем функции расширяют функциональность языка SQL, позволяя пользователю определить логику задачи, которая выполняется так же, как и родная SQL-функция.
Запрос общего объема продаж по каждому потребителю может быть записан следующим образом:
«Select Customer, Sum(Sales)...»
При использовании определенных пользователем функций запрос на проведение скоринга потерь может быть записан так:
«SelectCustomer, Attrition_Score...»
В последнем примере «Attrition_Score» — определенная пользователем функция, имеющаяся в системе базы данных. UDF применяет к данным необходимую логику, и эта логика может быть значительно более сложной, чем в случае использования только языка SQL.
Функции, определенные пользователем, пишутся на таких языках, как C++ или Java. В результате в них могут быть встроены некоторые процедурные возможности языка. Это расширяет ядро SQL, которое не имеет таких возможностей. Сложность заключается в том, что многие профессиональные аналитики не умеют писать программы на этих языках. И тогда на помощь приходят аналитические инструменты, которые автоматически генерируют соответствующие определенные пользователем функции и загружают их в базу данных, подготавливая к использованию.