Connecting to SSAS 2008

Introduction

Since version 7 (OLAP Services), a client must use an OLEDB for OLAP (ODBO) provider to connect to an Analysis Services database.

Microsoft provides a client setup which embeds this provider plus extra related components, such as local cube generation layer. This setup is called Pivot Table Services, or OLE DB Provider for Analysis Services, depending on the SSAS version it corresponds to.

Until SSAS 2005, ODBO provider was "talking" directly with OLAP server. Then SSAS 2005 came with a new XML for Analysis protocol (XMLA). ODBO is still the way to query SSAS 2005. For more details, check this link.

With the coming of SSAS 2008, let’s have a look at potential changes for connecting.

Connecting

An easy way to test connection to SSAS is by using Microsoft Data Links.

A Data Link can be defined by creating an empty .txt file, and changing its extension to .udl.

http://cid-9cf41ea10109e385.skydrive.live.com/embedrowdetail.aspx/Public/Blog/ConnectingtoSSAS2008/Picture01.png

In the provider list, we notice a new item "Microsoft OLE DB Provider for Analysis Services 10.0".

Does this mean we’ll need a new a new provider to connect to SSAS 2008?

If we look at the connection string generated by the Data Link (once server and database have been set), we don’t see any difference compared to a SSAS 2005 connection string.

[oledb]

; Everything after this line is an OLE DB initstring

Provider=MSOLAP;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Adventure Works DW;Data Source=localhost

Looking for provider details

A deep search in Windows registry helps getting more information on MSOLAP CLSID:

  • HKEY_CLASSES_ROOT\MSOLAP key has (default) value "MSOLAP 10.0 OLE DB Provider".
  • HKEY_CLASSES_ROOT\MSOLAP\CurVer has (default) value "MSOLAP.4", which is the exact CLSID for SSAS 2008 ODBO provider.

Lets retrieve HKEY_CLASSES_ROOT\MSOLAP.4\CLSID default value ({10154F28-4979-4166-B114-3E7A7926C747}) and use it to jump to HKEY_CLASSES_ROOT\CLSID\{10154F28-4979-4166-B114-3E7A7926C747}\InprocServer32 key: default value is C:\Program Files\Microsoft Analysis Services\AS OLEDB\10\msolap100.dll.

The new SSAS 2008 OLEDB for OLAP provider is hosted by DLL msolap100.dll.

If we explore C:\Program Files\Microsoft Analysis Services\AS OLEDB\10 folder, we will find other related DLLs.

Note the msmdlocal.dll file grew up from 15 Mb to 22 Mb. Maybe this CTP still includes debugging information that will be removed for RTM.

Compatibility

There is still one big question: will we need to deploy a new ODBO provider to access SSAS 2008?

The coming of a dedicated provider (version 10) tends to confirm this.

The best way to be sure is by trying to connect to SSAS 2008 by using SSAS 2005 ODBO provider. We’ll do this from a separate PC to insure no favorable interference between 2005 and 2008 providers.

The test is successful: we can connect using ODBO for SSAS 2005, which is a good point.

Connection properties

If we compare connection string properties exposed by SSAS 2005 and SSAS 2008 providers, we notice a new property for SSAS 2008: Update Isolation Level.

Here are some quotes from BOL about this property:

  • "Specifies whether the cells in a single UPDATE CUBE statement are isolated from each other. The default is not isolated." (taken from AdomdConnection.ConnectionString Property).
  • "When updated cells do not overlap, the Update Isolation Level connection string property can be used to enhance performance for UPDATE CUBE" (taken from Write-Enabled Partitions).

So, this connection property is dedicated to writeback, one of my favorite subjects. I suppose ODBO provider for SSAS 2008 will be required to benefit this new property. I will not say more on it, as I think it deserves a full article on its own…

Schema rowsets

Book Online doesn’t mention new OLEDB schema rowsets. A new feature, metadata rowsets, allows query of metadata without using the object model. This very good article from Vidas Matelis deals with this subject.

Conclusion

Good news:

  • The object model for querying didn’t change, so an application developed for SSAS 2005 will work with SSAS 2008.
  • SSAS 2005 ODBO provider is compatible with SSAS 2008, avoiding deployment of a new ODBO provider, and making server migration transparent on client side.

Update (24/02/2008)

Darren Gosbell as written an article on SSAS 2008 CTP 6 schema rowsets. It seems that there a few new things.

Posted in Analysis Services 2008 | 100 Comments

SSAS 2008 MOLAP writeback-News from Microsoft

In my recent post about SSAS 2008 MOLAP writeback, I couldn’t commit UPDATE CUBE changes on a cube using a writeback partition defined with a MOLAP storage mode.

The feedback I posted on MS Connect got a quick response from Microsoft: the problem has been fixed (case closed).

This means we will be able to investigate further on the new feature in next SQL Server 2008 CTP.

Now I’m looking forward this next CTP…

Posted in Analysis Services 2008 | 100 Comments

SSAS 2008 MOLAP writeback

Introduction

Analysis Services introduced the capability to define a writeback partition with a MOLAP storage (the only choice until now was ROLAP).

You can check this whitepapers for a full list of enhancements: http://www.microsoft.com/sql/techinfo/whitepapers/sql_2008_bi.mspx

This new feature should help getting performance gains, as described by Microsoft:

"MOLAP Performance (FITS): New MOLAP-enabled write-back capabilities in SQL Server 2008 Analysis Services remove the need to query ROLAP partitions. This provides users with enhanced writeback scenarios from within analytical applications without sacrificing the traditional OLAP performance."

Configuring MOLAP writeback

My tests were done using SQL Server 2008 November CTP virtual machine.

CTP can be downloaded from https://connect.microsoft.com/SQLServer/content/content.aspx?ContentID=5395.

VHD can be downloaded from http://www.microsoft.com/downloads/details.aspx?familyid=6a39affa-db6e-48a9-82e4-4efd6705f4a6&displaylang=en.

Writeback can be enabled from both SSMS and SSBI Development Studio.

SSMS offers a straight forward way of configuring writeback via a wizard, while SSBI Development Studio allows defining partition properties (like error configuration).

Direct XMLA definition is also available for ASSL specialists.

From SSMS, writeback can be enabled by expanding cube measure group, and right-clicking on Writeback folder item.

http://cid-9cf41ea10109e385.skydrive.live.com/embedrowdetail.aspx/Public/Blog/SSAS2008MOLAPWriteback/Picture01.png

This gives access to a wizard. We immediately notice the new storage mode option, giving access to MOLAP (default), or ROLAP choice.

http://cid-9cf41ea10109e385.skydrive.live.com/embedrowdetail.aspx/Public/Blog/SSAS2008MOLAPWriteback/Picture02.png

Even if storage mode is MOLAP, writeback mechanism will store updates in a writeback table, which guarantees data persistence even if cube is unprocessed.

This results in the creation of a writeback partition:

http://cid-9cf41ea10109e385.skydrive.live.com/embedrowdetail.aspx/Public/Blog/SSAS2008MOLAPWriteback/Picture03.png

Writeback table will be created during writeback partition process if it doesn’t exit.

The interesting point here is that it seems it will be possible to change the storage mode of an existing writeback partition (by disabling/enabling writeback), thus allowing easy optimization of an existing cube with pre-filled writeback data.

How does it work?

I suppose SSAS 2008 will transparently keep synchronized an invisible duplicate MOLAP partition that stores writeback table data, therefore reducing the amount of SQL queries against relational data source (where writeback table is stored).

Using MOLAP writeback

Once our cube is write-enabled, let’s run an UPDATE CUBE MDX command from SSMS.

Then, let’s run a COMMIT TRAN statement to validate our transaction. SSAS will insert new records to the writeback table as part of the execution.

That’s where things get complicated, as SSAS 2008 returns the following error:

"Executing the query …

Server: The operation has been cancelled.

Errors in the metadata manager. The write enabled ‘WriteTable_Budget_INCR_UPDATE_TEMP_kf5kj_’ partition must have table binding.

Execution complete"

I tried different workarounds to make it work (i.e. commit), unfortunately with no success.

I checked on the Microsoft Connect web site, but nobody seems to have reported this issue yet.

What’s next?

Hopefully, Analysis Services development team will correct this problem for the next CTP.

So I will be patient, and wait for it to continue my investigations:

  • Performance tests (compared to ROLAP writeback).
  • Cube cache behavior on commit
  • Etc.

See you soon.

Posted in Analysis Services 2008 | 4 Comments

Foreword

Hello,

My name is Michel Caradec, and I’m pleased to join the Microsoft Analysis Services blog community.

I have been working for more than 10 years now as a software engineer in the Business Intelligence area.

My main fields of professional interests are around Microsoft technologies, and specially SQL Server Analysis Services, which I work with since version 7.

The purpose of this blog is to share my investigations and reflections on Microsoft Business Intelligence and related subjects.

 

Michel Caradec

Posted in Uncategorized | 51 Comments