Forum Discussion
Refresh large datasets on Power BI service
Hi,
I have data imported from bigquery using the SIMBA ODBC driver. My organisation has power BI premium capcity. There are billions of rows in the views as the data is in long format.
Data structure preview: There are around 50,000 SKUs tracked across 40 regions on a daily basis. This is around 2million rows with dates as column headers. Since this structure is not supported for visualisation, data is unpivoted for visualisation purpose. This makes the number of rows go upto 300millions for 5months data. I'm now concerned about the increasing 2million rows daily and the dashboard is expected to be in place for at least an year.
Here comes the major issue. I wish to refresh the data on a daily basis and below are the few roadblocks:
- Refresh on service fails because of timeout issues after 2 hours. Couldn't increase command timeout as it is not being supported by bigquery import
- Direct query is very very slow
- Data is present from 1st of Jan 2020 and incremental refresh is not preferred as the data has to be updated from the day of start
- Have tried dataflow as well. It takes around 6 hrs for data refresh with no manipulations except appending tables in Power BI
Could someone please help me in scheduling a successful daily refresh for this huge dataset? Any suggestions would be greatly appreciated
Regards,
Swetha
- Anonymous6 years ago
Hi swethabonthu ,
You may following those tips to reduce the size of dataset or optimize the model of dataset based on this document, some tips may not reduce the time of refresh.
- Remove unused tables or columns, where possible.
- Avoid distinct counts on fields with high cardinality – that is, millions of distinct values.
- Take steps to avoid fields with unnecessary precision and high cardinality. For example, you could split highly unique datetime values into separate columns – for example, month, year, date, and so on. Or, where possible, use rounding on high-precision fields to lower cardinality – (for example, 13.29889 -> 13.3).
- Use integers instead of strings, where possible.
- Be wary of DAX functions, which need to test every row in a table – for example, RANKX – in the worst case, these functions can exponentially increase run-time and memory requirements given linear increases in table size.
- When connecting to data sources via DirectQuery, consider indexing columns that are commonly filtered or sliced again. Indexing greatly improves report responsiveness.
Or you can increase the timeout value in connector function.
Best Regards,
Jay
Community Support Team _ Jay Wang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
7 Replies
- AnonymousNot applicable
Hi swethabonthu ,
You may following those tips to reduce the size of dataset or optimize the model of dataset based on this document, some tips may not reduce the time of refresh.
- Remove unused tables or columns, where possible.
- Avoid distinct counts on fields with high cardinality – that is, millions of distinct values.
- Take steps to avoid fields with unnecessary precision and high cardinality. For example, you could split highly unique datetime values into separate columns – for example, month, year, date, and so on. Or, where possible, use rounding on high-precision fields to lower cardinality – (for example, 13.29889 -> 13.3).
- Use integers instead of strings, where possible.
- Be wary of DAX functions, which need to test every row in a table – for example, RANKX – in the worst case, these functions can exponentially increase run-time and memory requirements given linear increases in table size.
- When connecting to data sources via DirectQuery, consider indexing columns that are commonly filtered or sliced again. Indexing greatly improves report responsiveness.
Or you can increase the timeout value in connector function.
Best Regards,
Jay
Community Support Team _ Jay Wang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- colivierAdvocate I
Hi swethabonthu
You can use PBI Spy (www.pbispy.com) to quickly identify columns that are not being used.
Reach out to me if you need any assistance doing this.
- AnonymousNot applicable
OMG! I wish I would have known about this before!!
I've been given a report with 5 tables, each one with about 350 columns, I was going crazy trying to figure out what data was really used.
THANK YOU!
- colivierAdvocate I
Glad to be of assistance. This is the first real public release of PBI Spy. If anything does not work or is unclear please don't hesitate to contact me. I'm trying to make it as good as it can be, but it's a journey.
- lbendlinSuper User
Please explain the reasoning for not using incremental refresh in a bit more detail. Do your data rows come with a "last modified date" tag?
- swethabonthuFrequent Visitor
Data imported from bigquery uses complex machine learning techniques and the historic data is not fixed. Also, I don't have "last modified date" tag