(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisbon
Embeddings and semantic search in Microsoft Fabric for BI
Inteligência Artificial

Embeddings and semantic search in Microsoft Fabric for BI

João Barros 04/08/2026 10 min

“Embeddings turn text into meaningful vectors — the challenge is integrating them where reports and decisions already live.”

Why embeddings matter for BI and interactive reports

In an ecosystem where user questions are increasingly unstructured — customer comments, product descriptions, support notes — classic reports lose context. Embeddings convert text and other content (descriptions, transcripts, calls) into vectors that capture semantics. This enables searching, aggregating and correlating information by meaning, not just by keywords.

Embeddings and semantic search in Microsoft Fabric for BI

For BI teams, the practical value is direct and measurable. Imagine a support department with 25,000 tickets per year: by representing ticket text as vectors, it is possible to automatically group similar incidents that, by keyword criteria, were previously scattered. Instead of filtering by manually applied tags (which cover 60–70% of cases), the team can identify emerging patterns that explain KPI variations, such as average resolution time or repeat contact rate.

From a technical and product perspective, embeddings enable three capabilities that are a game changer for BI:

  • Semantic search: returns contextually relevant content even when the user uses synonyms, misspellings or vague descriptions.
  • Dimension enrichment: associate semantic attributes (e.g., topic, tone, intent) to existing records for segmentation and cohort analysis.
  • Recommendations and explainability: feed fact tables with semantic relationships that support recommendations and explanations about metric variations.

Concretely, this translates into more actionable dashboards: by linking customer feedback to products or campaigns, you can attribute revenue uplift to feedback themes in days rather than weeks. In controlled experiments, teams that added embeddings to product reports observed 30–50% reductions in average time to diagnose issues and 10–40% increases in accuracy of internal recommendations (depending on corpus and model used).

Practical architecture: where to fit embeddings in Microsoft Fabric

In Microsoft Fabric there are three natural points to work with embeddings: (1) as an ETL pipeline within Data Factory/Synapse for generation and persistence; (2) storage in OneLake as files or tables for versioning and access; (3) a search/vector store layer (Azure Cognitive Search with vector search or an external service) for indexing and fast query. This combination allows embeddings to coexist with the rest of the analytics stack.

A typical operational architecture is: ingestion pipelines (Synapse/Power Query) → normalization and cleaning → call to embedding service (Azure OpenAI/internal service) in batch → store vectors and metadata in OneLake/Delta → index vectors in Azure Cognitive Search or a dedicated vector store → expose results via Synapse SQL or APIs for Power BI. This way, Power BI consumes precomputed results instead of generating embeddings in real time, keeping latency low and costs controlled.

To size: if you have 1 million descriptions with vectors of dimension 1,536 (float32), pure vector storage will be on the order of 6 GB (1,536×4 bytes×1M ≈ 6 GB), but with index overhead, metadata and replicas expect 2–3× that value in production. For 120,000 SKUs, as we will see later, the footprint can be below 1 GB just for the vectors, making the solution feasible even in projects with moderate budgets.

Operationally, it is important to separate responsibilities: ETL pipelines manage data quality and transformation; embedding generation services handle only the cleaned text; the vector store takes care of proximity and query latency. This facilitates A/B testing: you can reindex using another model without touching the original ingestion chain.

How to generate and version embeddings: models, batch vs online

Model choice depends on two factors: required semantic quality and cost/latency. Larger models produce better embeddings for fine discrimination (e.g., distinguishing product variants), but cost more. We recommend starting with mid‑cost models for POCs and moving to higher‑quality models when ROI is clear.

Some practical references: models of dimension 768–1,536 are a good balance between capacity and cost. If you are dealing with short descriptions (titles, labels), 768 is usually sufficient; for long reviews or transcripts, 1,536 improves fidelity without structurally doubling the cost. Dimension also impacts index size and search latency — larger vectors require more memory and CPU for proximity calculations.

On batch vs online: for most BI needs, batch is sufficient — generate embeddings nightly for all new/changed records and reindex periodically. Online is only justified when the user experience requires new text instantly (e.g., chat with real‑time history). In systems with 10k+ edits per day, an incremental pipeline (daily or hourly) usually satisfies most cases without excessive processing costs.

Regardless of cadence, versioning embeddings is essential: store the model tag, featurization parameters, applied preprocessing and the date in the vector table so you can reproduce experiments and compare results between versions. For example, having columns: model_name, model_version, dimension, created_at, preprocessing_hash enables controlled regressions. In audits or performance tests, this allows answering the question: “Did this drop in relevance start after we switched to model X?”

Indexing and semantic search: options and trade‑offs

There are several ways to serve vectors for query. Azure Cognitive Search offers native vector integration and is generally the simplest option within the Microsoft ecosystem. Alternatives like Faiss (self‑hosted), Weaviate or Pinecone bring flexibility and specific optimizations (e.g., HNSW, IVF) that influence latency and infrastructure cost.

Practical trade‑offs: managed services simplify maintenance and security (authentication, replication), but may cost more per query; self‑hosted solutions reduce cost per operation at scale but require teams for tuning and monitoring. For analytics in Fabric, the combination Azure Cognitive Search (primary indexing) + Faiss for intensive offline reindexing is common: it maintains simplicity for production and allows batch‑tuning remotely when needed.

Some guiding numbers: a vector query in Azure Cognitive Search can return top‑10 in 20–200 ms depending on index size and configuration; HNSW optimized on machines with sufficient memory can reduce per‑query latencies to 5–30 ms for indices of millions of vectors. In terms of cost, managed services bill both for indexing rate and for queries; expect to pay between €0.01 and €0.10 per thousand queries, depending on plan and region — values that should be considered when designing the Power BI experience (avoid calls on every visual).

Integration with Power BI: queries, performance and UX

Thinking about how semantic results enter the analytical flow is crucial. We do not recommend direct vector search calls from Power BI reports in production: latency and per‑user cost can be unpredictable. Instead, materialize relevant results in tables that Power BI can import or query via DirectQuery with an intermediate cache.

An effective pattern is to precompute the top 10 semantic matches per entity (product, customer, ticket) and store them in an enrichment table. Power BI displays those matches as additional columns or relational tables, enabling filtering, aggregation and drill‑through without external calls at view time. For exploratory scenarios, a backend API can serve real‑time results and Power BI can include a button that opens an embedded web panel for interaction without affecting the main dashboards’ performance.

Also consider hybrid strategies: import most data (Import mode) for critical dashboards and use DirectQuery or APIs for exploration panels where some users run ad‑hoc queries. This keeps the interactive experience for most and allows deep dives when needed.

Measuring impact: metrics and mini case study

Metrics to track: response latency, cost per 1k queries, precision/recall on evaluated tasks, click‑through rate on semantic suggestions, uplift in conversion or first‑contact resolution. These measures allow quantifying the trade‑off between cost and value. In addition, include operational indicators such as embedding generation success rate (errors/failed requests), storage usage per version and full reindex time — these help manage budget and operational risk.

Mini case study: In a retail company with 80 employees and an online store, the catalog has 120,000 SKUs and receives about 10,000 internal searches per day. Before embeddings, keyword‑based search returned relevant results for 62% of searches (measured by click and dwell time). The BI team implemented a pipeline in Fabric:

  • Daily ingestion of new SKUs and descriptions via Synapse (nightly batch).
  • Embedding generation with a mid‑tier model (dimension 1,536), 120k embeddings reprocessed in batch — estimated generation cost: ~€200 per month, with 720 MB of storage for raw vectors.
  • Indexing in Azure Cognitive Search with vector search; precomputing the top 10 matches per SKU and storing them in Delta tables in OneLake.
  • Power BI loaded enrichment tables and began showing semantic suggestions on product pages and merchandising dashboards; production queries are materialized and updated daily.

Results in 3 months:

  • Perceived relevance rose to 81% (measured by click and average time on page), with the search satisfaction metric increasing from 0.62 to 0.81 on a normalized scale.
  • Conversion rate per search increased from 1.1% to 1.7% — a relative uplift of ~55% on searches, resulting in clearly measurable monthly revenue increase (in a store with average revenue per search of €0.50, the increment translated to an additional €2,000/month).
  • Average time to find a relevant alternative fell from 34 s to 12 s, reducing support load and returns; an 18% reduction in support contacts related to product search was estimated.
  • Additional operational cost (services and indexing) was ~€1,600/year — recovered by the conversion improvement in less than 6 months.

This mini case shows that, with a pragmatic Fabric architecture and materialized results, embeddings become a measurable accelerator for business metrics. The key was starting small, measuring rigorously and scaling only when KPIs justified it.

“Working embeddings into the analytical flow forces you to think in data engineering — it’s not isolated magic, it’s operationalization.”

Best practices for reliability, cost and governance

Some practices our team recommends and applies for clients: (1) version embeddings and store model metadata for audit; (2) define retention and automatic reindexing policies to avoid drift; (3) precompute and cache top‑N matches for reports; (4) monitor latency/costs and have thresholds that trigger a fallback to traditional search when limits are exceeded.

Additionally, pay attention to privacy and data governance: filter PII before embedding generation, document the vectors’ lifecycle and apply role‑based access control so only authorized teams can reindex or access sensitive data. Automatic retention and deletion help meet compliance requirements — for example, old conversation records can be discarded or anonymized after X months according to corporate policy.

On the economic side, implement alerts that warn when monthly costs exceed X% of the budget allocated for embeddings. Combine this with simple optimizations: reduce vector dimension for short corpora, apply vector compression (quantization) for large‑scale indices and limit online calls through caching and materialization.

In summary

  • Embeddings turn text into vectors that enrich analytical models and dashboards, enabling semantic search and new segments.
  • In Microsoft Fabric, combine generation pipelines (Synapse/OneLake) with a vector store (Azure Cognitive Search or alternative) and materialize results for Power BI.
  • Prefer batch for most BI cases; versioning embeddings and metadata is mandatory for governance and reproducibility.
  • Measure impact with business metrics (relevance, conversion, resolution time) and compare operational costs with tangible benefits.

Operationalizing embeddings in your analytics stack is not just a machine learning project: it is a data engineering project focused on delivering value to end users. Start with a limited use case (one product dimension or a ticket corpus) and expand based on real metrics.

What concrete discovery could your team unlock if the meaning contained in text and descriptions were no longer trapped in columns and instead started feeding dashboards and decisions in minutes?

← Back to insights
Let's talk?

Ready to transform your data?

Book a free 30-minute meeting and find out how we can help your team make better decisions.

Book a Free Meeting
bConcepts