SQL Server Analysis Services Projects with Multiple Developers
A topic that often comes up when discussing enterprise level development with SSAS is how to have multiple developers work on the same project at the same time. This issue doesn’t come up for many installations… a lot of teams get away with just having a single person working on their OLAP capabilities. However, for a decent sized implementation, you’re going to want to have more than one person working on the solution at the same time. I’ll be discussing some of the issues, workarounds, and tools you can use to make concurrent SSAS development easier.
Analysis Services objects (cubes, dimensions, roles, etc.) are manipulated either programmatically or in Visual Studio (Visual Studio is the normal method). These objects are persisted by serializing them to XML. When you deploy an Analysis Services database, you either connect directly to an instance of Analysis Services, or you save off XMLA scripts/files that can be used to create the database on a remote server.
If you have a single person working on an AS project, you don’t have a problem. If you’re using source control with exclusive locks (i.e., only one person can edit a file at a given time) you can have multiple people working on the same solution, but not on the same object at the same time. This is somewhat complicated by the fact that modifying one object (such as a dimension) may require a change in associated objects (such as a cube where it is included). You’re still fairly limited in the amount of work you can do concurrently.
The way to have multiple developers working concurrently is to use source control with non-exclusive check-outs, so multiple people can work on each file at the same time. The down side is that you eventually have to merge the copies each person is working on back together. Since the SSAS files are large, complicated XML documents this isn’t necessarily an easy task. Most source control systems will attempt to automatically merge non-conflicting changes, but this usually doesn’t work very well with SSAS files (for reasons I’ll go into in just a minute). There are, however, some things we can do to make the task a bit easier.Read more...