AI Readiness · 4
SQLBI
Oct 22, 2026
3/5 · Tier B
AI ReadinessSemantic Model
announcement
<p>The <strong>DAX Lib MCP server 0.1.0</strong> connects any local (stdio) MCP client, such as Claude, Codex, GitHub Copilot in VS Code or Cursor, to the DAX Lib catalog of <strong>DAX user-defined functions</strong> and to the Power BI Desktop models open on the same machine. Through the assistant you can search packages, read READMEs and versions, list open models and install a package's functions into a chosen model.</p><p>The server downloads the package and writes the original function code (formatting and comments intact) directly into the model. The assistant does not retype it. Functions with the same name are replaced and nothing else in the model changes. The file is not saved for you. The install tool is flagged as data-changing, so most clients ask for approval first. The server is MIT open source with no telemetry.</p><p>Limits:</p><ul><li>It runs on Windows x64 only and needs Node.js 18 or later.</li><li>It targets local Desktop models only.</li><li>The model needs <strong>compatibility level 1702 or higher</strong>, and the server will not raise it for you.</li><li>It cannot remove or update functions. You update by reinstalling the newer version.</li><li>If you omit the version, you get the latest one, which may be a prerelease.</li></ul>
Practical MCP tooling for installing DAX UDF libraries; clear limits, niche impact.
Tabular Editor
Oct 20, 2026
3/5 · Tier B
AI ReadinessSemantic Model
tutorial
<p><strong>Agent skills</strong> are folders containing a <strong>SKILL.md</strong> Markdown file, plus optional references, scripts and assets folders. They follow an open standard that originated at Anthropic. The YAML <strong>frontmatter</strong> (name, description, optional allowed-tools) is always loaded into the agent's context. The instructions load only when the skill is invoked, either by a slash command or automatically when the description matches the task. Reference files load only when the instructions point the agent to them.</p><p>This <strong>progressive disclosure</strong> keeps always-loaded context small, which cuts token cost and protects output quality. A vague description means the agent never loads the skill. An overpromising one means it loads on the wrong tasks and steers the agent off course. Telling an agent to read a skill file is not the same as installing the skill, because you lose the harness integration and progressive loading.</p><p>Skills supply context, not tools, which sets them apart from <strong>MCP servers</strong>. They should encode business definitions and processes that agents cannot infer, not technical detail they can already figure out. Write them iteratively: run the task, record where the agent failed, then refine. Cut prescriptive text that confuses more than it helps. Version skills in Git next to the model code so they do not drift.</p>
Practical guidance on agent skills for semantic model work; no Fabric limits or cost.
Fabric Updates
Oct 19, 2026
4/5 · Tier A
AI ReadinessBreaking ChangeMigration
announcement
<p>The <strong>custom-connection integration</strong> that let Microsoft Foundry agents call a Fabric data agent as a custom tool is deprecated and stops being supported on <strong>6 November 2026</strong>. The replacement is the <strong>Fabric IQ (OneLake Catalog) tool</strong>, currently in Preview.</p><p>With the new integration, published data agents appear by name in the OneLake Catalog inside the Foundry portal, so no workspace or artifact IDs are needed. A single Foundry agent can call <strong>multiple data agents</strong>, where the old integration allowed only one. Each data agent is exposed as a tool through an <strong>MCP endpoint</strong>, and responses will soon include the generated query.</p><p>Migration runs either through the portal (add the Fabric IQ tool, pick the agent, rewrite instructions, remove the old tool) or through code. The code path creates a Foundry connection via ARM REST with <strong>authType UserEntraToken</strong>, category RemoteTool, the data agent MCP URL as target and audience api.fabric.microsoft.com. It uses <strong>isSharedToAll true</strong>, then references the full connection resource ID from the SDK. Calls run as the signed-in user, so Fabric permissions apply per user.</p>
Hard retirement deadline 11/6/2026 for Foundry custom-tool data agent integration; migration steps.
Fabric Updates
Oct 19, 2026
4/5 · Tier A
AI ReadinessSemantic Model
announcement
<p><strong>Advanced NL2SQL</strong> and <strong>advanced DAX generation</strong> in Fabric data agents are now GA. The core improvements roll into the standard runtime between <strong>2 and 10 November</strong>. Instead of generating a query in one pass, the agent uses sub-tools to explore the schema, test joins and look up real filter values (for example "California" mapping to "CA") before writing SQL or DAX. Each step and assumption is visible in the run steps.</p><p>Advanced NL2SQL works in three modes: <strong>example-query following</strong> (adapting an approved example), <strong>clarifying questions</strong>, and <strong>data exploration</strong>. Two new configurations apply to SQL sources on the preview runtime:</p><ul><li><strong>Schema descriptions</strong> add business meaning to tables and columns.</li><li><strong>Topics</strong> hold subject-specific Markdown guidance that the agent retrieves only when it is relevant, unlike data source instructions, which are always sent.</li></ul><p>On Microsoft's internal benchmark, smart-answer accuracy rose from 78.8% to 90.9%. P50 latency fell from 28.4s to 26.0s and P95 from 46.8s to 32.9s. Advanced DAX uses <strong>instance value indexing</strong> over real column values and aims for consistent answers across the data agent, Power BI and M365 Copilot.</p>
GA with benchmark accuracy/latency numbers and runtime rollout dates requiring agent re-testing.
Migration · 2
<p><strong>Incremental migration</strong> for Fabric Data Warehouse (Preview) lets Migration Assistant run repeatedly against the same destination Warehouse. Each run migrates a selected subset of object definitions, not every source object. Sources can be SQL Server, Synapse dedicated SQL pools or Teradata. The destination can be empty, previously migrated, or a Warehouse built by other means.</p><p>From the Warehouse <strong>Migration tab</strong>, <strong>Get more objects</strong> starts a new run. The selection dialog flags <strong>naming conflicts</strong> and auto-includes <strong>direct dependencies</strong>, so the final scope can be larger than what you picked. Non-conflicting objects are created immediately. Conflicting ones stay pending until you resolve each one in a side-by-side SQL diff:</p><ul><li><strong>Keep existing</strong> — retain the destination definition.</li><li><strong>Keep incoming</strong> — replace it with the new translated definition.</li><li><strong>Rename incoming</strong> — create the new object under a different name.</li></ul><p>Key limits:</p><ul><li>It migrates definitions only. There is no continuous row sync, and data loading is a separate step.</li><li>Replacing a table can force a data reload and revalidation of dependents.</li><li>Consolidating several sources into one Warehouse does not reconcile definitions or merge data.</li></ul>
Phased warehouse migration with conflict resolution; preview with concrete behavior and limits.
<p><strong>Fabric Migration Assistant</strong> for Data Warehouse now accepts Teradata sources in preview. You upload a ZIP of <strong>.sql</strong> and <strong>.bteq</strong> files, choose the objects in scope, and the tool translates them to Fabric T-SQL. It deploys eligible:</p><ul><li>tables</li><li>views</li><li>stored procedures</li><li>SQL functions</li><li>macros, which become stored procedures</li></ul><p>Volatile tables map to local temp tables. Untranslatable scripts land in <strong>Objects to fix</strong>, with source, translation comments and errors. Copilot <strong>Fix query errors</strong> can suggest corrections where it is enabled.</p><p>For <strong>BTEQ</strong>, only SQL and supported control flow become stored procedures. Imports, exports, scheduling and external operations must be rebuilt with <strong>COPY INTO</strong>, pipelines or other services.</p><p>Data is not moved by the tool. Three loading options are offered:</p><ul><li><strong>Copy job</strong> from the Copy data step: full copy, plus incremental where the source supports it.</li><li><strong>ADLS Gen2 staging plus COPY INTO</strong> for large historical loads.</li><li><strong>Pipelines</strong> for orchestrated or custom-recovery loads.</li></ul><p>The guidance separates three outcomes: translation, deployment and validated behavior.</p>
Teradata source support with concrete mappings, BTEQ handling and data-movement options.
Real-Time Intelligence · 3
<p><strong>Schema-aware Eventstreams</strong> (Preview) let a single Eventstream recognise several event types while data is in motion, instead of treating a mixed feed as one wide, sparse schema. The data preview groups live events by type. You can inspect payload, headers and metadata, expand nested JSON, and export samples before building any processing logic.</p><p>Three maturity levels coexist in one stream:</p><ul><li><strong>Schematized events</strong> are CloudEvents whose <strong>ce_type</strong> header references a schema registered in <strong>Event SchemaSet</strong> (GA) or the Fabric Schema Registry.</li><li><strong>Classified events</strong> are split by a field you choose, such as deviceType or eventType, through the new Classifier workflow. They do not become registered contracts.</li><li><strong>Untyped events</strong> stay visible without any declared structure. Events with a null or missing classifier value also stay untyped.</li></ul><p>Supported operators such as Filter, and destinations such as Eventhouse, Lakehouse, custom endpoints and derived streams, can take one event type as input. They then see only that type's fields. One important behavior: events from schema-associated sources that fail validation are <strong>dropped</strong> and reported only in runtime logs, not routed as untyped. The post gives no cost or throughput figures.</p>
Preview RTI feature with useful behavior details on schema routing, validation drops.
<p><strong>Custom visuals with Copilot</strong> are in preview for Real-Time Dashboards. In Editing mode you choose <strong>Add visual > Describe a visual</strong> and describe the operational view you need. Copilot then generates a KQL query plus an <strong>HTML-based visualization</strong> and adds it as a new tile, for example entrances laid out spatially with congestion colouring, or a service-dependency health graph.</p><p>You refine the result iteratively in tile edit mode through the Copilot pane, adjusting the query or the visual, then apply and save. The setup requires a configured identity and a cloud connection on the dashboard's data sources. The post gives no limits, capacity cost, security model for the generated HTML, or accuracy guidance beyond advice to validate the output.</p>
Bare preview of Copilot-generated RTI visuals; no limits, cost or governance detail.
<p>Eventstreams Q3 2026 broadens Fabric's streaming layer from connectivity toward in-flight processing and operations.</p><p><strong>Generally available:</strong></p><ul><li>Connectors for SAP Datasphere, Cribl, Solace PubSub+ and MQTT.</li><li><strong>Mirrored Database Change Feed</strong> and <strong>MongoDB CDC</strong>, both feeding DeltaFlow transformations.</li><li><strong>Schema Registry and Event Schema Sets</strong>: versioned Avro contracts.</li><li>Activator rule management inside Eventstream.</li></ul><p><strong>In preview:</strong></p><ul><li><strong>Custom Stream Connector</strong>, which brings your own Kafka Connect source connectors.</li><li><strong>Schema-aware Eventstreams</strong>: multiple event types in one stream, classified by registered schema or a discriminator field.</li><li><strong>Reference Data with Delta Table</strong>: INNER and LEFT OUTER joins against lakehouse or warehouse tables, including shortcuts.</li><li>Workspace Monitoring and diagnostic logs.</li><li>Capacity Operation Events as a stream source.</li><li>Workspace-level Private Link.</li><li><strong>Variable Library</strong> support for environment promotion.</li></ul>
Quarterly RTI roundup: GA connectors, schema registry, reference joins, monitoring, Variable Library support.
Warehouse · 3
<p>Fabric Data Warehouse adds four T-SQL language features in preview:</p><ul><li><strong>GROUP BY ALL</strong> groups by every non-aggregate expression in the SELECT list.</li><li><strong>ORDER BY ALL</strong> sorts by the SELECT columns in their listed order.</li><li><strong>QUALIFY</strong> filters rows after window functions are evaluated, removing the wrapper CTE for top-N and dedup patterns.</li><li><strong>FROM ... SELECT</strong> lets a query start with its source and define the selected columns afterward.</li></ul><p>The post includes no performance, limitations or SQL analytics endpoint support details. The goal is shorter, more maintainable queries.</p>
Bare preview of T-SQL syntax sugar; useful but no behavior or limits.
<p>Fabric Data Warehouse and the SQL analytics endpoint add new analytical functions in preview:</p><ul><li><strong>MEDIAN</strong> and <strong>QUANTILE</strong> for exact results.</li><li><strong>APPROX_MEDIAN</strong> and <strong>APPROX_QUANTILE</strong> for faster estimates on large datasets.</li><li><strong>Aggregate syntax</strong> for the existing PERCENTILE_CONT and PERCENTILE_DISC, alongside their window forms.</li></ul><p>Each function works as an aggregate or as a window function. The post does not give approximation error bounds or performance numbers.</p>
Preview MEDIAN/QUANTILE functions; handy for statistics but no accuracy or cost details.
<p>Fabric Data Warehouse can call <strong>Fabric User Data Functions</strong> in preview. You define a T-SQL <strong>external function</strong> with CREATE FUNCTION ... AS EXTERNAL FUNCTION that maps to a published Python function. You then call it from SELECT, INSERT or UPDATE, and each call is delegated to the UDF runtime.</p><p>Suggested uses include:</p><ul><li>Calling APIs and sending email or Teams messages.</li><li>Parsing files and reading or writing other Fabric stores.</li><li>Retrieving secrets from Key Vault or variable libraries.</li><li>Custom encryption or masking, and enrichment such as IBAN validation or ML scoring.</li></ul><p>The example derives IPv6 /48 prefixes with Python's ipaddress module inside an UPDATE.</p><p>The post does not state throughput, batching, CU cost or failure semantics.</p>
Preview: T-SQL external functions calling Python UDFs; no cost or limit details.