This livestream is restricted
Already a member? Login with your membership email address
Feb 2026
23 Mon
24 Tue
25 Wed
26 Thu
27 Fri 10:00 AM – 04:30 PM IST
28 Sat 09:00 AM – 06:00 PM IST
1 Sun
Mayur Jadhav
@mjadhav13 Facilitator
Submitted Feb 5, 2026
The BoF session brought together data engineers, product managers, and analytics practitioners to confront what the facilitator called “the uncomfortable truth about analytics” that despite massive investments in compute and infrastructure, analytics remains painfully slow. The room explored whether BI tools are the bottleneck, or if the problem lies elsewhere in organizational workflows, tool lock-in, cost structures, and the gap between what dashboards deliver and what decision-makers actually need.
A candid, practitioner-driven conversation unfolded across several themes: the persistence of legacy dashboards, the promise and pain of LLM-augmented analytics, the cost explosion that comes with opening up ad hoc querying, and whether pushing compute to the edge (local machines) is a viable alternative to centralized cloud analytics.
A recurring theme emerged: legacy dashboards aren’t going anywhere but they’re no longer sufficient. The real bottleneck isn’t a single tool; it’s the gap between fixed dashboards and the dynamic, iterative questioning that modern decision-making demands.
Dashboards are necessary but insufficient: Everyone agreed that predefined dashboards serve a purpose for known metrics, but they can’t anticipate every question. The real demand is for iterative, conversational analytics.
LLM copilots help, but the semantic layer is critical: Teams deploying copilots found that without a well-maintained semantic layer, hallucinations and wrong SQL generation become serious problems, sometimes even threatening to bring down production clusters.
Cost unpredictability is a first-order concern: One participant shared that their projected token costs went from X to 3x within three weeks, and 10x within a month. The shift from fixed dashboards to open-ended querying fundamentally changes cost profiles.
Caching and pattern reuse are essential: Just like call centres where 200 questions cover most requests, analytics queries follow patterns. Caching known queries and converting conversations into reusable “recipes” reduces cost and latency.
Tool lock-in drives AI adoption: When people switch companies (Qlik to Power BI, for example), they lose productivity. AI/LLM interfaces that accept natural language reduce this friction significantly.
The session opened with a relatable scenario: you’re in a war room meeting and someone says “these numbers don’t look right” or “get me this data by tomorrow.” Despite years of investment in data platforms, data engineers are still fielding ad hoc requests because dashboards built over 2–3 months don’t answer the questions that matter in the moment.
Key insight: The bottleneck isn’t compute, it’s the mismatch between static dashboards and the dynamic, evolving questions that business stakeholders need answered. Product managers know what to ask; they just don’t have the means to get answers without going through the data team.
One participant described deploying a copilot that allows anyone to ask questions in natural language, with SQL generated and executed against their data warehouse. The critical enabler was a semantic layer, definitions of metrics, entities, and business logic, that provides context to the LLM and reduces hallucinations.
What worked:
What broke:
Tools and alternatives discussed: Participants mentioned Cube for semantic layers, Snowflake’s native capabilities (Cortex), knowledge graphs for cross-domain semantics, and the general pattern of needing a translation layer between natural language and SQL/DSL.
A significant portion of the discussion centred on cost. With fixed dashboards, you know your compute profile, there’s a bounded set of queries. But once you give users the ability to ask anything via an LLM interface, usage becomes unpredictable.
Real-world examples shared:
Mitigation strategies discussed:
As more people in an organisation get access to LLM-powered analytics, access control becomes critical. Participants raised the concern that role-based data serving must extend to the LLM layer, users should only see data they’re authorised to access.
Key concern: Traditional BI tools enforce access through their own permissions model. When you add an LLM layer on top, you need to ensure the semantic layer and query engine respect the same access controls. Without this, you risk leaking sensitive data through cleverly worded natural language queries.
A spirited discussion emerged around whether analytics should move closer to the user’s machine rather than staying centralised in the cloud.
Arguments for local/edge compute:
Arguments against:
Consensus: It depends on the use case. For sensitive, on-premises data with dedicated hardware, local compute makes sense. For most cloud-native organisations, centralised compute with proper access controls remains the default, but the option of pushing pre-processing and cleaning to local machines before sending results to the cloud was seen as a pragmatic middle ground.
The group briefly explored whether smaller, specialised language models could serve analytics use cases, especially for edge deployments where large LLMs can’t run.
Current state: One participant mentioned Number Station (later acquired), which built an SLM on LLaMA for SQL generation, but it didn’t achieve mainstream adoption. For edge deployments, participants are still using traditional computer vision and quantised deep learning models rather than SLMs. The consensus was that SLMs for analytics are not yet production-ready but worth watching.
Teams deploying LLM-based analytics face an ongoing maintenance challenge: system prompts need updating, foundational model releases change behaviour (e.g., Gemini 2.5 behaves very differently from Gemini 3), and non-deterministic outputs make traditional golden dataset testing unreliable.
Approaches discussed:
Hosted by
Supported by
Platinum sponsor
{{ gettext('Login to leave a comment') }}
{{ gettext('Post a comment…') }}{{ errorMsg }}
{{ gettext('No comments posted yet') }}