Forum Discussion
Optimizing data model update time
- Anonymous6 years ago
Cool. The dataflow serves as intermediate data source. Multiple datasets can now consume from the dataflow instead of recreating the import from files. And yes you need to refresh the dataset, now that your dataflow is updated. But see, even reading from a hyperfast single table Azure source, it takes 20min to refresh, that´s the bare minimum under ideal conditions. If I calculated correctly that equals ~200Mbps! on a shared, free ressource! Therefore, if you find a 60min solution reading from text files that need to be processed row per row, I think that should be acceptable. If that solves your problem, please accept as solution to close the case. Alexander
Anonymous
All data stored on cloud OneDrive. There are files to each month, at the moment - it 17 files. Refresh time takes through service. version.
Could you give more information about "create a dataflow ingesting your data every day."? I upload new file once per week, and now I trying to refresh all model, in case of first upload.
Hi, a dataflow is the online version of PBI PowerQuery.
https://docs.microsoft.com/en-us/power-bi/transform-model/service-dataflows-create-use
Instead of refreshing the dataSET reading from files you can refresh the dataFLOW first on a weekly basis (or daily if you like) and then refresh the dataset reading from the dataflow.
I would give it a try but honestly don´t think it will help too much as you´re already using cloud storage and compute service.
I wonder why the 2h refresh time bothers you in the first place. You have to wait for a week to get the new file so why would waiting for 2h more be a problem?
What you could do though is to split the query. Instead of importing all historic data with every refresh, create a first static import (disable refresh) for e.g. file 1-15 (=e.g. 28GB) and a second dynamic import for file 16+. You need to append both queries before loading into the dataset. This way, the refresh will only read 2 files instead of 17 which should be much faster. Of course, the 2 files will become more and more over time, therefore you´ll need to move some files from the dynamic to the static import and refresh the static one.
One thing we didn´t touch so far is the complexity of your query. Make sure you´re not folding it (i.e. merge with other tables creating a matrix product) or such things. Try to reduce complexity of the query for trial purposes to the bare minimum: just read the file without any transformations.
Good luck, keep trying.
Alexander
- Denis_Slav6 years agoHelper III
2Alexander, thank you. DataFLow is realy cool, but they don't help me. (
Is it may be better, if I manualy combine files, for example all year to one file?
And how it will be better:
1) Filter neccessary rows in query?
2) Clear unneccessary row in csv?
I tryied to refresh without 5 files (2020 year), and it was take 01:44 > one file takes about 9 min. In case of full 2 years it may take about 03:40. Not optimistic. 🙂 The reason to think about create like a buffer DB, to where upload all data, and after that use it to reports.
- Anonymous6 years agoNot applicable
Isn´t it strange that 1 file takes 9min but 5 files take 104 instead of 45min? Something´s not right.
It would be best to reduce number of rows and columns in the CSV before ingesting in dataflow /dataset. This will reduce the amount of time for transfer & transformation upfront. How many rows / columns do your files have today?
As a trial, you could manually reduce the files size by removing rows / columns from the CSV. Let me know the new timing.
Alexander
- Denis_Slav6 years agoHelper III
Anonymous Now, it's ok. Because erlyest file has less rows and size. It's avarage time. I suppose it may be different in 2 times. Files from 0.9Gb to 2.4gb.
Now I'm preparing files for 2 test:
1) COmbine by 3 files to one;
2) Reduce rows in files;
It take time 🙂