Основная статья Взаимодействие DWH Oracle и MS SQL

Первым этапом для проектирования данных под OLAP кубы является распределение загруженных данных по таблицам по структуре Ральфа Кимбалла. Необходимо создать таблицы измерений, которые будут хранится в третьей нормальной форме. Создать, например, таблицы сущностей Договора, Клиенты, Счета, различные справочники и т.п. И так же создать таблицу фактов, т.е. та таблица, где будет происходить движение. Например, такой может быть таблица, в которой хранятся остатки по счетам клиента на определенную дату. Таблица фактов должна содержать в себе все ключевые поля, которые ссылаются на таблицы измерений. Такой классический вид имеет название: тип «Снежинка».

Таблицы измерений должный иметь primary key на ключевое поле. Таким образом таблица будет содержать unique clustered index (уникальный кластеризованный индекс), и таблица будет в нужном нам отсортированном порядке.

Таблица фактов должна иметь партицирование по отчетной дате и clustered index с составным ключом или если наш режим работы позволяет, то лучше использовать партицирование по отчетной дате и clustered column store index (колоночный индекс). Данный тип хранения таблицы имеет ряд преимуществ - это 10-ти кратное сжатие данных и ускорение считывания данных при наборе их в куб, но обязательным условием для эффективного применения данного индекса является необходимость хранить более 1 миллиона строк на одну секцию.

После подготовки данных в базе данных мы можем приступать к созданию проекта SQL Server Analysis Services (SSAS). Для этого в VS необходимо выбрать и создать проект Analysis Services Multidimensional and Data Mining Project. Используем данный тип проекта, а не Analysis Services Tabular Project, так как имеем большие объемы данных для которых не будет хватать имеющейся оперативной памяти на сервере.

Рис. 1 Создание проекта SSAS
Рис. 1 Создание проекта SSAS

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

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

В каталоге Cubes создать куб указав при создании таблицу фактов. Так же будет сразу
предложено создать меру по полям фактов, например сумма по полю остатков.

Рис. 2 Создание основных сущностей
Рис. 2 Создание основных сущностей

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

Рис. 3 Связь мер и измерений
Рис. 3 Связь мер и измерений

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

Рис. 4 Партицирование меры
Рис. 4 Партицирование меры

Все необходимое для базовой работы куба и его ускоренной обработки, можно считать завершенным. На этом этапе уже можно переходить к Deploy (Развертыванию) проекта на MS Analysis Server.

Комментарии (0)