Forum Discussion
Power BI Dataflow - response too large to return
- 2 years ago
Can't use direct connection to BQ for access reasonsChallenge that assumption. Tell them that 650 GB is too much.
If they don't budge, use Incremental Refresh. Start VERY small, with a day or so. See how many rows you get. Recommended partition size is around 8 to 20 million rows.
- 2 years ago
Please explain "import does not work" - are you getting an error message?
Direct Query on a dataflow = datamart = lipstick on a pig (Azure SQL db being the lipstick and the dataflow being the pig). Possible, sure, but a travesty nevertheless.
You can consider switching the incremental refresh to the dataset instead and to completely remove the dataflow from the equation.
You can consider dataflow Gen2 and store the results as Delta Lake in Fabric.
Can't use direct connection to BQ for access reasons
Challenge that assumption. Tell them that 650 GB is too much.
If they don't budge, use Incremental Refresh. Start VERY small, with a day or so. See how many rows you get. Recommended partition size is around 8 to 20 million rows.
Yea, so the 650 GB is for the entire dataset on BQ, which is roughly about a year's worth of data and the proposed solution is to have two datasets one rolled up monthly, which i was able to succesfully create and provide a dataflow access. The second one was a 90 day rolling window but at daily level and i was able to create a stored procedure on BQ that deletes the oldest day's data and add's new day's data from source table , had that schduled as a daily run to comply the 90 day rolling window.
Challenge started when i created a dataflow off of it where the data size on bq is about 200 GB, which kept failing on me so i cut the columns into half to 30 from 50 odd. Still didn't work.
So, i then filtered by date on power query editor - that worked! But now it only has 30 days of data and am not sure how i proceed from here?
Also the dataset on BQ is partitioned by day for effeciency.
From what you are suggesting, it looks like i have done the first bit getting data for 30 days and now i should use incremental refresh for every 15-30 days until i have all 90? Is that the right approach?
Thanks.
- lbendlin2 years ago
Super User
Use the biggest partition size you can get away with. Your choices are Day,Month,Quarter and Year.
I would start with Day and check how many rows you get per partition. If not too many you can switch to Month.
- Sam_Jain2 years ago
Helper III
Please help me understand this step. My aim was to get data for the past 90 days - so period being = 9 April to 9 July or so. The current dataflow has data for last 30 days meaning - 9 June to 9 july.
What am i supposed to be inputting on the incremental refresh because the refresh rows days can't be higher than the store rows days.And if i am successful to even bring all the past 90 days somwhow, i still have to figure out a way to keep that as a rolling 90 day.
Thanks and i appreciate all your help.
- lbendlin2 years ago
Super User
Set it to refresh 1 day and store 10 days. Then evaluate the refresh log to see how many rows are in each partition. If there are substantially fewer than 8M rows per day then you can change your settings to 1 day and 3 months.
You will get the rolling 90 days automatically (plus some extra days to complete the months, as the actual month partitions will include not three but four months). You could change your setting to 1 day and 90 days but that would mean you would have 90 partitions. Only do that if necessary.