Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lectures ХД.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
67.22 Кб
Скачать

Лекция 4.

Поговорим об OLAP’е.

Вообще ОЛАП – это про всякие кубы данных и срезы по разным измерениям.

Смысл куба в том, что это не прсото табличка, а матрица. У нее первый столбец и первая строчка – это значения атрибутов. Посередине – цифры.

Типы:

  1. Multidimensional OLAP (MOLAP) – и детальные данные хранятся в многомерной БД

  2. Relational OLAP (ROLAP) – все хранится в реляционной БД, агрегаты хрятятся в служебных таблицах

  3. Hybrid (HOLAP) – детальные данные хранятся в реляционнй БД, а агрегаты хранятся в многомерной БД.

Примеры многомерных БД: SSAS, Oracle Essbase, IBM TM1.

Смысл многомерных БД – это повысить производительность БД для анализа.

Но на данный момент из-за роста производительности железок разница в быстродействии невелика.

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

MOLAP хранит только числа, в этом ограничение.

SSAS в принципе может реализовывать все типы OLAP’а.

Ключевое требование OLAP – поддержка иерархий и множественных иерархий

Операции с кубиками:

  1. Slice and dice – взятие подкуба

  2. Roll up -- сворачивание

  3. Drill down – детализация данных в кубе

  4. Pivot – транспонирование, различная визуализация одной и той же инфы

  5. Drill through – переход к детальным данным, хранящимся в оперативной БД.

SSAS

2008 и 2005 SQL сервер – достаточно мощные продукты.

Есть два подхода – простой анализ и data mining.

MDX – аналог SQL для работы с многомерными БД. Разработка MS’а.

SSAS делает пре-агрегацию автоматически.

UDM – unified dimensional model – фишка МСа про то, чтобы процесс перехода от реляционной модели данных в многомерную (удобную пользователю, понятную по сути) был прозрачен.

Data Source View – это реляционное представление предметной области. Источников этих «взглядов» может быть несколько.

Партиции в кубах – это разбивка данных внутри кубов по способу хранения. Это используется для обновления данных.

Атрибуты могут быть организованны иерархии.

Группы атрибутов круче чем иерархии, так как понятнее.

Типы атрибутов:

  1. Key

  2. Parent key

  3. Regular

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

Для каждой табицы фактов надо создавать свою группу.

Вырожденное измерение – то, которое строиться на основе таблицы фактов, а не собственной таблицы. Это удобно, когда атрибутов у измерения немного (1-2).

Вычисления бывают:

  1. Calculated members

  2. Named sets

  3. Scoped assignments

Вычисления задаются на языке MDX.

Объекты OLAP состоят из трех типов данны:

  1. Метаданные – описание объекта

  2. Данные – элементы измерений, записи таблиц фактов

  3. Агрегаты – пре-агрегированные данные таблиц фактов.

Все данные можно разбивать на патриции и обновлять только их.

Лекция 5.

MDX – multi dimensional expressions. Создан MS’ом, стал сейчас стандартом.

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

Куб (Cube)

Мера, факт, показатель (measure)

Член (Member) – элемент измерения

Кортеж (Tuple) – коллекция членов, набор элементов из разных измерений

Множество (Set) – множество кортежей

При обращении к члену через идентификатор, надо перед ним ставить символ “&”

Кортежи заключаются в ().

Перечисления кортежей (множества) заключаются в “{}”, диапазон задается с помощью “:”

Наборы из разных типов членов не могут существовать.

При запросе типа SELECT надо после каждого выбираемого поля указывать, куда их пихать – в колонки (on columns) или в строки (on rows). Также есть вообще говоря другие оси, их может быть аж до 128, первые пять имеют псевдонимы – columns, rows, pages, и еще что-то там.

WITH – это штука чтобы определять наборы. Это вроде как USING в c#. Так проще потом запрос писать. Экономии в вычислениях это не дает. =(

Функции:

Crossjoin – это тупо декартово произведение

Filter – это фильтр. =) Не срез, а именно фильтр. То есть сначала выбираем, а потом что-нибудь отбираем. Where же позволяет взять срез, там нельзя указать точное значение.

Topcount – это первые несколько значений.

Bottomcount – аналог только с сортировкой от меньшего к большему.

Функуции управления членами:

Default member – это обычно обращение к верхнему элементу

Prevmember и nextmember – это про предыдущей и последующие элементы в рамках иерархии, используется для задания функций.

ParallelPeriod это для задания смещений при сравнении данных за какие-то периоды

И так далее.

Функции управления наборами:

Children, Descendants(), Ascendants(),

Levels() – это для того, чтобы обращаться к элементам иерархии одного уровня.

Почитать Кинбалла – ETL, проектирование ХД, ЖЦ ХД, проектирование ХД в SQL Server 2008 R2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]