Showing posts with label SSAS. Show all posts
Showing posts with label SSAS. Show all posts

2009-08-14

Excel 2010 SSAS Cube Sets.

Following up with SSAS features in Excel 2010
Besides creating sets contain only dimension members or calculated members,
you can them both in the same set:



The magic of the sets could be respected to the new "calculatedmember" property in the connection object:

ActiveWorkbook.connections("...").OLEDBConnection.CalculatedMembers.Add Name:="[Set1]", Formula:= "{....}"

2009-08-13

What's New in Excel 2010 (Web Resources)

0.General
Official free ebook on Office 2010 features:
First look in Microsoft Office 2010

1. SSAS Cube Related:

Frederik Vandeputte's Blog
Measures:
Running Total (Year To End),
Displaying Single Measure Multiple times
Dimensions
Interactive Filter (Instance selection on typing)
Dynamic Sets (A user friendly approach :-) )
Create Set base Rows Items
Write Backs

Chris Webb Blog
Dynamic Sets
Sets Creation with UI

2. How to show everything with sparklines

Excel Team
- Sparklines as LINE
- Formats: Low / High
- "sparklines are in an Excel table you can add another row of data and the sparkline group would grow and add another sparkline to the table"

Excel Team
- Sparklines as column
- Formats: Negative Points and Styles

Excel Team (1)
Excel Team (2)
-Sparklines as winloss
- Sparkines axis and Reference Line

Excel Team
- Line Up Points

3. Conditional Formatting
Excel Team
- Icon set now customizable
- "Exception handling" in icon set, e.g. negative value

Excel Team
- Proportional Value Bar
- Negative value Bar
- Formating Border/Fills

4. Charting
Excel Team
- Interactivity: Fields button (selection of range and "drilldown" easily)
- Double click objects to format (am... is it so important?)
- Data points: limit of data points extended.

5. Security
Excel Team
Should be something related to this one...


Excel Team
-Protected view for VBA, in control of file access.

General
Overview from Microsoft

Some screenshots in pre-"technical preview"

2009-08-02

Excel:SSAS:Locale Reference 語言設定參考

SSAS/EXCEL語言設定參考孖寶 SSAS/EXCEL Translation reference

1.setting up connection
http://www.extremeexperts.com/sql/Tips/ExcelDiffLocale.aspx
2.Locale code
http://www.krafft.com/scripts/deluxe-calendar/lcid_chart.htm

中文有關設定 Chinese related settings:
繁中: 1028 (TAIWAN)
簡中: 2052 (PRC)
香港地區(3076),澳門地區(5724),最後如果沒在SSAS指定,會resolve成1028(即繁中)
詳看msdn

Where to set excel "default" locale for SSAS connection

Control panel->
regional and language option->
"standards and format" section (UPPER section):
select the region
("location" section setting is NOT related)

SSAS Translation: Enterprise vs Standard
標準版只支援維度內容.
standard version support only translation of content in dimension.

metadata translation的意思是維度名稱,cube部件的名字等等...

2009-06-14

SSAS: SSMS Dimension properties display

Looking for the effect of dimension properties on MDX in SSMS?
It's here.

Just double clicking member in the result pane
(say "Aaron A. Allen" above NT$80,450,596.98)

2009-04-05

SSAS:Non Empty Vs NonEmpty

For reference

"The NonEmpty() function is powerful because it can be applied to MDX expressions whereas the NON EMPTY clause was only available at the top level in SELECT statements."

NonEmpty({set},[filter set])

From Mrachek
http://www.mrachek.com/PermaLink,guid,8820cd3a-35f9-4c55-91b2-cc1dbd47fc83.aspx

From Technet
nonempty
http://technet.microsoft.com/en-us/library/ms145988.aspx

From BI Best Practice Blog (Internet Archive:Repost)
Best Practices for Microsoft Business Intelligence

The Difference Between NONEMPTY(), NONEMPTYCROSSJOIN(), NON EMPTY BEHAVIOR and NON EMPTY THRESHOLD
Analysis Services uses two algorithms to remove empty cells: the 'old' one, which is slower but 100% reliable, and the 'new' one which is faster but can only reliably be used when there are no calculated members, custom rollups, etc. involved in the query. When you put a NON EMPTY clause on an axis, Analysis Services can use either of these algorithms; alternatively, to make sure you use the second algorithm in your query you can use the NONEMPTYCROSSJOIN function, but you must understand its limitations or you will get unexpected results.
When you are using a NON EMPTY clause (and some client tools, like Excel, do not give you the choice to use NONEMTPYCROSSJOIN), the decision on which algorithm for filtering empty cells is based on two factors. The first is the NON EMPTY THRESHOLD connection string property (default value=5000). This is the lower threshold for the number of tuples on an axis that must be evaluated for Analysis Services to decide that it is worth the effort of using the 'new' algorithm or not; that is to say, that if there are fewer tuples on the axis than the value specified in the property, then the old algorithm will always be used. The second factor is whether there are calculated members, custom rollups etc which would normally mean that the first algorithm will have to be used. However, it is possible to use the second algorithm in a query using calculated members if the calculated members have their NON_EMPTY_BEHAVIOR property set. This property specifies a 'real' measure which will return an empty value in the same circumstances as when the calculated member returns an empty value. It is up to the developer though, to make sure that the 'real' measure does in fact behave in the same way as the calculated member, because Analysis Services doesn't do any checks to determine if this is the case.
To illustrate this functionality in action, take a look at the following set of queries for Foodmart 2000 and run them in the MDX Sample application. Let's start with a simple query which includes a calculated measure and returns six cells, three of which have data and three of which don't:
WITH MEMBER [MEASURES].[DEMO] AS 'IIF([MEASURES].[UNIT SALES]>25000, 1, NULL)'SELECT{[MEASURES].[DEMO]}ON 0,CROSSJOIN([Product].[Product Family].MEMBERS, [GENDER].[GENDER].MEMBERS) ON 1FROM SALES
To get rid of the empty cells, we can simply add in a NON EMPTY clause, so:
WITH MEMBER [MEASURES].[DEMO] AS 'IIF([MEASURES].[UNIT SALES]>25000, 1, NULL)'SELECT{[MEASURES].[DEMO]}ON 0,NON EMPTYCROSSJOIN([Product].[Product Family].MEMBERS, [GENDER].[GENDER].MEMBERS) ON 1FROM SALES
At the same time, note that if we tried to use NONEMPTYCROSSJOIN here, as with
WITH MEMBER [MEASURES].[DEMO] AS 'IIF([MEASURES].[UNIT SALES]>25000, 1, NULL)'SELECT{[MEASURES].[DEMO]}ON 0,NONEMPTYCROSSJOIN([Product].[Product Family].MEMBERS, [GENDER].[GENDER].MEMBERS) ON 1FROM SALES
we would still return the empty cells. This is because the 'new' algorithm for removing empty cells, as used in NONEMPTYCROSSJOIN, only removes tuple combinations which don't exist in the fact table and doesn't check the result set itself for empty cells. Since for each tuple on the rows axis data exists in the fact table, then these tuples aren't removed. if we had put [MEASURES].[UNIT SALES] on columns instead, you'd see that all six cells had data.
However, you can force Analysis Services to use the 'new' algorithm here. The first thing to do is to include in your connection string the property NON EMPTY THRESHOLD=1;. The other thing we need to do is set the NON_EMPTY_BEHAVIOR property for the calculated measure. In the MDX Sample application, close the connection to the server and then reopen it, but when you see the dialog asking for the server to connect to, instead of leaving the name of the server as MYSERVERNAMEchange it toMYSERVERNAME; NON EMPTY THRESHOLD=1and then run the following query:
WITH MEMBER [MEASURES].[DEMO] AS 'IIF([MEASURES].[UNIT SALES]>25000, 1, NULL)', NON_EMPTY_BEHAVIOR='[MEASURES].[UNIT SALES]'SELECT{[MEASURES].[DEMO]}ON 0,NON EMPTYCROSSJOIN([Product].[Product Family].MEMBERS, [GENDER].[GENDER].MEMBERS) ON 1FROM SALES
Here the empty cells are returned again, even though we're not using NONEMPTYCROSSJOIN. This shows we're using the 'new' algorithm. Either removing the NON_EMPTY_BEHAVIOR property from the calculated member, or using a NON_EMPTY_THRESHOLD value of greater than 5 (as there are 6 tuples on rows), would mean that for this query the 'old' algorithm would be used again and the empty cells would disappear.

2009-03-27

SSAS:EXCEL 2007: Data Filter in Pivot Table

If the filters in Excel 2007 SSAS Pivot Tables could not be found,
try installing the SP2 of the SQL05.
Yes, it's problem of SQL, not Excel.

However, the feature is solely for Excel 2007 (pivot table 12). if you save the format as <2003 (.doc format), the filter feature will be loss.

It's one of BI feature as "mentioned" technet library:
What's New in SQL Server 2005 SP2
http://technet.microsoft.com/en-us/library/bb283536(SQL.90).aspx
The 2007 version of Microsoft Office requires the installation of SQL Server 2005 Analysis Services SP2 to support all its business intelligence features

The BI features in Excel 2007 is highlighted under the Excel Team Blogs
http://blogs.msdn.com/excel/archive/2007/05/06/excel-2007-and-sql-server-analysis-services-2005-service-pack-2.aspx
following filter types are enabled in PivotTables connected to Analysis Services:

  • Label Filters, including the ability to filter based on member properties
  • Date Filters
  • Value Filters, including enhanced Top 10 Filters, evaluated in the context of the PivotTable (ex.: Top 5 customer list per year)
  • Expanding/collapsing items of attribute hierarchies placed next to each other on rows or columns

Just don't know why it's not mentioned in the specification of Excel or SQL...
I found this feature accidentally when trying the Performance Point Service(PPS). The PPS has a minimum requirement of SQL service pack 2.

2009-03-13

Check your DSV

If you found something like 1+1 not equal to 2 in your SSAS cube results,
try checking the query of DSV in the first time.

The query builder today is too easy to use. On the other hand, it's too easy to make mistake with. For the problems that I encountered in a project, there are around 1/2 of the problems are come from the wrong SQL in the DSV.

Before checking the Dimension usage, Dimension, Role Settings... Try looking at the problem in the very back end first.