Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Проектирование кубов данных

Лекция



Привет, Вы узнаете о том , что такое генерация куба данных, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое генерация куба данных, проектирование кубов данных , настоятельно рекомендую прочитать все из категории Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL.

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

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

Централизация и удобное структурирование — это далеко не все, что нужно аналитику. Ему требуется инструмент для просмотра, визуализации информации. Традиционные отчеты, даже построенные на основе единого ХД, лишены, однако, определенной гибкости. Их нельзя "покрутить", "развернуть" или "свернуть", чтобы получить необходимое представление данных. Чем больше "срезов" и "разрезов" данных аналитик может исследовать, тем больше у него идей, которые, в свою очередь, для проверки требуют все новых и новых "срезов". В качестве такого инструмента для исследования данных аналитиком выступает OLAP.

Хотя OLAP и не представляет собой необходимый атрибут ХД, он все чаще и чаще применяется для анализа накопленных в этом ХД сведений.

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

Таким образом, OLAP можно определить как совокупность средств многомерного анализа данных, накопленных в ХД. Теоретически средства OLAP можно применять и непосредственно к оперативным данным или их точным копиям. Однако при этом существует риск подвергнуть анализу данные, которые для этого анализа не пригодны.

OLAP на клиенте и на сервере

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

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

Если исходные данные содержатся в настольной СУБД, вычисление агрегатных данных производится самим OLAP-средством. Если же источник исходных данных — серверная СУБД, многие из клиентских OLAP-средств посылают на сервер SQL-запросы, содержащие оператор GROUP BY, и в результате получают агрегатные данные, вычисленные на сервере.

Как правило, OLAP-функциональность реализована в средствах статистической обработки данных (из продуктов этого класса на российском рынке широко распространены продукты компаний Stat Soft и SPSS) и в некоторых электронных таблицах. В частности, неплохими средствами многомерного анализа обладает Microsoft Excel 2000. С помощью этого продукта можно создать и сохранить в виде файла небольшой локальный многомерный OLAP-куб и отобразить его двух- или трехмерные сечения.

Многие средства разработки содержат библиотеки классов или компонентов, позволяющие создавать приложения, реализующие простейшую OLAP-функциональность (такие, например, как компоненты Decision Cube в Borland Delphi и Borland C++Builder). Помимо этого многие компании предлагают элементы управления ActiveX и другие библиотеки, реализующие подобную функциональность.

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

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

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

Преимущества применения серверных OLAP-средств по сравнению с клиентскими OLAP-средствами сходны с преимуществами применения серверных СУБД по сравнению с настольными: в случае применения серверных средств вычисление и хранение агрегатных данных происходит на сервере, а клиентское приложение получает лишь результаты запросов к ним, что позволяет в общем случае снизить сетевой трафик, время выполнения запросов и требования к ресурсам, потребляемым клиентским приложением. Отметим, что средства анализа и обработка данных масштаба предприятия, как правило, базируются именно на серверных OLAP-средствах, например, таких как Oracle Express Server, Microsoft SQL Server 2000 Analysis Services, Hyperion Essbase, продуктах компаний Crystal Decisions, Business Objects, Cognos, SAS Institute. Поскольку все ведущие производители серверных СУБД производят (либо лицензировали у других компаний) те или иные серверные OLAP-средства, выбор их достаточно широк, и почти во всех случаях можно приобрести OLAP-сервер того же производителя, что и у самого сервера баз данных.

Отметим, что многие клиентские OLAP-средства (в частности, Microsoft Excel 2003, Seagate Analysis и др.) позволяют обращаться к серверным OLAP-хранилищам, выступая в этом случае в роли клиентских приложений, выполняющих подобные запросы. Помимо этого имеется немало продуктов, представляющих собой клиентские приложения к OLAP-средствам различных производителей.

Технические аспекты многомерного хранения данных

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

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

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

  • MOLAP (Multidimensional OLAP) — исходные и агрегатные данные хранятся в многомерной базе данных. Хранение данных в многомерных структурах позволяет манипулировать данными как многомерным массивом, благодаря чему скорость вычисления агрегатных значений одинакова для любого из измерений. Однако в этом случае многомерная база данных оказывается избыточной, так как многомерные данные полностью содержат исходные реляционные данные.
  • ROLAP (Relational OLAP) — исходные данные остаются в той же реляционной базе данных, где они изначально и находились. Агрегатные же данные помещают в специально созданные для их хранения служебные таблицы в той же базе данных.
  • HOLAP (Hybrid OLAP) — исходные данные остаются в той же реляционной базе данных, где они изначально находились, а агрегатные данные хранятся в многомерной базе данных.

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

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

Основные понятия OLAP

Тест FAMSI

Технология комплексного многомерного анализа данных получила название OLAP (On-Line Analytical Processing). OLAP — это ключевой компонент организации ХД. Концепция OLAP была описана в 1993 году Эдгаром Коддом, известным исследователем баз данных и автором реляционной модели данных. В 1995 году на основе требований, изложенных Коддом, был сформулирован так называемый тест FASMI (Fast Analysis of Shared Multidimensional Information) — быстрый анализ разделяемой многомерной информации, включающий следующие требования к приложениям для многомерного анализа:

  • Fast (Быстрый) — предоставление пользователю результатов анализа за приемлемое время (обычно не более 5 с), пусть даже ценой менее детального анализа;
  • Analysis (Анализ) — возможность осуществления любого логического и статистического анализа, характерного для данного приложения, и его сохранения в доступном для конечного пользователя виде;
  • Shared (Разделяемый) — многопользовательский доступ к данным с поддержкой соответствующих механизмов блокировок и средств авторизованного доступа;
  • Multidimensional (Многомерный) — многомерное концептуальное представление данных, включая полную поддержку для иерархий и множественных иерархий (это ключевое требование OLAP);
  • Information (Информация) — приложение должно иметь возможность обращаться к любой нужной информации, независимо от ее объема и места хранения.

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

Многомерное представление информации

Кубы

OLAP предоставляет удобные быстродействующие средства доступа, просмотра и анализа деловой информации. Пользователь получает естественную, интуитивно понятную модель данных, организуя их в виде многомерных кубов (Cubes). Осями многомерной системы координат служат основные атрибуты анализируемого бизнес-процесса. Например, для продаж это могут быть товар, регион, тип покупателя. В качестве одного из измерений используется время. На пересечениях осей измерений (Dimensions) находятся данные, количественно характеризующие процесс — меры (Measures). Это могут быть объемы продаж в штуках или в денежном выражении, остатки на складе, издержки и т. п. Пользователь, анализирующий информацию, может "разрезать" куб по разным направлениям, получать сводные (например, по годам) или, наоборот, детальные (по неделям) сведения и осуществлять прочие манипуляции, которые ему придут в голову в процессе анализа.

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

Проектирование кубов данных

Рис. 26.1. Пример куба данных

"Разрезание" куба

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

Двумерное представление куба можно получить, "разрезав" его поперек вдоль одной или нескольких осей ( измерений ): мы фиксируем значения всех измерений, кроме двух, — и получаем обычную двумерную таблицу. В горизонтальной оси таблицы (заголовки столбцов) представлено одно измерение, в вертикальной (заголовки строк) — другое, а в ячейках таблицы — значения мер. При этом набор мер фактически рассматривается как одно из измерений: мы либо выбираем для показа одну меру (и тогда можем разместить в заголовках строк и столбцов два измерения ), либо показываем несколько мер (и тогда одну из осей таблицы займут названия мер, а другую — значения единственного "неразрезанного" измерения ).

Взгляните на рис. 26.2. Здесь изображен двумерный срез куба для одной меры — Unit Sales (продано штук) и двух "неразрезанных" измерений — Store (Магазин) и Время (Time).

Проектирование кубов данных

Рис. 26.2. Двумерный срез куба для одной меры

На рис. 26.3 представлено лишь одно "неразрезанное" измерение — Store, но зато отображаются значения нескольких мер — Unit Sales (продано штук), Store Sales (сумма продажи) и Store Cost (расходы магазина).

Проектирование кубов данных

Рис. 26.3. Двумерный срез куба для нескольких мер

Двумерное представление куба возможно и тогда, когда "неразрезанными" остаются и более двух измерений. При этом на осях среза (строках и столбцах) будут размещены два или более измерений "разрезаемого" куба — см. рис. 26.4.

Проектирование кубов данных

Рис. 26.4. Двумерный срез куба с несколькими измерениями на одной оси

Метки

Значения, "откладываемые" вдоль измерений, называются членами или метками (members). Метки используются как для "разрезания" куба, так и для ограничения (фильтрации) выбираемых данных — когда в измерении, остающемся "неразрезанным", нас интересуют не все значения, а их подмножество, например, три города из нескольких десятков. Об этом говорит сайт https://intellect.icu . Значения меток отображаются в двумерном представлении куба как заголовки строк и столбцов.

Иерархии и уровни

Метки могут объединяться в иерархии, состоящие из одного или нескольких уровней (levels). Например, метки измерения "Магазин" (Store) естественно объединяются в иерархию с уровнями:

All (Мир)
Country (Страна)
State (Штат)
City (Город)
Store (Магазин).

В соответствии с уровнями иерархии вычисляются агрегатные значения, например, объем продаж для США (уровень "Country") или для штата Калифорния (уровень "State"). В одном измерении можно реализовать более одной иерархии — скажем, для времени: {Год, Квартал, Месяц, День} и {Год, Неделя, День}.

Отметим, что иерархии могут быть сбалансированными (balanced), как, например, иерархия, представленная на рис. 26.5, а также иерархии, основанные на данных типа "дата-время", и несбалансированными (unbalanced). Типичный пример несбалансированной иерархии — иерархия типа "начальник-подчиненный" (ее можно построить, например, используя значения поля Salesperson исходного набора данных из рассмотренного выше примера), как показано на рис. 26.6.

Проектирование кубов данных

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

Рис. 26.6. Несбалансированная иерархия

Иногда для таких иерархий используется термин Parent-child hierarchy.

Существуют также иерархии, занимающие промежуточное положение между сбалансированными и несбалансированными (они обозначаются термином ragged — "неровный"). Обычно они содержат такие члены, логические "родители" которых находятся непосредственно на вышестоящем уровне (например, в географической иерархии есть уровни Country, City и State, но при этом в наборе данных имеются страны, не имеющие штатов или регионов между уровнями Country и City ( рис. 26.7)).

Проектирование кубов данных

Рис. 26.7. "Неровная" иерархия

Отметим, что несбалансированные и "неровные" иерархии поддерживаются далеко не всеми OLAP-средствами. Например, в Microsoft Analysis Services 2000 поддерживаются оба типа иерархии, а в Microsoft OLAP Services 7.0 — только сбалансированные. Различными в разных OLAP-средствах могут быть и число уровней иерархии, и максимально допустимое число членов одного уровня, и максимально возможное число самих измерений.

Архитектура OLAP-приложений

Все, что говорилось выше про OLAP, по сути, относилось к многомерному представлению данных. То, как данные хранятся, грубо говоря, не волнует ни конечного пользователя, ни разработчиков инструмента, которым клиент пользуется.

Многомерность в OLAP-приложениях может быть разделена на три уровня.

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

Первые два уровня в обязательном порядке присутствуют во всех OLAP-средствах. Третий уровень, хотя и является широко распространенным, не обязателен, так как данные для многомерного представления могут извлекаться и из обычных реляционных структур; процессор многомерных запросов в этом случае транслирует многомерные запросы в SQL-запросы, которые выполняются реляционной СУБД.

Конкретные OLAP-продукты, как правило, представляют собой либо средство многомерного представления данных (OLAP-клиент — например, Pivot Tables в Excel 2000 фирмы Microsoft или ProClarity фирмы Knosys), либо многомерную серверную СУБД (OLAP-сервер — например, Oracle Express Server или Microsoft OLAP Services).

Слой многомерной обработки обычно бывает встроен в OLAP-клиент и/или в OLAP-сервер, но может быть выделен в чистом виде, как, например, компонент Pivot Table Service фирмы Microsoft.

проектирование кубов данных с использованием CASE-инструментов

Рассмотрим методику проектирования кубов данных для OLAP-хранилищ данных с использованием CASE PowerDesigner компании Sybase. Отметим также, что при изложении материала мы будем опускать многие детали, оставив их для самостоятельного изучения в конкретной инструментальной среде CASE-средств. Нашей задачей является иллюстрация основных моментов методики проектирования и возможностей CASE-инструментов для проектирования многомерных схем данных.

Многомерные диаграммы

Многомерная диаграмма (multidimensional diagram) представляет собой модель хозяйственной деятельности организации в терминах кубов данных и измерений. На этой диаграмме данные о хозяйственной деятельности организации представляются в одной из двух категорий. Числовые данные или метрики, такие как количество продаж, являются фактами хозяйственной деятельности. Представление хозяйственной деятельности в терминах географии, товаров и времени является измерениями.

Многомерная диаграмма служит основным инструментом проектировщика OLAP-хранилищ данных.

OLAP-хранилища заполняются данными из ХД или киосков данных. Такая передача данных осуществляется посредством отображения реляционного представления в многомерное представление данных. Таким образом, ХД выступают как источник данных для OLAP-хранилищ.

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

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

На рис. 26.8 приведен пример многомерной диаграммы. Как видно из рисунка, данные о продажах (Sales) имеют измерения "Товар" (product), "Регион" (region), "Покупатель" (customer) и "Магазин" (store). Факты, например, итоговый объем продаж (sales totals), рассматриваются с точки зрения этих определенных пользователем измерений. Когда аналитик делает выборку об итоговых объемах продаж (sales total) по конкретному товару для конкретного региона, он изучает данные о продажах с точки зрения измерений "Товар" и "Регион". Наиболее часто применяемым измерением является время, поскольку основная цель выполнения аналитических запросов — нахождение трендов в данных.

Проектирование кубов данных

увеличить изображение
Рис. 26.8. Пример многомерной диаграммы

Основными элементами многомерной диаграммы являются:

  • кубы данных (cube). Содержат набор метрик, которые связаны с различными аспектами хозяйственной деятельности организации и используются для информационной поддержки принятия решений;
  • измерения (Dimension). Являются своеобразными осями – аспектами исследования данных в кубе;
  • атрибуты (Attribute). Используются для квалификации измерения ;
  • факты (Fact). Группируют метрики, применяемые кубом данных ;
  • метрики (Measure). Переменные, как правило, числовые, связываемые с фактом ;
  • иерархии (Hierarchy). Представляют организационную структуру, которая описывает модель доступа к кубу данных через измерение ;
  • ассоциации (Association). Устанавливают связь между кубом данных и измерением.

Только кубы данных, измерения и ассоциации представлены на палитре инструментов CASE.

Многомерная диаграмма создается следующим образом. Выбрать в меню File->New Model (на рабочем пространстве появится диалоговое окно "New Model", рис. 26.9). В этом окне нужно выбрать тип модели "физическая модель данных", в качестве СУБД мы выберем MS SQL Server из выпадающего списка СУБД, укажем многомерную диаграмму как класс физической модели, присвоим имя многомерной модели ( PhysicalDataModel_1 ) и нажжем кнопку "ОК".

Таким образом, многомерная модель создана, рабочее пространство и палитра инструментов доступны ( рис. 26.10).

Проектирование кубов данных

Рис. 26.9. Диалоговое окно "Новая модель"
Проектирование кубов данных

увеличить изображение
Рис. 26.10. Рабочее пространство и палитра инструментов многомерной модели

Проектировщик ХД может установить свойства модели в пункте меню Tools.

Рассмотрим построение элементов модели более подробно.

Кубы данных

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

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

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

Далее двойным щелчком мыши на кубе данных откроем диалоговое окно для определения свойств куба данных ( рис. 26.11).

Проектирование кубов данных

Рис. 26.11. Диалоговое окно свойств куба данных

Для куба данных можно определить следующие свойства.

  • Имя (Name) определяет имя куба данных, желательно в терминах, понятных пользователям.
  • Код (Code) определяет техническое имя куба данных, которое будет использовано при генерировании скрипта.
  • Комментарий (Comment) определяет дополнительное описание куба данных.
  • Факт (Fact) определяет факт, используемый в кубе данных.

Дополнительными свойствами куба данных являются:

  • запросы (Queries) – SQL-команда, необходимая для генерации текстового файла куба данных, который будет использоваться для заполнения OLAP-куба;
  • метрики факта (Fact Measures) – метрики, связанные с фактом куба данных ;
  • заметки (Notes) — описание, связанное с кубом данных ;
  • правила (Rules) – бизнес-правила, связанные с кубом данных ;
  • внешние зависимости (Extended Dependencies) — определенные пользователем семантические связи между объектами модели;
  • зависимости (Dependencies) – отношения между двумя моделируемыми элементами, которые показывают изменения в зависимом элементе после воздействия на независимый элемент.

Присвоим кубу данных имя "Продажа" (Sale). На рис. 26.12 показан результат выполнения построения куба данных многомерной модели.

Проектирование кубов данных

Рис. 26.12. Куб данных в многомерной диаграмме

Измерения

Измерения являются осями для анализа данных в многомерной структуре данных.

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

Измерения могут быть отображены на таблицы и представления, что позволяет передавать данные в них из БД оперативных систем.

Измерения могут иметь несколько иерархий на множестве своих атрибутов.

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

Далее двойным щелчком мыши на измерении откроем диалоговое окно для определения свойств измерения ( рис. 26.13).

Присвоим измерению имя "Время" (Time).

Проектирование кубов данных

Рис. 26.13. Диалоговое окно свойств измерения

Для измерения можно определить следующие свойства.

  • Имя (Name) определяет имя измерения как элемента многомерной диаграммы, которое должно быть понятно пользователю.
  • Код (Code) определяет техническое имя измерения, которое будет использовано при генерировании скрипта.
  • Комментарий (Comment) определяет описание измерения.
  • Иерархия по умолчанию (Default Hierarchy) определяет иерархию измерения по умолчанию для консолидации вычислений, выполняемых на кубе данных. Иерархия, используемая кубом данных, определяется через ассоциацию между кубом и измерением.

Определение измерения также включает следующие дополнительные свойства.

  • Атрибуты (Attributes) – список атрибутов, которые определяют измерение.
  • Иерархии (Hierarchies) – список иерархий, которые используются для группировки атрибутов.
  • Отображение (Mapping) определяет отображение между измерением и таблицей или представлением в источнике данных.
  • Заметки (Notes) — описание, связанное с измерением.
  • Правила (Rules) – бизнес-правила, связанные с измерением.
  • Внешние зависимости (Extended Dependencies) — определенные пользователем семантические связи между объектами модели.
  • Зависимости (Dependencies) – отношения между двумя моделируемыми элементами, которые показывают изменения в зависимом элементе после воздействия на независимый элемент.
Проектирование кубов данных

Рис. 26.14. Пример измерения

Атрибуты

Атрибуты являются квалификаторами измерений в запросах. Например, измерение "Время" (Time) может содержать атрибуты "Год", "Квартал", "Месяц", "Неделя". Атрибуты могут быть организованы в иерархии.

Атрибуты измерения имеют следующие свойства.

  • Имя (Name) определяет имя атрибута в терминах пользователя.
  • Код (Code) определяет техническое имя атрибута, используемое при генерировании скрипта.
  • Комментарий (Comment) определяет дополнительное описание атрибута
  • Измерение (Dimension) определяет измерение для атрибута.

Дополнительными свойствами атрибутов являются:

  • заметки (Notes) — описание, связанное с измерением ;
  • правила (Rules) – бизнес-правила, связанные с измерением ;
  • зависимости (Dependencies) — определенные пользователем семантические связи между объектами модели.

Для создания атрибутов измерения можно использовать диалоговое окно свойств измерения. Например, для измерения "Время" определим следующие атрибуты: "Год" (Year), "Квартал" (Quarter), "Месяц" (Month) и "Неделя" (Week) – как показано на рис. 26.15.

Проектирование кубов данных

Рис. 26.15. Определение атрибутов измерения

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

Например, в измерении "Покупатель" (Customer) атрибуты "Имя покупателя" (Cust_Name) и "Адрес покупателя" (Cust_Address) могут быть использованы для детализации атрибута "Идентификатор покупателя" (Cust_ID) ( рис. 26.16).

Для этого нужно в диалоговом окне свойств измерения выбрать список атрибутов, в списке атрибутов выбрать атрибут Cust_ID, открыть для него диалоговое окно свойств атрибута, на нем выбрать вкладку "Detail Attributes" и занести на нее атрибуты Cust_Name и Cust_Address, как показано на рис. 26.17.

Проектирование кубов данных

Рис. 26.16. Измерение "Покупатель"
Проектирование кубов данных

Рис. 26.17. Уточнение определения атрибута

Факты

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

Факт добавляется в многомерную диаграмму следующим образом. Выберите пункт меню Model-> Facts и добавьте его в список в появившемся диалоговом окне "Список фактов " ( List of Facts ), как показано на рис. 26.18 и на рис. 26.19.

Проектирование кубов данных

Рис. 26.18. Добавление факта в многомерную диаграмму
Проектирование кубов данных

Рис. 26.19. Факт на кубе данных

Факт имеет следующие свойства.

  • Имя (Name) определяет имя факта в терминах пользователя.
  • Код (Code) определяет техническое имя факта, используемое при генерировании скрипта.
  • Комментарий (Comment) определяет описание факта.

Дополнительными свойствами факта являются:

  • метрики (Measures) — список метрик куба данных ;
  • отображение (Mapping) определяет отображение между фактом и таблицей или представлением в источнике данных;
  • заметки (Notes) — описание, связанное с фактом ;
  • правила (Rules) – бизнес-правила, связанные с фактом ;
  • внешние зависимости (Extended Dependencies) — определенные пользователем семантические связи между объектами модели;
  • зависимости (Dependencies) – отношения между двумя моделируемыми элементами, которые показывают изменения в зависимом элементе после воздействия на независимый элемент.

Метрики

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

Метрика имеет следующие свойства.

  • Имя (Name) определяет имя метрики в терминах пользователя.
  • Код (Code) определяет техническое имя, которое используется при генерировании скрипта.
  • Комментарий (Comment) определяет описание метрики.
  • Факт (Fact) определяет факт, которому принадлежит метрика.
  • Формула (Formula) определяет выражение, посредством которого метрика вычисляется.

Дополнительными свойствами метрики являются:

  • заметки (Notes) — описание, связанное с метрикой ;
  • правила (Rules) – бизнес-правила, связанные с метрикой.

Для создания метрики можно из главного меню Model->Facts в диалоговом окне "Список фактов " ( List of Facts ) выбрать факт (в нашем случае Sale) и вызвать диалоговое окно "Свойства факта " ( Fact Properties ), в котором на вкладке " Метрика " ( Measure ) добавить необходимые метрики. В нашем пример добавим следующие метрики: "Итог" (Total), "Промежуточный итог" (Sudtotal) и "Еженедельный итог" (Weekly) – как показано на рис. 26.20.

Проектирование кубов данных

Рис. 26.20. Добавление метрик к факту

Теперь куб данных нашего примера выглядит, как на рис. 26.21.

Проектирование кубов данных

Рис. 26.21. Куб данных с метриками

Иерархии

Иерархия определяет один или несколько путей доступа к данным через измерение. Различают два основных типа иерархий.

  • Организационный путь описывает шаблон обхода измерения, от самого общего к наиболее частному атрибуту. Этот путь упорядочивает множество всех атрибутов измерения.
  • Консолидирующий путь представляет консолидацию атрибутов измерения. Например, у измерения "Время" с основной периодичностью в один день могла бы быть иерархия, определяющая объединение дней в недели, недели в месяцы, месяцы в кварталы и кварталы в годы.

иерархия имеет следующие свойства.

  • Имя (Name) определяет имя иерархии в терминах пользователя.
  • Код (Code) определяет техническое имя, используемое при генерировании скрипта.
  • Комментарий (Comment) определяет описание иерархии.
  • Измерение (Dimension) определяет родительское имя иерархии.

Дополнительными свойствами иерархии являются:

  • атрибуты (Attributes) – список атрибутов иерархии ;
  • заметки (Notes) — описание, связанное иерархией ;
  • правила (Rules) – бизнес-правила, связанные с иерархией.

Добавить иерархию в измерение можно, открыв окно свойств измерения на вкладке " Иерархии " (Hierarchies), как показано на рис. 26.22.

Проектирование кубов данных

Рис. 26.22. Добавление иерархии к измерению

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

Открыв диалоговое окно свойств иерархии, можно добавить атрибуты в иерархию, как показано на рис. 26.23.

Проектирование кубов данных

Рис. 26.23. Добавление атрибутов в иерархию

Теперь на многомерной диаграмме измерение "Время" (Time) имеет вид, как на рис. 26.24.

Проектирование кубов данных

Рис. 26.24. Измерение в иерархии

Ассоциации

Ассоциация связывает куб данных с измерением, которое его определяет. Ассоциация показывает аспект исследования куба данных по указанному измерению.

Например, можно связать куб данных "Продажи" (Sale) с измерением "Покупатель" (Customer) посредством ассоциации "Продажи" – "Покупатель" (Sale-Customer). Допускается только одна ассоциация между измерением и кубом данных.

Ассоциация имеет следующие свойства.

  • Куб (Cube) определяет куб данных, который является источников ассоциации.
  • Измерение (Dimension) определяет измерение, с которым связана ассоциация.
  • Иерархия (Hierarchy) определяет иерархию, используемую кубом данных для консолидации вычислений.

Ассоциацию можно создать при помощи палитры инструментов, выбрав пиктограмму ассоциации. Для нашего примера свяжем куб данных "Продажи" (Sale) с измерением "Покупатель" (Customer), как показано на рис. 26.25.

Проектирование кубов данных

Рис. 26.25. Построение ассоциации

Добавим к многомерной модели нашего примера три измерения — "Магазин" (Store), "Регион" (Region) и "Товар" (Product). В результате получим многомерную диаграмму, как на рис. 26.8.

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

генерация куба данных

Кубы данных в OLAP-хранилище данных должны наполняться данными из ХД, киосков данных или БД оперативных систем организации (источники данных). Мы должны, как говорят, заполнить (populate) куб данных.

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

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

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

Проектирование кубов данных

увеличить изображение
Рис. 26.26. Схема источника данных для куба данных

Для построения отображения в PowerDesigner имеется редактор отображения (Mapping Editor), который вызывается из пункта меню Tools->Mapping Editor.

Определим имя источника данных как DataSource_1 и привяжем его к схеме, рис. 26.26, выполнив действия, предписываемые PowerDesigner. Далее установим связи между полями таблиц фактов и измерений источника и метриками, атрибутами куба данных и измерений многомерной диаграммы, как показано на рис. 26.27.

Проектирование кубов данных

увеличить изображение
Рис. 26.27. Построение отображения источника данных на куб данных

После выполнения описанных выше действий в диалоговом окне свойств куба данных "Продажи" ( Sale ) на вкладке Queries можно посмотреть запрос, который будет использован для извлечения данных из источника для помещения их в куб:

select
      Customer.CustID "Cust_ID",
      Customer.Cust_name "Cust_Name",
      Customer.Cust_addr "Cust_Address",
      Region.Country "Country",
      Region.City "City",
      Region.Addr "Address",
      Store.Size "Size",
      Store.Discount "Discount",
      Product.Type "Type",
      Product.Cftegory "Category",
      Sale.Total "Total",
      Sale.Subtotal "Subtotal",
      Sale.Weekly "Weekly"
from  Customer,
      Region,
      Store,
      Product,
      Sale
where Sale.RegionID = Region.RegionID and 
      Sale.CustID = Customer.CustID and 
      Sale.StoreID = Store.StoreID and 
      Sale.ProductID = Product.ProductID

Также в диалоговом окне свойств куба данных "Продажи" ( Sale ) на вкладке Preview можно посмотреть скрипт, который будет использован для создания куба данных:

CREATE CUBE Sale
(
   DIMENSION Customer,
         LEVEL Cust_ID TYPE Regular,
         LEVEL Cust_Name TYPE Regular,
         LEVEL Cust_Address TYPE Regular,
   DIMENSION Region,
         LEVEL Country TYPE Regular,
         LEVEL City TYPE Regular,
         LEVEL Address TYPE Regular,
   DIMENSION Store,
         LEVEL Size TYPE Regular,
         LEVEL Discount TYPE Regular,
   DIMENSION Product,
         LEVEL Type TYPE Regular,
         LEVEL Category TYPE Regular,
   MEASURE Total,
   MEASURE Subtotal,
   MEASURE Weekly
)

Существует более простой способ создания многомерной диаграммы, используя диаграмму физической модели данных с помощью функции Rebuild Cubes, которая вызывается из пункта меню Tools->Multidimesion->Rebuild Cubes ( рис. 26.28).

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

Проектирование кубов данных

Рис. 26.28. Построение куб данных по физической схеме источника данных

Заметим, что в этом примере запрос:

select
      Store.StoreID "StoreID",
      Store.Name "Name",
      Store.Size "Size",
      Store.Discount "Discount",
      Customer.CustID "CustID",
      Customer.Cust_name "Cust_name",
      Customer.Cust_addr "Cust_addr",
      Region.RegionID "RegionID",
      Region.Country "Country",
      Region.City "City",
      Region.Addr "Addr",
      Product.ProductID "ProductID",
      Product.Type "Type",
      Product.Cftegory "Cftegory",
      Product.Price "Price",
      Sale.SaleID "SaleID",
      Sale.Total "Total",
      Sale.Subtotal "Subtotal",
      Sale.Weekly "Weekly"
from  Store,
      Customer,
      Region,
      Product,
      Sale
where Sale.RegionID = Region.RegionID and 
      Sale.CustID = Customer.CustID and 
      Sale.StoreID = Store.StoreID and 
      Sale.ProductID = Product.ProductID

также имеет отличия от построенного нами ранее. Отличается и команда построения куба данных:

CREATE CUBE Sale
(
   DIMENSION Store,
         LEVEL StoreID TYPE Regular,
   DIMENSION Customer,
         LEVEL CustID TYPE Regular,
   DIMENSION Region,
         LEVEL RegionID TYPE Regular,
   DIMENSION Product,
         LEVEL ProductID TYPE Regular,
   MEASURE SaleID,
   MEASURE Total,
   MEASURE Subtotal,
   MEASURE Weekly
).

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

Резюме

В данной работе мы ознакомились с основами OLAP. Мы узнали следующее.

  • Назначение ХД — предоставление пользователям информации для статистического анализа и принятия управленческих решений.
  • ХД должны обеспечивать высокую скорость получения данных, возможность получения и сравнения так называемых срезов данных, а также обеспечивать непротиворечивость, полноту и достоверность данных.
  • OLAP (On-Line Analytical Processing) является ключевым компонентом построения и применения хранилищ данных. Эта технология основана на построении многомерных наборов данных — OLAP-кубов, оси которых содержат параметры, а ячейки — зависящие от них агрегатные данные.
  • Приложения с OLAP-функциональностью должны предоставлять пользователю результаты анализа за приемлемое время, осуществлять логический и статистический анализ, поддерживать многопользовательский доступ к данным, осуществлять многомерное концептуальное представление данных и иметь возможность обращаться к любой нужной информации.

Кроме этого, мы рассмотрели основные принципы логической организации OLAP-кубов, узнали основные термины и понятия, применяемые при многомерном анализе. И наконец, мы выяснили, что представляют собой различные типы иерархий в измерениях OLAP-кубов.

Были рассмотрены методика построения многомерной диаграммы в CASE-инструменте PowerDesigner и ее основные элементы: куб данных, измерение, ассоциация, иерархия, факт, метрики, атрибуты.

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

Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.

создано: 2021-03-13
обновлено: 2021-03-13
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


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

Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL

Термины: Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL