DWH-ETL-OLAP
November 20, 2019

SSAS Tabular 2017+ : types of datasources and Mash-up engine

https://blogs.msdn.microsoft.com/analysisservices/2017/09/12/using-legacy-data-sources-in-tabular-1400/

Вкратце, есть 2 типа источника данных, Provider data sources и structured data sources.

Provider data sources - через строку подключения к данным,

Structured data sources - через структурированное описание в виде JSON, или с помощью PQ.

Mash-up engine может использоваться при обоих типах подключений. Конкретно, будет ли использоваться мэшап движок, определяется в партициях.

В партициях тоже есть 2 типа подключений: QueryPartitionSource и MPartitionSource . Каждая партиция может использовать свой тип источника.

В итоге рождается 4 возможных комбинации источников данных:

Mash-up engine используется во всех случаях, кроме 1го.

Вывод: The Microsoft SQL Server Native Client OLE DB Provider is indeed performing faster than the Mashup engine. In very large Tabular 1400 models connecting to SQL Server databases, it can therefore be advantageous to use a provider data source and query partitions.

То есть, Mash-up engine медленный, и для больших моделей желательно использовать кейс под номером 1: provider datasource + query partition source. То есть "прямое подключение" к БД в обход движка mash-up.

НО.

SSDT начиная с 2016-2017х версий не позволит в новых проектах выбрать старый вариант создания подключения к БД. Только если в проекте уже есть старый вариант, т.е. проект был создан в старой студии.

Поэтому:

  1. Можно либо пользоваться вариантом 3, т.е. создавать подключение новое, но в партициях писать прямой sql.
  2. Либо включить в настройках опцию "enable legacy datasources" : Tools -> Options -> Analysis Services Tabular -> Data Import. В комментариях пишут, что эта опция весьма важна для AAS.