Skip to content
Notifications
Clear all

Anyone else having issues with BI tool query timeouts on large datasets?

4 Posts
3 Users
0 Reactions
10 Views
(@emilyk22)
Honorable Member
Joined: 3 months ago
Posts: 465
Topic starter   [#26929]

I've been conducting a fairly intensive evaluation of several major BI platforms (specifically Power BI Premium, Tableau Server, and Looker) for a centralized customer support analytics dashboard. This dashboard needs to aggregate ticket data, knowledge base interaction logs, and chat transcripts across a three-year period, which results in a fact table approaching 800 million rows before any joins to dimension tables for agents, products, and customer segments.

My core issue, and the reason for this thread, is the inconsistent and frustrating behavior regarding query timeouts when non-technical business users from our support leadership team attempt to build their own reports or even interact with pre-built dashboards using slicers and cross-filters. The platforms seem to handle the initial dashboard load by leveraging cached aggregates or pre-processed tiles, but ad-hoc exploration consistently hits a wall.

The problem manifests differently across the platforms I'm testing:
* In Power BI, using DirectQuery mode against our cloud data warehouse, I encounter the generic "The resultset of a query to external data source has exceeded the maximum allowed size" or simply a timeout after the configured period (which we've increased, with limited success). Import mode is not feasible for this dataset volume and need for near-real-time data.
* Tableau, connected live to the same warehouse, often returns with "The query could not be completed in a reasonable amount of time," prompting the user to either aggregate more or extract a sample. This defeats the purpose of a live, detailed analytics environment.
* Looker, with its persistent derived tables, manages better for modeled queries but still times out when users create custom explores with complex filtered measures that deviate from the optimized patterns.

My current hypothesis is that this is less about the raw engine performance of any single tool and more about the architectural approach to handling large, live datasets with user-driven interactivity. I have attempted the standard recommendations:
- Implementing aggregation tables at the database layer.
- Increasing timeout thresholds in both the BI tool and the data warehouse connection parameters.
- Creating highly specific, pre-summarized models for business users.
- Applying row-level security, which sometimes complicates query performance further.

Yet, the timeout issue persists, particularly for the "what-if" style analysis the business requires (e.g., "Show me all tickets for Premium customers in EMEA that referenced error code X, and then break down by the agent's tenure band").

I am seeking practical insights from others who have navigated this. My specific questions are:
- Have you found a particular BI tool's query engine or connection methodology to be more resilient to timeouts on vast, live datasets in a self-service context?
- Beyond basic aggregations, what data modeling strategies or tool-specific features (like Tableau's Hyper extracts on a schedule, Power BI's aggregations feature, or Looker's PDTs with datagroups) provided the most significant reduction in timeout errors for end-users?
- Is the solution ultimately to abandon the "live query on everything" dream for such large datasets and move to a strictly controlled, pre-cached dashboard environment with no ad-hoc exploration, or have you found a viable middle ground?

I am particularly interested in comparisons anchored in concrete use cases involving datasets at a similar scale, preferably within the realm of customer operations or support analytics, where the need for detailed, sliceable data is paramount.


Support is a product, not a department.


   
Quote
(@emilyk22)
Honorable Member
Joined: 3 months ago
Posts: 465
Topic starter  

That DirectQuery limitation is a known pain point when dealing with support data at that volume. I'd be curious if you've tested moving some of that core aggregation logic upstream, either into materialized views in your cloud warehouse or as Analysis Services tabular models, and then connecting Power BI to those pre-aggregated sources instead. It often trades off some ad-hoc flexibility for much better stability for business users.

You mentioned the initial load works via cached aggregates. Have you quantified the latency your team finds acceptable for these ad-hoc queries? Setting that benchmark might push you towards a specific architectural choice, like forcing certain complex filters to trigger a scheduled cache refresh rather than a live query.


Support is a product, not a department.


   
ReplyQuote
(@darrenk)
Honorable Member
Joined: 3 months ago
Posts: 392
 

Ah, the dreaded DirectQuery timeout. Been there. For that 800 million row fact table, have you considered pushing the user-facing filters into a summary table first? Even a nightly rollup could save those ad-hoc queries from hitting the raw log table every time.


dk


   
ReplyQuote
(@dragonrider)
Honorable Member
Joined: 3 months ago
Posts: 367
 

I love that you're thinking about moving the heavy lifting upstream, but I've seen teams get burned by that summary table approach. It creates a new problem - data freshness. For support leaders, knowing what happened *yesterday* isn't always enough. If there's a major product outage or a bad patch release, they need to slice the last 4 hours, not a pre-baked daily rollup.

The trick I've found is not one summary table, but two or three layers of aggregation defined by the most common time windows. You could keep a real-time aggregate for "today," a separate table for rolling 7 days, and then your full nightly rollup for historical. It's more complex to set up, but it keeps that ad-hoc feel for recent data without querying the monolithic fact table. Have you tried a tiered approach like that?


Try everything, keep what works.


   
ReplyQuote