SSAS Tabular : MDX query goes OutOfMemory for a larger dataset

Hello all,
I am using SSAS 2012 Tabular to build the cube to support the organizational reporting requirements. Right now the server is Windows 2008 x64 with 16GB of Ram installed. I have the following MDX query. What this query does is get the member caption of the
“OrderGroupNumber” non-key attribute as a measure where order group numbers pertain to a specific day and which occurs in specific seconds of a day. As I want to find in which second I have order group numbers, I cross the time dimension’s members with a specific
day and filter the tuples using the transaction count. The transaction count is a non-zero value if an Order Group Number occurs within a specific second of a selected day.
At present “TransactionsInflight].[OrderGroupNumber].[OrderGroupNumber]” has 170+ million members (Potentially this could grow rapidly) and time dimension has 86400 members.
WITH
MEMBER [Measures].[OrderGroupNumber]
AS IIF([Measures].[Transaction Count] > 0, [TransactionsInflight].[OrderGroupNumber].CURRENTMEMBER.MEMBER_CAPTION,
NULL)
SELECT
NON EMPTY{[TransactionsInflight].[OrderGroupNumber].[OrderGroupNumber].MEMBERS}
ON COLUMNS,
{FILTER(([Date].[Calendar Hierarchy].[Date].&[2012-07-05T00:00:00], [Time].[Time].[Time].MEMBERS),
[Measures].[Transaction Count] > 0) } ON
ROWS
FROM [OrgDataCube]
WHERE [Measures].[OrderGroupNumber]
After I run this query it reaches to a dead-end and freezes the server (Sometimes SSAS server throws OutOfMemory exception but sometimes it does not). Even though I have 16GB of memory it uses all the memory and doing nothing. I have to do a hard-reset against
the server to get the server online. Even I limit the time members using the “:” range operator still the machine freeze. I have run out of solutions to fine-tune the design. Could you guys provide me some guidelines to optimize this query? I am willing to
do a design change if it is necessary.
Thanks and best regards,
Chandima

Hi Greg,
Finally I found the problem why the query goes out of memory in tabular mode. I guess this information will helpful for others and I am posting my findings.
Some of the non-key attribute columns in the tabular model tables (mainly the tables which form dimensions) do not contain pretty names. So for the non-key attribute columns which I need to provide pretty names I renamed the columns to something else.
For an example, in my date dimension there is a non-key attribute named “DateAltKey”. This is the date column which I am using. As this is not pretty to the client tools I renamed this column as “Date” inside the designer (Dimension
design screen). I deployed the cube, processed the cube and no problem.
Now here comes the fun part. For every table, inside the Tables node (Tabular SSAS Database > Tables) you can view the partition details. You have single partition per dimension table if you do not create extra partitions. I opened the partitions screen
and clicked on the “Edit” icon and performed a Syntax Check. Surprisingly it failed. It complains about the renamed column. It complained “Date” cannot be found in source. So I realized that I cannot simply rename the columns like that.
After that I created calculated columns (with a pretty name) for all the columns which complained and all the source columns to the calculated columns were hid from the client tools. I deployed the cube, processed the cube and performed a
syntax check. No errors and everything were perfect.
I ran the query which gave me trouble and guess what... it executed within 5 seconds. My problem is solved. I really do not know who did this improve the performance but the trick worked for me.
Thanks a lot for your support.
Chandima

Similar Messages

  • MDX Query much slower for users without administrativ rights

    We have a SQL 2012 SP1 with CU9 installed and run a MDX query against a Cube. The Problem is that the query runs very slow for a user without administrativ persmission on the cube. With admin rights it takes 3 seconds and without 30 seconds. I can't find
    any error in the query so maybe someone can pin point me in the right direction.The Role has all reading information it needs.
    This is the Query:
    SELECT NON EMPTY { [Measures].[Blocked Consignment], [Measures].[Consignment in Inspection],
    [Measures].[Restricted Consignment], [Measures].[Unrestricted Consignment] } ON COLUMNS, NON EMPTY
    { ([Date].[Date].[Date].ALLMEMBERS * [Materials].[Part Number].[Part Number].ALLMEMBERS *
    [Materials].[Key].[Key].ALLMEMBERS * [Sold To].[Name].[Name].ALLMEMBERS *
    [Stock Information].[Plant - Storage Location].[Storage Location].ALLMEMBERS * [Non Zero].[Zero Stock Status].[Zero Stock Status].ALLMEMBERS ) }
    ON ROWS
    FROM ( SELECT ( STRTOSET("[Non Zero].[Zero Stock Status].&[No]", CONSTRAINED) )
    ON COLUMNS FROM ( SELECT ( STRTOSET("[Stock Information].[Storage Location].&[1090]", CONSTRAINED) )
    ON COLUMNS FROM ( SELECT ( STRTOSET("[Stock Information].[Plant].&[1090]", CONSTRAINED) )
    ON COLUMNS FROM ( SELECT ( STRTOSET("[Sold To].[Name].[All]", CONSTRAINED) )
    ON COLUMNS FROM [Stock Snapshot]))))
    WHERE ( IIF( STRTOSET("[Stock Information].[Plant].&[1090]", CONSTRAINED).Count = 1, STRTOSET("[Stock Information].[Plant].&[1090]", CONSTRAINED), [Stock Information].[Plant].currentmember ),
    IIF( STRTOSET("[Stock Information].[Storage Location].&[1090]", CONSTRAINED).Count = 1, STRTOSET("[Stock Information].[Storage Location].&[1090]", CONSTRAINED), [Stock Information].[Storage Location].currentmember ) )
    Any one came across this is or is it a bug?

    Can you check which build of SSAS you've got installed? It looks similar to this bug:
    http://support.microsoft.com/kb/2905298/en-us
    Apart from that, if you have used cell security in your role, it would be expected that query performance would be slower for users of that role.
    Chris
    Check out my MS BI blog I also do
    SSAS, PowerPivot, MDX and DAX consultancy
    and run public SQL Server and BI training courses in the UK

  • Service design for handling large datasets

    As an overnight process we need to invoke 2 services against every record in our database (over 1 million records). Specifically, the process flow should be as follows:
    - For each record in the database invoke service A.
    - For each record use the return value from service A as a parameter to invoke service B.
    If we were to process each record one at a time in a synchronous fashion, the time needed for processing all records would be too great. I was wondering if there is a better way to implement this? I have considered batching and making asynchronous calls
    using a duplex but am unclear about which option would be superior.

    Datasets with datatables, the salad bowl,  are two slow for Service Oriented Achitecture.
    http://www.hanselman.com/blog/ReturningDataSetsFromWebServicesIsTheSpawnOfSatanAndRepresentsAllThatIsTrulyEvilInTheWorld.aspx
    Datatables use boxing and unboxing, which makes it slow..
    http://www.csharphelp.com/2010/02/c-best-practices-to-write-high-performance-code/
    You should be using DTO(s) and a List of DTO(s)
    http://lauteikkehn.blogspot.com/2012/03/datatable-vs-list.html
    http://en.wikipedia.org/wiki/Data_transfer_object
    http://www.mindscapehq.com/documentation/lightspeed/Building-Distributed-Applications-/Building-WCF-Services-using-Data-Transfer-Objects
    On the other hand and if using SQL Server,  you may want to look into MS SQL Server Service Broker too.
    https://technet.microsoft.com/en-us/library/ms166104(v=sql.105).aspx

  • Missing field for MDX query for All Members

    Hello,
    I'm using MDX query with SSRS for report and I ran into this issue:
    Query 1:
    select non empty ([Product].[Category].allmembers*[Date].[Calendar].[Calendar Year].allmembers ) on 1,
    ([Measures].[Internet Sales Amount]) on 0
    from [Adventure Works]
    go
    Query 2
    select non empty ([Product].[Category].[All]*[Date].[Calendar].[Calendar Year].allmembers ) on 1,
    ([Measures].[Internet Sales Amount]) on 0
    from [Adventure Works]
    In case I run query 2 in SSDT (query designer), it doesn't return first column whereas if I run above two queries in SSMS, I get similar columns/fields.
    How it can be resolved in SSRS to return all columns for query 1 and 2.
    Thanks,
    P
    mark it as answer if it answered your question :)

    Hello,
    I'm using MDX query with SSRS for report and I ran into this issue:
    Query 1:
    select non empty ([Product].[Category].allmembers*[Date].[Calendar].[Calendar Year].allmembers ) on 1,
    ([Measures].[Internet Sales Amount]) on 0
    from [Adventure Works]
    go
    Query 2
    select non empty ([Product].[Category].[All]*[Date].[Calendar].[Calendar Year].allmembers ) on 1,
    ([Measures].[Internet Sales Amount]) on 0
    from [Adventure Works]
    In case I run query 2 in SSDT (query designer), it doesn't return first column whereas if I run above two queries in SSMS, I get similar columns/fields.
    How it can be resolved in SSRS to return all columns for query 1 and 2.
    Thanks,
    P

  • MDX Query for Top 10 in SSAS Project

    Hi Guys,
    Please I need an MDX query that will help me calculate Top 10 inside the SSAS project.
    Your help will be greatly appreciated.
    Thanks
    me

    Hi,
    I know nothing about PowerView and PerformancePoint Server but I played with Excel and I am able to use the named set I created. Here are the steps which I followed.
    1 - Create the named set. Remember... this name set appears inside the dimension which you use as the first parameter inside TOPCOUNT function.  
    2 - Deploy the cube and perform a process full.
    3 - Navigate to PowerPivot ribbon and click on PowerPivot Window.
    4 - Choose From Database > From Analysis Services or PowerPivot. Specify the necessary SSAS server credentials and connect to the Cube which you are interested.
    When it comes to the MDX query design window you construct your MDX code in SSMS and copy that code. You also can use the design mode as well. In this case you have to toggle the "design mode" option and enter to manual mode which you can type
    your MDX code. Here is a screenshot of that.
    5 - Validate your query and click Finish. Once the data is in you can create your power pivot report. Here is an example.
    I hope this helps to troubleshoot your issue.
    Best regards...
    Chandima Lakmal Fonseka

  • MDX query on Tabular Model

    Hi,
    I am very new to SSAS Tabular model and MDX query so I need some help in getting correct query.
    I am trying to build a query against a Tabular Model but not sure how to build the query.
    I have a Db called 'MyClient' in Analysis Services database. This db has Tables like 'Observations','Scan' etc.
    In table I have around 10 to 12 columns like 'Id','ScanId','Title','Date','Impact' etc.. What I am looking for is a MDX query to reterive all the information from Observations table filtered on ScanID? Can someone provide me with a query
    If SQL I could have written Select * from Observations where ScanID='22qwe-adfad-12322-adfsdf'.

    Hello,
    Is "Observation" a fact table or a dimension? In MDX it is not common to query a "detailed list", mostly you query aggregations; but you can query data from a diminsion. Here is an example for the "AdventureWorks" cube with dimension "Customers":
    SELECT {} ON 0
    { [Customer].[Customer].[Customer]
    * [Customer].[Gender].[Gender]
    * [Customer].[Marital Status].[Marital Status] } ON 1
    FROM $Customer
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • SSAS Tabular. MDX slow when reporting high cardinality columns.

    Even with small fact tables( ~20 million rows) MDX is extremely slow when there are high cardinality columns in the body of the report.
    e.g. The DAX query is subsecond.
    Evaluate
    SUMMARIZE (
    CALCULATETABLE('Posted Entry',
    'Cost Centre'[COST_CENTRE_ID]="981224"
    , 'Vendor'[VENDOR_NU]="100001"
    ,'Posted Entry'[DR_CR]="S")
    ,'Posted Entry'[DOCUMENT_ID]
    ,'Posted Entry'[DOCUMENT_LINE_DS]
    ,'Posted Entry'[TAX_CODE_ID]
    ,"Posted Amount",[GL Amount]
    ,"Document Count",[Document Count]
    ,"Record Count",[Row Count]
    ,"Document Line Count",[Document Line Count]
    ,"Vendor Count",[Vendor Count]
    order by
    'Posted Entry'[GL Amount] desc
    The MDX equivalent takes 1 minute 13 seconds.
    Select
    { [Measures].[Document Count],[Measures].[Document Line Count],[Measures].[GL Amount], [Measures].[Row Count],[Measures].[Vendor Count]} On Columns ,
    NON EMPTY [Posted Entry].[DOCUMENT_ID_LINE].[DOCUMENT_ID_LINE].AllMembers * [Posted Entry].[DOCUMENT_LINE_DS].[DOCUMENT_LINE_DS].AllMembers * [Posted Entry].[TAX_CODE_ID].[TAX_CODE_ID].AllMembers On Rows
    From [Scrambled Posted Entry]
    WHERE ( [Cost Centre].[COST_CENTRE_ID].&[981224] ,[Vendor].[VENDOR_NU].&[100001] ,{[Posted Entry].[DR_CR].&[S]})
    I've tried this under 2012 SP1 and it is still a problem. The slow MDX happens when there is a high cardinality column in the rows and selection is done on joined tables. DAX performs well; MDX doesn't. Using client generated MDX or bigger fact tables makes
    the situation worse.
    Is there a go fast switch for MDX in Tabular models?

    Hi,
    There's only 50 rows returned. The MDX is still slow if you only return a couple of rows.
    It comes down to the DAX produces a lot more efficient queries against the engine.
    FOR DAX
    e.g.
    after a number of reference queries in the trace the main vertipaq se query is
    SELECT
    [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DOCUMENT_ID], [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DOCUMENT_LINE_DS], [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[TAX_CODE_ID],
    SUM([Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[POSTING_ENTRY_AMT])
    FROM [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1]
    WHERE
     ([Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DOCUMENT_ID], [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DOCUMENT_LINE_DS], [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[TAX_CODE_ID]) IN {('0273185857', 'COUOXKCZKKU:CKZTCO CCU YCOT
    XY UUKUO ZTC', 'P0'), ('0272325356', 'ZXOBWUB ZOOOUBL CCBW ZTOKKUB:YKB 9T KOD', 'P0'), ('0271408149', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 7.3ZT BUY', 'P0'), ('0273174968', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 3ZT KBW', 'P0'), ('0273785256', 'ZOUYOWU ZOCO CLU:Y/WTC-KC
    YOBT 3ZT JXO', 'P0'), ('0273967993', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 3ZT KCB', 'P0'), ('0272435413', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 3ZT BUY', 'P0'), ('0273785417', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 3ZT BUY', 'P0'), ('0272791529', 'ZOUYOWU ZOCO CLU:Y/WTC-KC
    YOBT 7.3ZT JXO', 'P0'), ('0270592030', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 89.3Z JXO', 'P0')...[49 total tuples, not all displayed]};
    showing a CPU time of 312 and duration of 156. It looks like it has constructed an in clause for every row it is retrieving.
    The total for the DAX query from the profiler is 889 CPU time and duration of 1669
    For the MDX
    after a number of reference queries in the trace the expensive vertipaq se query is
    SELECT
    [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DOCUMENT_ID_LINE], [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DOCUMENT_LINE_DS], [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[TAX_CODE_ID]
    FROM [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1]
    WHERE
    [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DR_CR] = 'S';
    showing a CPU time of 49213 and duration of 25818.
    It looks like it is only filtering by a debit/credit indicator .. this will be half the fact table.
    After that it fires up some tuple based queries (similar to the MDX but with crossjoins)
    SELECT
    [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DOCUMENT_ID_LINE], [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DOCUMENT_LINE_DS], [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[TAX_CODE_ID]
    FROM [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1]
    LEFT OUTER JOIN [Vendor_6b7b13d5-69b8-48dd-b7dc-14bcacb6b641] ON [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[VENDOR_NU]=[Vendor_6b7b13d5-69b8-48dd-b7dc-14bcacb6b641].[VENDOR_NU]
    LEFT OUTER JOIN [Cost Centre_f181022d-ef5c-474a-9871-51a30095a864] ON [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[COST_CENTRE_ID]=[Cost Centre_f181022d-ef5c-474a-9871-51a30095a864].[COST_CENTRE_ID]
    WHERE
    [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DR_CR] = 'S' VAND
    ([Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DOCUMENT_ID_LINE], [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[DOCUMENT_LINE_DS], [Posted Entry_053caf72-f8ab-4675-bc0b-237ff9ba35e1].[TAX_CODE_ID]) IN {('0271068437/1', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 7.3ZT ZTC', 'P0'), ('0272510444/1', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 3ZT KBW', 'P0'), ('0272606954/1', null, 'P0'), ('0273967993/1', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 3ZT KCB', 'P0'), ('0272325356/1', 'ZXOBWUB ZOOOUBL CCBW ZTOKKUB:YKB 9T KOD', 'P0'), ('0272325518/1', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 3ZT KUW', 'P0'), ('0273231318/1', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 7.3ZT ZWB', 'P0'), ('0273967504/1', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 3ZT KBW', 'P0'), ('0274055644/1', 'YBUCC OBUC YTT OYX:OD 5.3F81.3ZT TOZUT', 'P5'), ('0272435413/1', 'ZOUYOWU ZOCO CLU:Y/WTC-KC YOBT 3ZT BUY', 'P0')...[49 total tuples, not all displayed]};
    This query takes 671 CPU and duration 234; more expensive than the most expensive part of the DAX query but still insignificant compared to the expensive part of the MDX.
    The total for the MDX query from the profiler is 47206 CPU time and duration of 73024.
    To me the problem looks like the MDX fires a very expensive query against the fact table and only filters by 1 element of the fact table; then goes about refining the set later on.

  • Slow Query Performance During Process Of SSAS Tabular

    As part of My SSAS Tabular Process Script Task in a SSIS Package, I read all new rows from the database and insert them to Tabular database using Process Add. The process works fine but for the duration of the Process Add, user queries to my Tabular model
    becomes very slow. 
    Is there a way to prevent the impact of Process Add on user queries? Users need near real time queries.
    I am using SQL Server 2012 SP2.
    Thanks

    Hi AL.M,
    According to your description, when you query the tabular during Process Add, the performance is slow. Right?
    In Analysis Services, it's not supported to make a MDX/DAX query ignore the Process Add of the tabular. it will always query the updated tabular. In this scenario, if you really need good query performance, I suggest you create two tabular.
    One is for end users to get data, the other one is used for update(full process). After the Process is done, let the users query the updated tabular.
    If you have any question, please feel free to ask.
    Regards,
    Simon Hou
    TechNet Community Support

  • SSRS report with tabular model – MDX query CoalesceEmpty function does not return the provided string value

    Hello everyone,
    I created following calculated member in MDX query. I am using it in one of the report parameter in dataset (single select dropdown list as report parameter).
    WITH MEMBER [Measures].[ParameterCaption] AS
    CoalesceEmpty([Customer].[National Account Code].CURRENTMEMBER.MEMBER_CAPTION,'None')
    I would like to display 'None' text at the top of the dropdown list values. So that when user selects 'None' then this parameter will not considered in MDX query else the selected National Account Code will be considered to filter report data. But,
    the above return blank/empty value for  [Customer].[National Account Code].&  member though I specified 'None' as text in CoalesceEmpty function. Any advice would be appreciated.
    Thanks, Ankit Shah
    Inkey Solutions, India.
    Microsoft Certified Business Management Solutions Professionals
    http://www.inkeysolutions.com/MicrosoftDynamicsCRM.html

    Hi Ankit,
    It seems that you issue had been solved in your another thread.
    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/5a5becac-226f-428a-95b0-aaaa22733818/ssrs-report-with-tabular-model-create-a-dropdown-report-parameter-with-none-option-as-the-top?forum=sqlanalysisservices#0e51bf8c-a66c-4df5-a244-0147728fdfdb
    iif([Customer].[National Account Code].CURRENTMEMBER.MEMBER_CAPTION="","None",[Customer].[National
    Account Code].CURRENTMEMBER.MEMBER_CAPTION)
    I marked this reply as answer, it will benefit to other members who have the similar issue.
    Regards,
    Charlie Liao
    TechNet Community Support

  • SSAS Tabular in DirectQuery - What are the workarounds for formula limitations?

    Hello,
    I need to create an SSAS Tabular model against the database of a live, real-time, line of business transactional system (i.e. a CRM).
    The business requirement behind it is that we need to create some complex reports against live data, and our DW is only updated daily.
    This live model will however be partitioned with a time-variance limitation (e.g. only records which are XX old can be returned).
    Now here is the challenge. Since I am querying live data, then I believe the model must be configured in DirectQuery model. Am I right?
    The issue is that DirectQuery mode is full of formula limitations. So my concern is, if I need a calculated column or measure that I cannot make it work due to DirectQuery limitations, then what are the alternatives?
    Remember that the data source is from a live system, so it is not like I can create columns and measures in the underlying relational database.
    Please advise.
    Regards,
    P.

    Hi pmdci,
    According to your description, you want to use some functions in calculated measure which are not supported in DirectQuery mode. Right?
    In Analysis Services Tabular, since DirectQuery has the real time access and scalability, this comes with a price of restrictions on a number of DAX functions and missing Calculated Column feature. Generally the workaround for these scenarios
    is replacing those functions with other functions which are supported in DirectQuery mode, or create columns in the data source. However, as you said, your environment is not possible to create columns in the database. And a lot of those limited
    function are not replaceable, like time intelligence functions. So actually, there's no really effective workaround currently.
    For you requirement, I suggest you submit Microsoft a feature request
    at https://connect.microsoft.com/SQLServer
    so that we can try to modify and expand the product features based on your needs.
    Best Regards,  
    Simon Hou
    TechNet Community Support

  • Hide/show a column for some users in SSAS tabular

    Hi,
    I have a requirement to show one of the columns in a table only to some of the users. I know SSAS tabular only supports row level security. The only solution I came up with yet is to create two different models. Unfortunately this wastes a lot
    of expensive RAM in the server. Is there a better way? Some kind of work-around? ;)
    Best Regards
    Ulf

    One other way is to embed the security level into the table. You can do this by adding a "security_ID" into your structure and join it with a security table and join this to a security table which has a junction of Tablecolumns/User or TableColumns/UserGroups. 
    The next step is to use a Case When in your sql query  and make a decision to show null or real data for any column. 
    Business Intelligence Architect

  • Data loaded to Power Pivot via Power Query is not yet supported in SSAS Tabular Cube

    Hello, I'm trying to create a SSAS Tabular cube from a data loaded to Power Pivot via Power Query (SAP BOBJ connector) but looks like is not yet supported.
    Any one tried this before? any workaround that make sense?
    The final goal is pull data from SAP BW, BO Universe (using PowerQuery) and be able to create a SSAS Tabular cube.
    Thanks in advance
    Sebastian

    Sebastian, 
    Depending on the size of the data from Analysis Services, one work around could be to import the data into into Excel and then make an Excel table and then use the Excel table as a data source. 
    Reeves
    Denver, CO

  • Need MDX query to find something like date diff and Date Range for last 10 days

    Hi ,
    I need two Query .First Query for below;
    I have below data in table like.
    Cat      StartDate    EndDate     
    A    2000-01-01     2000-01-15   
    B    2000-01-02     2000-01-30    
    C    2000-01-01     2000-01-31    
    D    2000-02-01     2000-02-28    
    A    2000-01-10     2000-01-31    
    I need if Startdate and Date completes whole one month then set status =1 else  0 using MDX query.
    like this ;
    Cat      StartDate    EndDate       Status
    A    2000-01-01     2000-01-15    1
    B    2000-01-02     2000-01-30    0
    C    2000-01-01     2000-01-31    1
    D    2000-02-01     2000-02-28    1
    A    2000-01-10     2000-01-31    1
    In second query I need last 10 days from current days like;
    Now = 8/20/2014
    output will be ;
    8/20/2014
    8/19/2014
    8/18/2014
    8/17/2014
    8/16/2014
    8/15/2014
    8/14/2014
    8/13/2014
    8/12/2014
    8/11/2014
    8/10/2014
    Please help me .
    Thanks

    Hi Prajapati,
    In your scenario, you can use Properties and Datediff function to achieve your requirement. Since not know the structure of your cube, we cannot give you the esact query.
     I have tested it on the AdventureWorks cube, the query below is for you reference.
    WITH MEMBER [Measures].[StartDate]
    AS
    [Employee].[Employee Department].CURRENTMEMBER.PROPERTIES('Start Date')
    MEMBER [Measures].[WorkYear]
    AS
    DATEDIFF('yyyy',[Measures].[StartDate],NOW())
    MEMBER [Measures].[Status]
    AS
    IIF(DATEDIFF('yyyy',[Measures].[StartDate],NOW())>10,1,0)
    SELECT {[Measures].[StartDate],[Measures].[WorkYear],[Measures].[Status]} ON 0,
    [Employee].[Employee Department].[Employee].MEMBERS ON 1
    FROM [Adventure Works]
    Results
    Reference
    http://msdn.microsoft.com/en-us/library/ms144821.aspx
    Regards,
    Charlie Liao
    TechNet Community Support

  • SSRS report with tabular model – MDX query how to get the sum and count of measure and dimension respectively.

    Hello everyone,
    I am using the following MDX query on one of my SSRS report.
    SELECT NON EMPTY { [Measures].[Days Outstanding], [Measures].[Amt] } ON COLUMNS,
    NON EMPTY { ([Customer].[Customer].[Customer Key].ALLMEMBERS) }
    HAVING [Measures].[ Days Outstanding] > 60
    DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
    FROM ( SELECT ( STRTOSET(@Location, CONSTRAINED)) ON COLUMNS
    FROM ( SELECT ( {[Date].[Fiscal Period].&[2014-06]}) ON COLUMNS
    FROM [Model]))
    Over here, the data is being filtered always for current month and for a location that is being selected by user from a report selection parameter.
    I would like to get the count of total no. of customers and sum of the amount measure.
    When I am using them in calculated members it gives incorrect values. It considers all records (ignores the sub-select statements) instead of only the records of current month and selected location.
    I also tried with EXISTING keyword in calculated members but there is not difference in output. Finally, I manage the same at SSRS level.
    Can anybody please advise what are the ways to get the required sum of [Measures].[Amt] and count of [Customer].[Customer].[Customer Key].ALLMEMBERS dimension?
    Also, does it make any difference if I manage it as SSRS level and not at MDX query level?
    Any help would be much appreciated.
    Thanks, Ankit Shah
    Inkey Solutions, India.
    Microsoft Certified Business Management Solutions Professionals
    http://www.inkeysolutions.com/MicrosoftDynamicsCRM.html

    Can anybody please advise what are the ways to get the required sum of [Measures].[Amt] and count of [Customer].[Customer].[Customer Key].ALLMEMBERS dimension?
    Also, does it make any difference if I manage it as SSRS level and not at MDX query level?
    Hi Ankit,
    We can use SUM function and COUNT function to sum of [Measures].[Amt] and count of [Customer].[Customer].[Customer Key].ALLMEMBERS dimension. Here is a sample query for you reference.
    WITH MEMBER [measures].[SumValue] AS
    SUM([Customer].[Customer].ALLMEMBERS,[Measures].[Internet Sales Amount])
    MEMBER [measures].[CountValue] AS
    COUNT([Customer].[Customer].ALLMEMBERS)
    MEMBER [Measures].[DimensionName] AS [Customer].NAME
    SELECT {[Measures].[DimensionName],[measures].[SumValue],[measures].[CountValue]} ON 0
    FROM [Adventure Works]
    Besides, you ask that does it make any difference if I manage it as SSRS level and not at MDX query level. I don't thinks it will make much difference. The total time to generate a reporting server report (RDL) can be divided into 3 elements:Time to retrieve
    the data (TimeDataRetrieval);Time to process the report (TimeProcessing);Time to render the report (TimeRendering). If you manage it on MDX query level, then the TimeDataRetrieval might a little longer. If you manage it on report level, then the TimeProcessing
    or TimeRendering time might a little longer. You can test it on you report with following query: 
    SELECT Itempath, TimeStart,TimeDataRetrieval + TimeProcessing + TimeRendering as [total time],
    TimeDataRetrieval, TimeProcessing, TimeRendering, ByteCount, [RowCount],Source
    FROM ExecutionLog3
    WHERE itempath like '%reportname'
    Regards,
    Charlie Liao
    TechNet Community Support

  • MDX query for parent-child combination display

    Hi guys..
    I am really new to the Essbase technology.
    Could you please help me out with this one:
    is it possible to extract the data(for example the metadata of a outline)..eg:-
    The outline structure is as follows :
    A1
    A11
    A12
    A2
    A21
    A22
    I want a MDX query to display it as :
    A1 A11
    A1 A12
    A2 A21
    A2 A22
    I have tried various ways but couldnt come up with a query for this.
    Thanks in advance for all your help.

    Unfortunately MDX cannot do this. If you think about what you are asking for, you are essentially saying that you want to see members of the same dimension on different axis. Multi-dimensional queries can't do that (think about trying to do it with addin).
    A further limiation is that MDX is not robust enough to allow you to work the results into a single axis using a concatenation function because while there is a string-to-member function, there is no member-to-string function and concat requires a string as input.
    Other approaches would require MDX to support joins or subqueries, which it does not.
    As others have mentioned, to do what you want to do, you need outline extractor or something like that.
    *Fun fact - if you have OBIEE 11g, it can do reporting in Essbase with hierarchy members in hierarchy format or column format, which will give you the results you need.  That alone is good reason to start using OBIEE.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

Maybe you are looking for

  • How can I split a signal coming in from an instrument​?

    I have a device (USB-TC made by Measurment Computing Corporation) that reads in 3 thermocouples in real-time and sends the information to my computer via USB. I am getting one signal from the instrument, how can i split it up into each thermocouple's

  • A counter to increment each time a button is pressed

    Can't seem to find a suitable vi within LabView and would appreciate if someone could point me in the right direction.

  • Flash (Photoshop) Web Gallery data

    I have created a web gallery using Photoshop CS2 to allow my clients to proof their images. From this gallery I want to allow them to flag images they like then submit the selections to me via email. Currently they are using the gallery just to view

  • What's the Craziest Thing That's Happened to Your Organization's Hardware?

    Nearly a month ago this entertaining (and let's be honest, a little shocking) thread in the community was posted to the hardware forum: "What's the dirtiest desktop/laptop you've encountered?" From lent, to roaches, to a few encounters I'll let you r

  • Cannot Access Mozilla Add-on Site

    I have been trying to access the Mozilla Add-on site but couldn't. Does anyone know if the site is down? Thank you. https://addons.mozilla.org/en-US/ I have tried both with https and http. Thank you.