If you can remember my last blog post, SSAS tabular has two architectures to store data either DirectQuery or In-memory mode. Today in this blog post I’m going to discuss more detail about in-memory or Vertipaq engine.
In reality, SSAS tabular database engine can get requests from the client either MDX or DAX query. Inside the Tabular database it contains two layers of calculation engines,
Formula Engine: Whenever a new request coming from the client despite its DAX/MDX, from Analysis services it parse and transforming them in query plans and finally execute them by formula engine.
Storage Engine: To perform calculations , from formula engine it performs one or more requests to the storage engine where the data is stored, which could be either in-memory (Vertipaq) engine or external relational engine (directQuery) depending on the mode you are using to build the model. In this post I'm mainly focus on Vertipaq Engine. It has a copy of data read from the data source when you perform a refresh.
Vertipaq Engine
Vertipaq/storage is a in-memory columnar database engine which receives requests in internal binary format. In this storage all the data in the model resides in-memory or RAM. Inside the Vertipaq engine the data is stored in columnar format which is a special structure which holds the data in column format where as traditional SQL database engines store data row format. This optimized for vertical scanning and does not have additional structure to optimize queries such as indexes in relational database engine. Data here is compressed in memory using algorithms to allow quick scans. This will reduce the scan time and the memory required to store data.
Vertipaq Engine != Tabular In-memory Engine
Technically, vertipaq engine is the storage engine which store data, do I/O compressed data, apply filters, joining tables and do basic aggregations and its a one part of the whole tabular in-memory database engine. More complex calculations are performed by formula engine after received intermediate result from Vertipaq engine.
Further, when performing calculations, formula engine executes queries in a single thread for each queries but perform parallel processing based on the different users requests whereas storage engine use multiple cores(minimum 16M rows per table).
Inside the Vertipaq Engine
Storage engine or Vertipaq engine processing based on few algorithms.
Each value in a column mapped into 32 Bit integer value. This mapping is done by two ways. Either hash encoding or value encoding. Value encoding uses dynamic mathematical calculation to convert the real value into 32 bit integer value. Hash encoding uses always a new value to store when converting. This 32 bit value compressed before it store in the columnar structure. Using RLE or run-length encoding sort these values before store then similar values in columns will get a higher level of compression.
Will discuss how the data compression is working in more detail level in my next blog post.
Reference: MSDN, Tabular Modeling in SQL Server Analysis Services


This information is really useful for me to learn more at MSBI Online Training
ReplyDeleteThe blog which you have shared is more creative... Waiting for your upcoming data...
ReplyDeletePython Training in Chennai
Python course in Chennai
Python Training Institute in Chennai
Python Training course
Python training in Guindy
Python Training in Tambaram
Hadoop Training in Chennai
Big data training in chennai
SEO training in chennai
JAVA Training in Chennai
Good Blog!!! Thanks for sharing this great information with us
ReplyDeleteSelenium Training in Chennai
Selenium Training Institute in Chennai
best selenium training center in chennai
Selenium Course in Chennai
Selenium Training in Tambaram
Selenium training in Guindy
Python Training in Chennai
Big data training in chennai
SEO training in chennai
JAVA Training in Chennai
Thanks for giving excellent Message. Waiting for the next article
ReplyDeleteDOT NET Training in Chennai
c# training in chennai
dot net classes in chennai
mvc training in chennai
dot net training in T nagar
Html5 Training in Chennai
Spring Training in Chennai
Struts Training in Chennai
Wordpress Training in Chennai
SAS Training in Chennai