Основная статья Взаимодействие 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, так как имеем большие объемы данных для которых не будет хватать имеющейся оперативной памяти на сервере.
После создания проекта необходимо создать Data Sources, в котором указать источник данных, а в Data Source Views добавить необходимые для нас таблицы. При правильной установке ключей в БД, среда разработки автоматически сгенерирует связи между таблицами, которая в дальнейшем сэкономит нам время при проектировании.
В каталог Dimensions необходимо добавить таблицы, которые будут выступать в качестве измерений.
В каталоге Cubes создать куб указав при создании таблицу фактов. Так же будет сразу
предложено создать меру по полям фактов, например сумма по полю остатков.
После добавления куба, дальнейшим остаётся дело за малым, так как все связи, которые нам необходимо VS сгенерирует самостоятельно, если нет, то в разделе Dimension Usage мы можем их отредактировать.
На вкладке Partitions необходимо создать партиции, которые будут ограничены, например по дате и смотреть в таблицу фактов по границам секций. В результате, при обработке партиции в плане запроса, мы сможем увидеть обращение к конкретной секции в таблице, что ускоряет считывание данных, а при обновлении, меры будут обрабатывать партиции в параллели. Таким образом, достигается кратный прирост скорости обработки.
Все необходимое для базовой работы куба и его ускоренной обработки, можно считать завершенным. На этом этапе уже можно переходить к Deploy (Развертыванию) проекта на MS Analysis Server.