
Первым этапом для проектирования данных под OLAP кубы является распределение загруженных данных по таблицам по структуре Ральфа Кимбалла. Необходимо создать таблицы измерений, которые будут хранится в третьей нормальной форме. Создать, например, таблицы сущностей Договора, Клиенты, Счета, различные справочники и т.п. И так же создать таблицу фактов, т.е. та таблица, где будет происходить движение. Например, такой может быть таблица, в которой хранятся остатки по счетам клиента на определенную дату. Таблица фактов должна содержать в себе все ключевые поля, которые ссылаются на таблицы измерений. Такой классический вид имеет название: тип «Снежинка».
Таблицы измерений должный иметь primary key на ключевое поле. Таким образом таблица будет содержать unique clustered index (уникальный кластеризованный индекс), и таблица будет в нужном нам отсортированном порядке.
Таблица фактов должна иметь партицирование по отчетной дате и clustered index с составным ключом. И если это позволяет наш режим работы иметь партицирование по отчетной дате и clustered column store index (колоночный индекс). Данный тип хранения таблицы имеет ряд преимуществ - это 10-ти кратное сжатие данных и ускорение считывания данных при наборе их в куб, но обязательным условием для эффективного применения данного индекса является необходимость хранить более 1 миллиона строк на одну секцию.