Tabular SSAS - очень быстрая аналитика Полоничко Евгений План доклада Немного воды(о себе, история) Теперь по сути. Архитектура Tabular InMemory DirectQuery Многомерный движок vs Табличный движок DAX Немного воды О себе PASS Chapter Leader, лидер SQL Server User Group Donetsk 8 лет работы с MSSQL. В основном занимаюсь BI проектами(SSAS, SSIS, PowerBI, Cognos, Informatica PowerCenter, Pentaho, Tableau) Сейчас работаю архитектора в качестве DWH/BI История OLAP 1996-07-01 Microsoft opens new team to build an OLAP product, codenamed Plato (permutation of letters from OLAP) 1996-07-15 Panorama Software delegation meets with Microsoft 1996-10-27 Microsoft announces acquisition of Panorama Software development team 1998-11 OLAP Services 7.0 (codename Sphinx) ships 2000-08 Analysis Services 2000 (codename Shiloh) ships 2001-11 XML for Analysis Software Development Kit 1.0 ships 2003-04 ADOMD.NET and XML for Analysis SDK 1.1 ship 2005-10-28 Analysis Services 2005 (codename Yukon) ships 2008-08-06 Analysis Services 2008 (codename Katmai) ships 2012-03-06 Analysis Services 2012 2014-04-01 Analysis Services 2014 Теперь по сути Архитектура табличной модели Архитектура табличной модели Query DAX/ MDX query Analysis Services 2012 Tabular Model Query In-Memory mode Storage Engine Query VertiPaq Storage Sql query DirectQuery mode Procces External Data Sources Архитектура табличной модели (режим inmemory) Обработка запросов от клиента MDX query DAX/MDX query MDX Formula Engine Parser DAX Query (Evaluate statement) DAX measures invocation DAX Formula Engine VertiPaq Storage Engine XVelocity Storage Row-Oriented database Column-Oriented database XVelocity Storage Storage Dictionary Data Indexes Hierarchies Relationships Memory in xVelocity 1. The number of columns 2. The cardinality of each columns 3. The data type of each columns 4. The number of rows Процессинг Table process Process data Process other structures Calculated columns Indexes Hierarchies Relationships Типы процессинга Process data Process recalc Process full Process defrag Архитектура табличной модели (режим DirectQuery) Архитектура табличной модели (режим DirectQuery) DAX Query Parser DAX query( EVALUATE statement) Sql Query DirectQuery SQL Server Tabular vs Multidimensional 1. WriteBack 1. Parent/child hierarchy support 2. Translations 2. Many-to-many 3. Dimension security on measures 3. Drillthrough 4. Cell security 5. Ragged hierarchies 6. Role-playing dimension 7. Scope assignments 8. Unary operator DEMO DAX Выражения анализа данных (DAX) — это язык формул, используемый для создания пользовательских вычислений в PowerPivot для книг Microsoft Excel и проектов табличных моделей служб Службы Analysis Services. К формулам DAX относятся функции, операторы и значения, позволяющие проводить расширенные вычисления над данными в таблицах и столбцах. DAX Syntax [DEFINE { MEASURE <tableName>[<name>] = <expression> } EVALUATE <table> [ORDER BY {<expression> [{ASC | DESC}]}[, …] [START AT {<value>|<parameter>} [, …]]] Calculated Columns and Measures Calculated Columns – вычисляемые столбцы. Позволяет создавать новые данные с помощью DAX формул 1. Вычисление влияет полностью на весь столбец 2. Нельзя создавать формулы для разных строк таблицы 3. Пересчет вычисляемой колонки происходит во время процессинга Measures – представляет собой вычисление, созданное при помощи формулы DAX, специально созданной для использования в клиенте отчетов. Меры оцениваются на основании полей, фильтров и срезов, которые пользователи выбирают в клиентском приложении создания отчетов. !!!! Значение меры вычисляется на основании выбора пользователя, который представляет собой контекст фильтра в сводной таблице или отчете Querying Tabular RUN QUERY SSMS DAX Studio DEMO Что дальше? SQL Server 2016 • Many-to-many relationships • BI Directional cross filtering. This means you can not only filter on the 1 side of a 1 to many relationship in your tabular model, but also on the many side • Time intelligence • New DAX functions • Performance improvements Вопросы ?