OLAP.ru   Rambler's Top100
Вы находитесь на страницах старой версии сайта. Перейдите на новую версию OLAP.ru
  
Поиск по сайту
Новости
Основы OLAP
Продукты
Business Objects/ Crystal Decisions
Каталог
OLAP в жизни
Тенденции
Download
Яndex
 
 
 
TopList
 

Как поставщики внедряют предложенные расширения OLAP в SQL-99


Richard Winter http://www.wintercorp.com

Когда дело доходит до "business intelligence" (BI - интеллектуализация бизнеса, бизнес-интеллект), нет ничего важнее, чем анализ.

  • Существует ли связь между частотой обращений на Web страницу и доходами клиентов?
  • Вносят ли наши лучшие продукты для домашнего офиса больший вклад в доходы, чем наши лучшие потребительские электронные товары?
  • Будет ди клиент, много тратящий на продукты высокого уровня, приобретать устаревшие версии?

Такого рода вопросы всегда будут важными при управлении базами данных, по крайней мере по отношению к бизнес-интеллекту, и пока что это было чертовски трудно выразить в SQL. А если трудно выразить, то еще труднее оптимизировать. Как я ранеее сообщал в "SQL-99's New OLAP Functions" (January 20, 2000), помощь начинает появляться в форме расширений языка SQL, разработанных специально для помощи в аналитических приложениях. В той статье я остановился на ключевой концепции данных и на включенных конструкциях языка. Теперь я буду обсуждать функции, приложения и реакцию поставщиков, чьи продукты генерируют SQL.
Во-первых, после только как я углубился в предмет аналитических расширений SQL, я еще сильнее осознал чрезвычайную важность, особенно для маштабируемости (scalability) баз данных.

В Таблице 1 представлен список новых SQL функций, используя их имена в предложенном стандарте. Основными статистическими функциями являются: ковариация, кумулятивное распределение, ранговое распределение (ranking), процентирование (percentile), линейная регрессия, стандартные отклонение и дисперсия. Кроме этого добавлены новые мощные числовые функции: максимальный уровень (ceiling), минимальный уровень (floor), натуральный логарифм, квадратный корень, экспонента и степень.

Перед тем как перейти к новостям, я хотел бы сделать несколько замечаний. Во-первых,как обяснил мне Fred Zemke (Oracle), функции OLAP станут со временем стандартом. Уж кто-кто, а Fred должен знать. Он провел интенсивную работу в комитете стандарта SQL, включая проверку всех актуальных предложений и спецификаций. Во-вторых, до того как IBM и Oracle обьединились и определили метод, известный теперь как ISO, некоторые аналогичные возможности SQL присутствовали на рынке в виде определенных поставщиками расширений SQL. Еще в 1993 году Red Brick Systems Inc. представил несколько ключевых возможностей, которые широко используются в клиентской базе Red Brick. Oracle представил ключевые элементы с аналогичными возможностями в виде части своей Time Series Option. NCR Corp. отметилась набором аналитических расширений SQL, с функциональностями, близкими к стандарту высокомасштабируемой реализации в Teradata V2R3, доступной с января 1999. В-третьих, как отметил Amir Netz, менеджер по архитектуре и разработкам Microsoft, это не OLAP функции, как думает сегодня большинство людей в нашей индустрии. Здесь нет ничего о многомерном анализе данных, гиперкубах и определенной иерархии. На самом деле концепция связана с статистическим анализом данных, используя такие понятия, как ранг, процентирование (percentile), определение среднего, корреляция и линейная регрессия. Скорее всего эти дополнительные возможности лучше подходят к понятию "аналитические функции" - термин, который уже использует Oracle во многих своих внутренних документах.

Имеющийся опыт

Donna Hott, клиентский адвокат в разработке продуктов Informix, представила интересные примеры того, как клиенты, в действительности, используют аналитические функции Red Brick в промышленных приложениях. В распространенной программе для розничной торговли магазин использует запрос для определения продуктов, наиболее часто приобретаемых на прошлой неделе по купонам 20 процентами покупателей, тратящих наибольшее количество денег в магазине. В данном примере в запрос были вставлены SQL-функции PERCENTILE и RANK. Пройдя в анализе через огромное количество клиентов и транзакций, запрос выдаст лишь несколько строк продуктов, в действительности полученных покупателями. Результаты анализа используются для определения, были ли последние идеи со скидками удачными для привлечения покупателей, тратящих большие деньги.

Согласно Hamid Pirahesh, менеджеру Database Technology Institute при IBM, DB2 пользователям очень понравились функции номера строки и распределения. Возможность получения верхней "n" или нижней "m" строк, как результата распределения, чрезвычайно ценно на практике. Я нашел это интересным, так как DB2 раньше имел функцию "fetch n rows", комбинация которой с ORDER BY предоставляла простую возможность распределения. Тем не менее, согласно Pirahesh, клиенты хотят использовать функцию распределения в более сложных запросах. К примеру, часто бывает очень важным сделать распределение внутри подзапроса, а запрос не поддерживает в этом случае функцию "fetch n rows". Также важны запросы, распределяющие данные по многим критериям. Например, вы хотите узнать 10 лучших продуктов в каждой стране, 10 лучших продуктов на каждом континенте или регионе мира и 10 лучших продуктов в мире. Такой тип запроса создает новые концепции, такие как "rank within peers" и "rank within parent" - которые будет поддерживать DB2 7.1, выходящий во второй половине 2000 года.

Отношения к внешним инструментальным средствам и приложениям

Ash Jhaveri, менеджер программ в MicroStrategy Inc., представил интересный пример успешного масштабирования (scalability) с помощью соответствующей функции. Часто в менеджменте взаимодействия с клиентами (customer relationship management - CRM) бывает необходимым группировать клиентов в диапазоны (например, ntiles) и затем необходимым способом воздействовать на каждый диапазон. Например, поставщику может понадобиться сгруппировать клиентов в пяти разделах (quantiles) согласно обьему покупок за последний год. Поставщик сделает одно предложение для первых 20 процентов, другое - для следующих 20 процентов, и т.д. Теперь вы наверное захотите узнать какая часть из первых 20 процентов клиентов имеет 500 и более долларов кредита. Раньше для этого программе пришлось бы выбрать строки интересующих клиентов (если не все строки клиентов) из базы данных и проанализировать весь набор данных внешними аналитическими средствами. Сегодня, используя в SQL новую функцию PERCENTILE, мы можем идентифицировать интересующих клиентов и применить к ним расчеты в том же предложении SQL .

Теперь мы можем параллельно проводить вычисления, оптимизированные в SQL - отправляя клиентам по сети только результаты.

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

MicroStrategy 7 включил поддержку новых функций SQL и собирается создавать код для расширения их представления в DB2, Oracle и Teradata. MicroStrategy 7 будет продолжать поддержку Red Brick, благодаря чему администратор сможет задавать "метрики" (грубо говоря, макросы), использующие новые SQL функции. Конечные пользователи будут иметь доступ к метрикам по их именам.

Согласно Bud Endross, менеджера по продукту Express Server, Oracle Express также расширит SQL новыми аналитическими функциями. Фактически, группа разработчиков Express Server участвовали в спецификации функций с точно такими же свойствами. Endross отметил, "Наша главная цель превратить Oracle в аналитическую платформу. Использование аналитических функций в SQL или в OLAP сервере зависит только от желания клиента. Мы просто предлагаем делать это в Oracle."

Таблица 1:

OLAP функции, предложенные в дополнение к SQL-99.

CEILING PERCENTILE_CONT REGR_SLOPE
CORR PERCENT_RANK REGR_SXX
COVAR_POP POWER REGR_SXY
COVAR_SAMP RANGE REGR_SYY
CUME_DIST RANK ROW_NUMBER
DENSE_RANK REGR_AVG SQRT
EXP REGR_AVGX STDDEV_POP
FLOOR REGR_AVGY STDDEV_SAMP
LN REGR_COUNT VAR_POP
MOVING_AVG REGR_INTERCEPT VAR_SAMP
MOVING_SUM REGR_R2

NCR представил блок приложений инструментальных средств, поддерживающий его новую концепцию "active warehousing", включая продукт CRM - Relationship Optimizer.

По мнению Stephen Brobst, технического руководителя программного хранения данных NCR, Relationship Optimizer и связанные с ним предложения, создают новый подход CRM, в котором "возможности маркетинговой сегментации и анализ поведения клиента интегрируются с предсказывающей моделью". Он включает такую технику, как распределение (ranking) и анализ частоты распространения - по сути новые функций SQL и OLAP.

У каждого пользователя свои требования

Мудрая фраза: Все поставщики баз данных двигаются в направлении более полной поддержки функций бизнес-интеллекта и повышения производительности. Однако не заблуждайтесь, поставщики должны внести значительные изменения в их методы, чтобы осуществить все эти аналитические способности. К примеру, когда пользователь базы данных вычисляет результаты статистической функции - имеет существенное различие выполняем ли мы операции параллельно от начала до конца или в конце расчета результат должен быть возвращен обратно в единственный узел вывода (он становится узким местом, когда у вас большой объем данных), или мы вычисляем функции с одним проходом данных. Различные продукты будут по разному внедрять данные тактики. Согласно высказыванию Todd Walter, технического руководителя Teradata DBMS, Teradata всегда параллельна. Это означает, что программа не возвращает назад данные в единственный узел, как в приведенном примере или в целом ряде других ситуаций. Также критично то, как мы будем интегрировать новую функцию с существующими возможностями. Согласно утверждению George Lumpkin, продукт-менеджера Oracle, процессу интеграции было уделено особое внимание в Oracle8i релиз R2. Oracle8i R2 также поддерживается CUBE и ROLLUP в сочетании с аналитическими функциями.

Возможности реальны

Я использовал новые аналитические функции в Teradata V2R3 (вышедшего в начале 1999), Oracle8i R2 (вышедшего в начале 2000) и DB2 6.2 (вышедшего в середине 1999). Oracle8i R2 ввел большинство или даже все стандарты. DB2 6.2 поддерживает часть стандартов; в DB2 7.1, выходящим в середине 2000, будут включены все функции. Teradata V2R3 вышла до появления стандарта; Teradata V2R4, выходящая в середине 2000, дополнена стандартом, а также поддерживает исходный синтаксис NCR, созданный до появления стандарта. Я не использовал аналитические функции в Red Brick, но они были доступны уже много лет и имеются многочисленные подтверждения их успешного применения в Red Brick.

Суммируя сказанное

Придавая большое значение BI, CRM, управлению цепочками поставок и другим аналитическим приложениям, предложенная поправка 1 к SQL-99 - одна из наиболее важных разработок языка запросов к базам данных за последние годы.

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

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

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

Richard Winter - специалист по технологиям и применениям
больших баз данных, президент Winter Corp. (www.wintercorp.com).

 Обсудить на форуме   Написать вебмастеру 

© 2001 Interface Ltd