SSAS: How to solve column of table cannot be processed bcz it contains more than 2B distinct records

MohanV 1 Reputation point
2021-03-02T16:32:56.757+00:00

Hello All,

We are using SSAS tabular models for our power bi reports.

Our models are pulling data from SQL Server and the data is increasing rapidly in billions.

One of facttable, which has more than 10Billions of records, when we are trying to process that table,

we got below error

The ''column" of the ''table" cannot be processed because it contains more than two billion unique values.

The column which we got this error is a decimal data type

But earlier also we got the same error on a string column, and we resolved it by splitting the column into two, and using those two columns in report by concatenating through measure.

I have gone through below url

https://learn.microsoft.com/en-us/analysis-services/multidimensional-models/olap-physical/maximum-cap...

and in there, under the tabular section,

Rows in a table Unlimited
Warning: With the restriction that no single column in the table can have more than 1,999,999,997 distinct values.

Now, my question is, how we can keep a check on our table columns, where we can know that, any of the our table's column is reaching the limit of 2B distinct values, so that we can take prior action on it to resolve.

Any suggestions or tips and tricks would be very helpful.

Thanks,

Mohan V.

SQL Server Analysis Services
SQL Server Analysis Services
A Microsoft online analytical data engine used in decision support and business analytics, providing the analytical data for business reports and client applications such as Power BI, Excel, Reporting Services reports, and other data visualization tools.
1,307 questions
0 comments No comments
{count} votes

3 answers

Sort by: Most helpful
  1. Darren Gosbell 2,376 Reputation points
    2021-03-03T06:40:07.01+00:00

    If you wanted to check manually you should be able to use the View Metrics button in the advanced ribbon in DAX Studio

    0 comments No comments

  2. Alexei Stoyanovsky 3,416 Reputation points
    2021-03-03T07:14:20.107+00:00

    I'd set up snapshots of count(distinct) over all suspect columns. Daily or more frequently if your data flow warrants it. The results can then be analysed with you tools of choice: a chart, a forecasting solution, a threshhold check, etc.

    0 comments No comments

  3. Lukas Yu -MSFT 5,821 Reputation points
    2021-03-03T08:27:57.837+00:00

    From your description, I would suggest to try to take this "rapid" growth into consideration and redesign the data warehouse work flow.

    Depends on how many rows you get per months or per quarter, you could set some automation to create new fact table for a period, so that one table could contain less than 2 billion records.

    This is not for the sake of SSAS tabular, it should also benefit the SQL Server performance. But in case we also need to be careful and not overkill on this. Because too many fact tables could also be nightmare for management.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.