Processing OLAP cube using SQL agent and impersonation information - sql

Yesterday I made some changes to an existing cube in SSAS. I added a new fact table to the Data Source View, which I linked to the appropriate dimension tables.
I then proceeded by opening up the mycube.cube [Design] tab and the section Cube Structure. From there I added a new measure group to the cube corresponding to the newly added fact table. I verified that the new fact table was implemented in the cube designer "scheme" and that the keys were correctly set.
I then saved the cube, waiting for the sql agent to process the cube during the night (it is a rather extensive cube, so I avoid processing it during office hours).
This morning I see that the OLAP cube has been processed, and that the sql agent's View history does not entail any errors or warnings.
However, the cube does not have the newly added measurement group. I made the same steps on a test server earlier, and that worked without any trouble.
The only difference I can see is the impersonation information in the Data Source. My questions are therefore:
If I make changes as a user in SSAS without deploying the cube from within SSAS, and I am not the user specified under Use a specific Windows user name and password under the Impersonation Information tab in the Data Source, will the changes not be made by the SQL agent?
Do I need to be the user which is stated as the Owner of the SQL agent task?
Regards,
Cenderze

First you have to make sure the edits you made to your cube are processed into the Job steps.For this, edit the Job and make sure the steps are modified considering your late edit.
Then to make sure a job is executed as a user particularly you may have to setup a Proxy account into the Job.This Proxy account needs the rights to read sources and to write into the Analysis Server's target.

Related

Update Dimensions/Levels/Measures programmatically

Summary :I m involved in a project that requires us to update/upgrade a existing cube programmatically. Is this even possible (apart from using AMO)?
Details: We have a cube that deploys to all client environments via a installer. Now as we continue to develop, we make changes to the cube, like changes in calculated measures, adding a new level to a dimension or editing an existing level/measure. we need to deploy these changes to client environments in the form of an updates.
Now these environments are not directly accessible by us nor do they have bids installed, meaning, we cant use bids to make changes and deploy it to the prod environment. Hence the requirement of a script/s to accomplish it.
Is there an approach that can enable to release these updates to the cube programmatically (not via AMO)? eg: a reporcess of a cube can be triggered in the form of a xmla statement.
We also need to be considerate of any customization/s that the client would have made (like addition of measures or levels for a given dimension) and preserve them.
Please let me know if i have clearly explained the issue at hand.
Thanks
Srikanth
Instead of AMO, you can also directly issue XMLA ALTER statements. Actually, AMO converts everything to low level XMLA as well, which are then sent to the Analysis Services server. However, the official documentation of the XMLA ALTER statement at http://msdn.microsoft.com/en-us/library/ms186630.aspx is difficult to read. It would be easier to capture the XMLA statements resulting from the AMO issued by BIDS when you click deploy. You can do this via SQL Server Profiler as documented here: http://technet.microsoft.com/en-us/library/ms174946.aspx.
And, as soon as you have more than a few trivial changes, it may be much easier to re-deploy the complete Analysis Services database instead of capturing just the changes and trying to create ALTER statements.

SSAS: Can I define a Cube In BIDS, but create/process the partitions in SSMS/SSIS?

I am new to SSAS, and exploring Partitioning. My data source is very large (web logs):a few hundred million records.
I would like to define my cube IN BIDS, and create a SSIS Package to create partitions. For now, I am Generating The MDX to Create & process the partitions, and Executing them in SSMS.
I find that this is faster and less error prone them manually creating the partitions using the BIDS UI.
I am trying to understand the expected workflow: because every time I go back to BIDS, and make changes to measures & process the cube the partitions I created in SSMS are deleted and the old partitions I created in BIDS are re-published.
What I would like to be able to do is Refresh my partitions from the server to BIDS. Is This possible? If not, what type of workflow is expected in this case?
Thanks!
Partitions are part of the cube structure, and if you change these outside of BIDS, then you change the structure of the deployed Analysis Services database. BIDS keeps the definition of the structure locally as a set of XML files, the partition definitions are contained in a file with the extension .partitions. If you deploy an Analysis Services project from BIDS, it updates the deployed Analysis Services database to match the structure of the local XML files, thus overwriting whatever you changed outside of BIDS.
You can get a deployed database back to an Analysis Services project as follows: Open BIDS, click File/New/Project, and then select "Import Analysis Services Database" from the "Business Intelligence Projects" project type, and select the directory where you want to save the project files locally in the bottom part of the dialog. As soon as you click OK, a wizard opens that allows you to select the server and Analysis Services database to get the definition from, and when you click Next, starts writing it to the directory that you selected.
Partitions are a part of your cube structure. You should create the partitions in BIDS and then process them based on your requirement using SSIS or SSMS.

Process cube without access to the DataSource

I am processing an AX Cube in SSAS Server.
I dont have access to the AX Cube data source and the processing fails.
I am using inherit authentication while processing the cube.Please let me know the solution to the problem.
I need to process the cube in order to bring the data to the cube as it showing no data because it has been backup and restored.
In order to process cube you have to have access to database it is taking data from.
In other words, in order to process cube SSAS needs to read data from data source. You might need to ask DBA for user to access source database and provide this information in data source settings.
If you inherit authentication settings, SSAS will try to access source database with credentials you have provided to access cube if you do it manually or credentials of task which runs cube processing.

PivotTable Field List Error - Current session is no longer valid due to structural changes in the database

I have an Analysis Services database. The cube Storage Mode is MOLAP and Proactive Caching is set to Off. All dimensions, measures and partitions have MOLAP set as Storage Mode and Proactive Caching set to Off as well.
When I'm connecting to the cube through Excel or SQL Server Management Studio, everything works great.
But users connect to the cube through web pages. We use Office Web Components. They were working fine until recently, users encounter the below error randomly when filtering dimension, expanding, collapsing, etc...:
Current session is no longer valid due to structural changes in the database
First the PivotTable returns blank. When they try to refresh data, they get the below error message.
Help.
Thanks,
Mona
If it'is not a huge olap db I recomend process db in full processing mode (not incremental).
I typically build cubes in this manner: PREFIX_YYYYMMDD.
that way, when I build a new version of the cube, I can still use the old version of the cube.
And then I change the connection strings (from the XmlData method) using a simple UPDATE statement to change the cube name...
Can you revert to a backup, an older version of the cube?
I absolutely LOVE Office Web Components / SSAS.. I think that they are by far the coolest product to every come out of Microsoft.

my cube browser doesnt show the measures?

I have performed ETL operation and i created a data warehouse and i loaded the data to it and so far its fine.. my ETL seems to work allright since my data warehouse contains all the data i needed. And then i created an SSAS project from my data warehouse following the AdventureWorks DW example. I deployed the cube and processed it. Then i tried to browse the cube. But here is a problem, it seems as the members do exist but the measures are empty. because my dimensions contain the data but when i throw the measures to it .. it is just gonna be empty cells. What causes this?
In the cube designer, check the "Dimension Usage" tab. Make sure that the intersection between a dimension and a measure group has something there (If there's meant to be a relation).
What happens if you drag & drop the measure to the browser, without any dimensions?
Also what version of SSAS are you on, is it 2005? That had IgnoreUnrelatedDimensions set differently to 2008 I think..
Make sure you've linked your dimensions with measure groups (i.e. that you fact table references you dimension tables).
Also make sure you have foreign keys defined in your data warehouse (as soon as wizards in Visual Studio use them when proposing cube structure).
In order to deploy to a different dwh server
Right Click on the CubeNAME
Go to properties
In Configuration properties > Go to Deployment
In Processing option - change Default to - Do not Process.
if in case the DB is very large and keep huge data, it will get deployed and you can process it later.
For Target - Set name of Server
Click on OK, Deploy and later process