Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.
Hi everyone,
I’m currently facing the following scenario:
My data resides in BigQuery, with potentially quite a large volume (up to ~13M rows). To simplify external queries, I’ve created a view in BigQuery.
This data needs to be presented in a Power BI Paginated Report. As the connection between BigQuery and the Power BI Service, I’m using a Semantic Model with DirectQuery, hosted in the Power BI Service.
The Paginated Report uses parameters to restrict the 13M rows, with a date column being the most effective filter.
My assumption was that running a DAX query against the Semantic Model in the Paginated Report would push the parameterized query down to BigQuery. However, when checking the BigQuery logs, I noticed that the query is executed without the restrictive WHERE clause. It seems the Semantic Model queries BigQuery first and only applies the DAX filters afterwards.
Is there an alternative, more performant approach for this scenario?
Best regards
Hi @m_andel,
Thank you for reaching out to Microsoft Fabric Community.
Thank you @BeaBF for the prompt response.
As we haven’t heard back from you, we wanted to kindly follow up to check if the solution provided by the user for the issue worked? or let us know if you need any further assistance.
Thanks and regards,
Anjan Kumar Chippa
@m_andel Hi!
Paginated Reports query the semantic model, not the data source directly.
Your DAX query + parameters in the Paginated Report first resolve against the semantic model.
The BigQuery connector in Power BI has limited predicate pushdown capabilities, especially when queries originate as DAX. That means you often see “SELECT *”–style queries from the source, followed by filtering happening afterwards in the Power BI engine.
This is why your BigQuery logs show queries without the expected WHERE clause.
WORKAROUNDS:
Instead of relying on DAX to push filters down, you can:
Create a BigQuery parameterized view or stored procedure that already expects the date filter.
Point the Paginated Report directly at that query (using a shared dataset or dataset parameters), so the filter gets applied at the SQL layer.
This avoids the semantic model doing the heavy lifting.
Paginated Reports don’t have to go through a semantic model. You can connect them directly to BigQuery (via ODBC/JDBC or the Power BI connector).
Advantage: filters in the report parameters will get translated into the SQL query and pushed down.
Downside: you lose reuse of the existing semantic model.
If performance is critical, this is usually the best option.
If you must stay with the semantic model, restructure your BigQuery layer.
Partition the view on the date column and only scan the necessary partitions.
Materialize a smaller table or partitioned dataset that’s directly filterable.
That way, even if Power BI pulls “too much” data, BigQuery itself is handling less.
If the data reduces significantly after filtering (e.g., 13M rows daily but only ~50k are relevant at report time), Import mode with scheduled refreshes might outperform DirectQuery for Paginated Reports.
You can then apply filters in-memory efficiently.
But this depends on whether freshness requirements allow a refresh delay.
Define an aggregation table (pre-filtered or aggregated by date) in BigQuery.
Let the semantic model map user queries to the aggregation where possible.
BBF
Hi @BeaBF,
Thanks a lot for your response! I’ve got a few follow-up questions and comments regarding your points:
That would require an ODBC connection, right? Unfortunately, I can’t use ODBC. The whole reason I’m connecting my Power BI reports directly to BigQuery is to avoid the need for a gateway server.
I only created the semantic model for these reports.
This solution (using ODBC) would basically be the same as option 1, correct? In Power BI Report Builder, I can’t find a “Power BI connector” data source option. If there is a way to connect directly to BigQuery from there, could you point me to where/how to set that up?
3./5. The data is already partitioned by day. But without the right SQL query being pushed down, that doesn’t really help me. Further pre-aggregations aren’t possible at the moment (or at least I’d need to discuss that with the project team first).
In this report, users can select larger time ranges, so I can’t really predict how many rows will be needed. Is there any way for a Dataflow to fetch missing data from the source dynamically, as needed? (As far as I know, that’s not possible.)
Pre-aggregation might be an option if we revise the report’s purpose — that’s something I’ll need to clarify internally.
To sum it up:
I need to run a parameterized query from a Paginated SSRS Report against BigQuery data, without using an ODBC connection and without copying the data into a Power BI Dataflow first.
From what I understand so far, it seems that there’s currently no way to achieve this.
I appreciate any confirmation or workaround ideas from the community!
Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!
Check out the September 2025 Power BI update to learn about new features.