Forum Discussion
Power BI Paginated Report with BigQuery DirectQuery – Filters not pushed down
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:
1. Parameterize the data source query, not just the report
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.
2. Use Paginated Report direct BigQuery connection
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.
3. Pre-aggregate or partition data in BigQuery
-
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.
4. Consider Import mode (if data volumes allow)
-
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.
5. Use Composite Models / Aggregations
-
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
💡 Did I answer your question? Mark my post as a solution!
👍 Kudos are appreciated
🔥 Proud to be a Super User!
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!
- v-achippa10 months agoCommunity Support
Hi m_andel,
The behaviour here is expected because the paginated reports that connect to a power bi semantic model execute DAX queries against that model and the BigQuery connector currently has limited predicate pushdown support for DAX. That is why your BigQuery logs show full table scans without the WHERE clause.
To make the filters execute in BigQuery without ODBC or dataflows, connect the Paginated Report directly to BigQuery using Power Query:
- In Report Builder, create a new dataset using Power Query.
- Use a parameterized native query via Value.NativeQuery and pass your date parameters so that BigQuery runs the filtered SQL directly.
- This runs fully cloud to cloud and no gateway or ODBC needed and the filter is pushed down to BigQuery.
This is currently the only supported approach to make sure parameter filters are executed in BigQuery when using Paginated Reports.
Thanks and regards,
Anjan Kumar Chippa
- m_andel9 months agoHelper I
I can't find Power Query as a ConnectionType
- v-achippa9 months agoCommunity Support
Hi m_andel,
The Power Query connector option is only available in the new Power BI Report Builder, older or standalone report builder versions do not show Power Query as a data source type.
Please download and install the latest Power BI Report Builder, after installing you will be able to see the Power Query option
Thanks and regards,
Anjan Kumar Chippa