← Back to Interview Hub

Fabric Data Warehouse Interview Questions

40 questions across architecture, T-SQL, performance, security, cross-querying, and migration. Verified June 2026 — includes IDENTITY Preview (Nov 2025), Data Clustering, MERGE GA, Activator integration, and the new Migration Assistant.

What changed Nov 2025 → June 2026 — know these before any senior interview
Was true in 2024
IDENTITY columns not supported — use ROW_NUMBER()
MERGE statement not supported — separate INSERT/UPDATE/DELETE
No Data Clustering — manual OPTIMIZE for file layout
Statistics always full re-sample even on INSERT-only tables
No SQL Migration Assistant — manual DACPAC + compatibility checks
Current as of June 2026
IDENTITY columns in Preview (Nov 2025) — auto-unique, parallel-safe
MERGE Preview Sept 2025, GA — INSERT + UPDATE + DELETE in one statement
Data Clustering Preview — ingestion-time row layout, no separate OPTIMIZE
Incremental statistics refresh — re-samples only new rows on INSERT-heavy tables
SQL Migration Assistant (FabCon Mar 2026) — DACPAC import, AI compatibility
AI Snapshot

Senior Warehouse interviews test whether you know what changed in the last 12 months. The two highest-signal questions: “Is IDENTITY supported?” (yes, Preview Nov 2025 — most candidates still say no) and “How does MERGE work in Fabric?” (now GA — candidates who say it’s unsupported fail immediately). Also know: Data Clustering vs Z-Order, Warehouse + Activator integration (SQL-triggered real-time alerts, March 2026), and the Polaris engine eliminating distribution key decisions that Synapse required.

Verified: June 2026 40 questions · 6 modules By A.J., UIG Data Lab Fabric Warehouse docs
Module A · Q1–Q8

Warehouse Architecture

The fundamental shift from PaaS Synapse to SaaS Fabric — Polaris engine, Delta Parquet internals, the Warehouse vs Lakehouse SQL Endpoint distinction, and 2026 database convergence.

Core Concepts
Q1
Foundation
What is a Fabric Warehouse and how is it architecturally different from SQL Server?
Quick Answer

A SaaS-based relational engine supporting full T-SQL (DDL, DML, ACID transactions) with compute completely separated from storage. Storage is open Delta Parquet in OneLake rather than SQL Server’s proprietary page-based format. There are no `.mdf`/`.ldf` files, no manual index management, and no DWU scaling — capacity is governed by the F-SKU.

The separation of compute from storage means the Warehouse engine (Polaris) can scale compute independently of how much data you store. This eliminates the Synapse pattern of paying for compute headroom even when idle — Fabric bills via the F-SKU capacity model that is shared across all workloads in the workspace.

What the interviewer is testing

Whether you understand compute-storage separation as the foundational architectural shift — not just that “it’s serverless.” The Delta Parquet storage being open-format (readable by Spark, Databricks, external tools with permissions) is the key implication.

Q2
Intermediate
Warehouse vs. Lakehouse SQL Analytics Endpoint — the critical read/write distinction.
Quick Answer

Warehouse: full T-SQL read/write — INSERT, UPDATE, DELETE, DDL all work. Lakehouse SQL Analytics Endpoint: read-only. You query Spark-written Delta tables using T-SQL but cannot modify data or schema from that endpoint. Both run on the same SQL engine and share OneLake storage, enabling cross-item queries via three-part naming.

CapabilityFabric WarehouseLakehouse SQL Endpoint
INSERT / UPDATE / DELETE✓ Supported✗ Read-only
CREATE TABLE / ALTER TABLE✓ Full DDL✗ Auto-synced from Spark schema
Stored Procedures✓ Supported✗ Not supported
Views✓ Supported✓ Read-only views
Cross-item queries✓ Three-part naming✓ Three-part naming (read)
Primary source of truth forSQL-first engineering (DWH pattern)Spark-first engineering (Lakehouse pattern)
What the interviewer is testing

Whether you draw the boundary precisely — “Lakehouse SQL Endpoint is read-only” is the sentence that separates candidates who know the platform from those who’ve read a summary. The follow-up is usually “why?” — because the Lakehouse schema is managed by Spark’s Delta log, not by T-SQL DDL.

Q3
Architect
Fabric Warehouse vs. Synapse Dedicated SQL Pools — the specific gaps.
Quick Answer

Synapse Dedicated Pools use a 60-distribution architecture with explicit HASH/ROUND_ROBIN/REPLICATE distribution keys, require manual DWU scaling, and store data in a proprietary format. Fabric Warehouse uses the Polaris engine on open Delta Parquet with no distribution key definitions (Polaris manages data placement automatically) and scales via F-SKU capacity rather than manual DWU provisioning.

DimensionSynapse Dedicated PoolFabric Warehouse
Architecture60 fixed distributions, MPPPolaris engine, serverless MPP
Distribution keysManual: HASH / ROUND_ROBIN / REPLICATENone — engine manages automatically
ScalingManual DWU up/down (minutes)F-SKU capacity (immediate)
Storage formatProprietary clustered columnstoreOpen Delta Parquet in OneLake
IDENTITY columnsSupported (SEQUENCES)Preview (Nov 2025)
StatisticsManual or auto (limited)Auto + incremental refresh (Jan 2026)
The migration implication

The most common migration blocker for Synapse → Fabric is removing DISTRIBUTION, CLUSTERED COLUMNSTORE INDEX, and CREATE STATISTICS hints from DDL scripts. Fabric’s Polaris engine handles all of this automatically — DDL that references Synapse-specific syntax fails at parse time, not runtime.

What the interviewer is testing

Whether you can list specific DDL incompatibilities, not just say “it’s different.” The DISTRIBUTION key removal is the single most common migration rewrite — candidates who’ve done this know it immediately.

Storage Internals
Q4
Intermediate
How does Delta Lake underpin the Fabric Warehouse and what does that enable?
Quick Answer

Fabric Warehouse stores data as Delta Parquet in OneLake, with the Delta transaction log maintaining ACID guarantees. This enables: (1) Time Travel via T-SQL, (2) cross-engine read access (Spark, external tools with permissions), (3) Mirroring into Fabric from external databases that land data in this same format, (4) Direct Lake Power BI access to Warehouse tables without a separate copy.

The “open format” nature has a governance nuance: Spark jobs with sufficient OneLake permissions can read Warehouse tables directly, bypassing the SQL security layer. This is by design for legitimate cross-engine scenarios, but it means SQL-layer RLS doesn’t protect data accessed via Spark — only OneLake Security does at that layer.

What the interviewer is testing

Whether you understand the security boundary implication of open Delta storage — not just the interoperability benefit. “Delta means Spark can read it” is the easy answer; “and Spark bypasses SQL RLS” is the mature one.

Q5
Advanced
How does the Fabric Warehouse handle transactions and ACID compliance?
Quick Answer

Fabric Warehouse uses a distributed transaction log that writes to Delta Lake metadata (`_delta_log`) on commit. ACID compliance comes from Delta Lake’s optimistic concurrency control — each transaction reads a consistent snapshot, and conflicts are detected at commit time. There is no `.ldf` transaction log file to manage or back up; durability is handled by OneLake’s underlying storage redundancy (ZRS/GRS).

Isolation level is snapshot isolation by default — readers don’t block writers and writers don’t block readers. A long-running SELECT won’t be blocked by concurrent INSERTs to the same table, because each sees a consistent Delta snapshot. This is different from SQL Server’s default READ COMMITTED behavior and means some locking-based anti-patterns from SQL Server don’t transfer directly.

What the interviewer is testing

Whether you know snapshot isolation is the default — not the SQL Server default of READ COMMITTED. This matters for applications that rely on specific isolation semantics when migrating from SQL Server.

Q6
Intermediate
Time Travel in the Fabric Warehouse — syntax and recovery scenarios.
Quick Answer

Because Warehouse tables are Delta Lake under the hood, you can query historical versions using OPTION (FOR TIMESTAMP AS OF ...) syntax. This enables point-in-time recovery without a full backup restore — query what the table looked like before an accidental DELETE, then re-insert those rows.

Time Travel syntax — T-SQL
-- Query table state at a specific point in time
SELECT * FROM dbo.Orders
OPTION (FOR TIMESTAMP AS OF '2026-05-01T09:00:00')

-- Recover rows accidentally deleted
INSERT INTO dbo.Orders
SELECT * FROM dbo.Orders
OPTION (FOR TIMESTAMP AS OF '2026-05-01T08:59:00')
WHERE OrderID NOT IN (SELECT OrderID FROM dbo.Orders)

Time Travel reads historical Delta versions and is limited by the Delta table’s retention window. The default retention is 7 days — rows deleted more than 7 days ago can’t be recovered via Time Travel (they’d be removed by the equivalent of a VACUUM). Adjust retention for compliance scenarios using delta.deletedFileRetentionDuration.

What the interviewer is testing

Whether you know the 7-day retention default and can name the recovery pattern (query historical version → re-insert). Candidates who describe Time Travel without mentioning the retention window haven’t used it for incident response.

Q7
ArchitectMar 2026
What is the Database Hub and how does it change multi-database governance?
Quick Answer

Database Hub in Fabric (early release, FabCon March 2026) is a unified governance surface for observing and managing SQL, CosmosDB, PostgreSQL, and Fabric Database workloads at scale. Rather than navigating separate admin consoles per database type, Database Hub provides a single place for cross-database monitoring, performance insights, and governance.

The strategic significance is the “unified platform” direction announced at FabCon 2026 — Microsoft is converging transactional and analytical workloads under Fabric. Database Hub is the operational surface that makes this visible: DBAs managing SQL Server, developers using Cosmos DB, and data engineers using Fabric Warehouse all appear in the same governance plane.

What the interviewer is testing

Whether you know about FabCon 2026’s database convergence direction. Candidates who describe Fabric as “just an analytics platform” without acknowledging the March 2026 transactional + operational convergence reveal they haven’t tracked recent announcements.

Q8
ArchitectMar 2026
Warehouse + Activator integration — SQL-triggered real-time alerts.
Quick Answer

Fabric Data Warehouse (March 2026) integrates with Fabric Activator, allowing teams to define rules directly from SQL query outputs. A query that detects an SLA breach, process failure, or threshold breach can trigger an Activator rule that fires alerts and downstream actions in real time — without exporting data to a separate monitoring system.

The pattern: a SQL Agent-style job is no longer needed to poll for conditions. Write the detection query in the Warehouse, attach an Activator rule to it, and the rule evaluates continuously. When the condition is met, Activator sends an alert (email, Teams message) or triggers an action (another pipeline, a webhook). This makes the Warehouse an active participant in business operations rather than a passive data store.

What the interviewer is testing

Whether you see the Warehouse as an operational tool, not just an analytics store. The Activator integration is the clearest signal of Fabric’s “translytical” direction in the Warehouse specifically — candidates who mention it signal current platform knowledge.

Module B · Q9–Q16

T-SQL Development & Limitations

The T-SQL surface area changed significantly in 2025 — IDENTITY in Preview, MERGE GA, constraints still unenforced. Know the current status precisely.

DDL & Constraints
Q9
IntermediateNov 2025
Are IDENTITY columns supported? What’s the current status?
Quick Answer

Yes, as of November 2025 Preview. IDENTITY columns in Fabric Data Warehouse automatically generate unique values per row and maintain uniqueness across parallel ingestion jobs in the distributed engine. The original workaround of using ROW_NUMBER() or MAX(ID) + 1 is no longer required for new implementations.

IDENTITY column — current syntax (Preview)
-- IDENTITY column in Fabric Warehouse (Preview, Nov 2025)
CREATE TABLE dbo.Orders (
    OrderID    INT           IDENTITY(1,1)  NOT NULL,
    OrderDate  DATE          NOT NULL,
    CustomerID INT           NOT NULL,
    Amount     DECIMAL(18,2) NOT NULL
)
-- Engine guarantees uniqueness even when multiple
-- parallel COPY INTO jobs insert simultaneously
Still use surrogate keys in ETL for existing pipelines

For pipelines written before November 2025 using ROW_NUMBER()-based surrogate keys, no immediate change is required. IDENTITY Preview is most useful for new table designs. For production migration decisions, confirm GA status before architectural commitment since Preview features can change.

What the interviewer is testing

Currency of knowledge — this is the single highest-signal question in this module. The candidate who still says “IDENTITY is not supported” is demonstrating outdated preparation. The correct answer names both the Preview status (Nov 2025) and the parallel-safety guarantee.

Q10
Foundation
Are Primary Keys and Foreign Keys enforced in Fabric Warehouse?
Quick Answer

Defined but not enforced. You can declare PRIMARY KEY, FOREIGN KEY, and UNIQUE constraints in DDL for documentation and query optimizer hints — the optimizer uses them for join strategy decisions. But the engine does not validate uniqueness or referential integrity at write time. Data quality must be enforced in the ETL pipeline before data enters the Warehouse.

The optimizer hint value is real: declaring a PRIMARY KEY on your surrogate key column tells the query optimizer that it’s unique, which enables better join and aggregation plans. Without this hint, the optimizer must assume duplicates are possible and plans more defensively. Declare constraints even knowing they aren’t enforced — the documentation and optimizer benefit are both worth having.

What the interviewer is testing

Whether you know both facts: not enforced AND useful for the optimizer. Candidates who only say “not enforced” miss the optimizer hint value. Candidates who say “they’re enforced” are wrong entirely.

Q11
IntermediateGA 2025
Is MERGE supported? What’s it useful for in a Warehouse context?
Quick Answer

Yes — MERGE entered Preview in Fabric Data Warehouse in September 2025 and is now GA. It provides conditional DML: INSERT, UPDATE, and DELETE in a single statement based on a match condition. This is the standard T-SQL pattern for implementing SCD Type 1 and upsert logic without separate INSERT/UPDATE statements.

MERGE — Fabric Warehouse SCD Type 1 upsert
MERGE INTO dbo.Customers AS target
USING staging.CustomerUpdates AS source
    ON target.CustomerID = source.CustomerID
WHEN MATCHED THEN
    UPDATE SET
        target.Name    = source.Name,
        target.Email   = source.Email,
        target.Updated = GETUTCDATE()
WHEN NOT MATCHED BY TARGET THEN
    INSERT (CustomerID, Name, Email, Updated)
    VALUES (source.CustomerID, source.Name, source.Email, GETUTCDATE())
WHEN NOT MATCHED BY SOURCE THEN
    DELETE;
What the interviewer is testing

Whether you know MERGE is now GA — not unsupported. Candidates who say “MERGE isn’t available, use separate INSERT/UPDATE” are giving a 2024 answer. The follow-up question is usually a MERGE scenario (SCD Type 1, SCD Type 2, or CDC upsert) — have a concrete use case ready.

Q12
Foundation
Does Fabric Warehouse support Stored Procedures, Views, and TVFs?
Quick Answer

Yes — Stored Procedures, Views, and inline Table-Valued Functions are all supported. This allows substantial business logic to migrate from SQL Server or Synapse with relatively limited changes, provided the procedures don’t use unsupported T-SQL constructs (cursors, OPENQUERY, temp table loops).

For procedures that use IDENTITY-based sequence generation: update them to use the native IDENTITY column (Preview) rather than the MAX(ID) + ROW_NUMBER() workaround. For procedures that use MERGE: those now work directly. The remaining migration work focuses on cursors and row-by-row processing patterns — replace with set-based equivalents for both correctness and performance.

What the interviewer is testing

Whether you know what’s specifically not supported rather than just listing what is. Cursor-based row-by-row patterns are the most common migration blocker in stored procedure porting.

Data Ingestion
Q13
Foundation
What is COPY INTO and when does it beat INSERT INTO … SELECT?
Quick Answer

COPY INTO loads data from external files (CSV, Parquet in ADLS, OneLake) in parallel across compute nodes — it’s the primary high-throughput ingestion path. INSERT INTO ... SELECT works but is slower for large file loads because it’s processed as a standard DML statement without the parallel file reader optimization.

COPY INTO from ADLS Parquet
COPY INTO dbo.SalesFact
FROM 'https://myaccount.dfs.core.windows.net/gold/sales/*.parquet'
WITH (
    FILE_TYPE = 'PARQUET',
    CREDENTIAL = (
        IDENTITY = 'Managed Identity'
    )
)
-- Parallelizes across all Parquet files matching the glob
-- Significantly faster than INSERT INTO ... SELECT for bulk loads
What the interviewer is testing

Whether you know COPY INTO as the primary bulk ingestion pattern and can explain why (parallel file readers). Candidates who only mention INSERT or Data Factory pipeline inserts for bulk loads are missing the recommended pattern.

Q14
Intermediate
How do you use dbt with Fabric Warehouse?
Quick Answer

Fabric Warehouse exposes a T-SQL endpoint compatible with the dbt-fabric adapter. Configure the profile with the Fabric Warehouse’s SQL connection string, run dbt run, and dbt executes models as SQL transformations inside the Warehouse. dbt materializations (table, view, incremental) all work against the Warehouse T-SQL surface.

The incremental materialization in dbt with Fabric Warehouse uses the MERGE statement natively (now GA) or INSERT OVERWRITE pattern depending on configuration. For large historical tables, incremental dbt models are significantly more efficient than full rebuilds — combine with the unique_key configuration to trigger MERGE-based upserts. See our dbt Best Practices guide for Fabric-specific patterns.

What the interviewer is testing

Whether you know dbt works via the T-SQL endpoint and whether you connect MERGE GA to the dbt incremental materialization improvement. Candidates who say “dbt doesn’t support Fabric” haven’t checked the current adapter status.

Q15
Advanced
How do you handle schema drift in Fabric Warehouse?
Quick Answer

Fabric Warehouse enforces schema-on-write — a COPY INTO or pipeline write with an incompatible structure fails at load time, not silently. Handle schema drift with: (1) pre-load metadata check against INFORMATION_SCHEMA.COLUMNS, (2) dynamic ALTER TABLE ... ADD COLUMN for additive changes, (3) a staging table approach that always accepts raw data before applying schema checks.

Detect new columns before load
-- Check if source column exists in target
IF NOT EXISTS (
    SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = 'Orders'
    AND COLUMN_NAME = 'NewSourceColumn'
)
BEGIN
    ALTER TABLE dbo.Orders
    ADD NewSourceColumn NVARCHAR(255) NULL
END
What the interviewer is testing

Whether you have a proactive schema drift strategy — not “it fails and we fix it.” The pre-load metadata check pattern shows you’ve thought through the ETL design before encountering the problem in production.

Q16
Advanced
Data Agent integration with Fabric Warehouse — what does GA mean for SQL teams?
Quick Answer

Fabric Data Agents reached GA at FabCon March 2026. The Warehouse now has a direct “Create Data Agent” entry point in its ribbon — connecting a Warehouse to a Data Agent takes one click rather than manual configuration. Data Agents act as virtual analysts: they accept natural language questions and generate SQL against the Warehouse to answer them.

For SQL teams, the practical implication is that business users can query Warehouse data via conversational interfaces without learning T-SQL, while the underlying security model (RLS, column permissions) still governs what data the agent can surface. The agent executes T-SQL on behalf of the user and respects their permissions — it’s not a bypass.

What the interviewer is testing

Whether you know Data Agents are GA (not preview) and understand they respect existing SQL security. Candidates who see agents as a security concern without knowing the permission inheritance reveal a misunderstanding of how they work.

Module C · Q17–Q24

Performance Tuning in Fabric Data Warehouse interview questions

Result Set Caching, Data Clustering (the new ingestion-time layout feature), incremental statistics, CTAS patterns, and monitoring slow queries via DMVs.

Caching & Layout
Q17
Intermediate
How does Result Set Caching work and what are its limits?
Quick Answer

Result Set Caching (Preview, 2025) stores the output of a query in the Warehouse. Identical subsequent queries against unchanged underlying data return instantly from cache — consuming zero compute. Effective for repetitive dashboard queries that hit the same aggregations. Cache is invalidated when the underlying Delta table version changes.

Limits: the cache key is the exact query text — even whitespace differences or different parameter bindings create cache misses. For parameterized queries, this means each unique parameter value creates a separate cache entry. Cache is per-workspace and has a storage limit; the engine evicts entries based on LRU if limits are reached. Enable via session or workspace settings.

What the interviewer is testing

Whether you know the exact query text requirement. This is where many candidates say “it caches the result” without knowing that “SELECT * FROM Sales WHERE Year = 2025” and “select * from Sales where year = 2025” are different cache keys.

Q18
AdvancedNov 2025
What is Data Clustering and how does it differ from Z-Order?
Quick Answer

Data Clustering (Preview, November 2025) organizes rows with similar column values together during ingestion, enabling aggressive Parquet file pruning when those columns appear in query predicates. Unlike Z-Order (which requires a separate OPTIMIZE ZORDER BY run on existing data), Data Clustering is applied at write time — no separate maintenance step.

DimensionData ClusteringZ-Order
When appliedAt ingestion time (write)Post-ingestion via OPTIMIZE run
MaintenanceSelf-maintaining per writeRequires periodic manual OPTIMIZE
AvailabilityFabric Warehouse (Preview Nov 2025)Spark/Lakehouse (longstanding)
Column limitTypically 1–4 clustering columnsMultiple Z-Order columns (diminishing returns beyond 3)
Best forNew Warehouse tables with known filter columnsExisting Spark-written Delta tables
Choosing clustering columns

Pick columns that appear in WHERE clause filters and JOIN conditions for your most important queries. Date/period columns (Year, Month, Quarter) and high-cardinality ID columns used as join keys are typical candidates. Avoid columns with very low cardinality (boolean, status with 3 values) — clustering gains are minimal when few distinct values exist.

What the interviewer is testing

Whether you know this feature exists (Nov 2025) and can articulate the ingestion-time vs post-ingestion distinction from Z-Order. It’s the clearest signal that a candidate is tracking the platform in 2026.

Q19
IntermediateJan 2026
What is incremental statistics refresh and when does it apply?
Quick Answer

Incremental Statistics Refresh (January 2026) re-samples only the newly added rows since the last statistics update, rather than re-scanning the full column. Applies to tables that experience mostly INSERT or APPEND operations. Reduces the time statistics maintenance contributes to SELECT query execution on long, append-heavy tables.

For a Sales fact table that grows by 1M rows per day but has 10B existing rows: full statistics re-sample requires scanning all 10B rows. Incremental refresh scans only the new 1M rows. The practical result: statistics stay accurate without the full-scan cost, and auto-stats updates no longer noticeably delay queries on large append-only tables.

What the interviewer is testing

Whether you know this feature exists and can articulate when it applies (INSERT/APPEND-heavy tables only). It doesn’t help tables with frequent UPDATEs or DELETEs — those still require full re-sample.

Q20
Intermediate
How does V-Order affect the Fabric Warehouse SQL engine?
Quick Answer

V-Order is primarily a VertiPaq (Power BI Direct Lake) optimization, but it benefits the Warehouse SQL engine indirectly. V-Ordered Parquet files have better dictionary encoding and column statistics that improve IO efficiency during large table scans in SQL. The improvement is secondary to its Direct Lake benefit — don’t enable V-Order solely for SQL performance if write speed on Gold tables matters.

For tables read by both Direct Lake Power BI and T-SQL queries (a common Gold layer pattern), enabling V-Order on those tables provides a double benefit. For tables used only by SQL queries (staging, raw), the write overhead of V-Order is wasted cost without meaningful read payoff.

What the interviewer is testing

Whether you understand V-Order’s primary vs secondary benefit context. Candidates who say “enable V-Order everywhere” or “V-Order is only for Power BI” are both partially wrong. The correct answer is table-purpose-specific.

Query Optimization
Q21
Advanced
How do you optimize joins in Fabric Warehouse without distribution keys?
Quick Answer

The Polaris engine handles data placement — no manual HASH/ROUND_ROBIN hints needed. Optimize joins by: (1) building a proper star schema (dimension tables small, fact tables large), (2) ensuring statistics are current on join columns so the optimizer chooses the right join algorithm, (3) avoiding joins on VARCHAR(MAX) columns, (4) using Data Clustering on the join key column of large fact tables.

For large fact-to-large-fact joins: these are inherently expensive in any engine. Consider pre-aggregating in a staging table or materializing the join result via CTAS if it’s executed repeatedly. The absence of manual distribution key control means you can’t force co-location of two large tables — if this is a genuine bottleneck, materializing the join is the right architectural decision rather than trying to hint the engine.

What the interviewer is testing

Whether you can reason about join optimization without the Synapse distribution key mental model. Candidates who say “I’d use HASH distribution to co-locate” are applying Synapse thinking to Fabric — a clear migration anti-pattern signal.

Q22
Intermediate
CTAS (Create Table As Select) — when is it the right pattern?
Quick Answer

CTAS physically materializes a complex aggregation or join result into a new table. Use it when: (1) a complex query runs repeatedly and Result Set Caching doesn’t apply (parameter variation), (2) an aggregation is queried by multiple downstream consumers, (3) a view would be queried enough times that on-the-fly computation is expensive. CTAS is the Fabric equivalent of a Synapse Materialized View when needed.

CTAS pattern — materialized aggregation
-- Materialize daily sales aggregation for reporting
CREATE TABLE reporting.DailySalesSummary
AS
SELECT
    CAST(OrderDate AS DATE) AS SaleDate,
    Region,
    SUM(Amount)  AS TotalRevenue,
    COUNT(1)      AS OrderCount
FROM dbo.Orders
GROUP BY CAST(OrderDate AS DATE), Region

-- Truncate + reload on each pipeline run
-- or MERGE for incremental updates using MERGE GA
What the interviewer is testing

Whether you know CTAS as the explicit materialization pattern and can connect it to the MERGE GA feature for incremental updates. Candidates who combine CTAS (for initial build) with MERGE (for daily incremental) are showing production-ready thinking.

Q23
Intermediate
How do you monitor slow queries in Fabric Warehouse?
Quick Answer

Three surfaces: (1) Query Activity hub in the Fabric portal — shows active and recent queries with durations, (2) DMVs: sys.dm_exec_requests for active queries, sys.dm_pdw_exec_requests for history, (3) Capacity Metrics App for understanding CU consumption per query. For query plan analysis, use DAX Studio or connect SSMS via the SQL connection string and examine estimated execution plans.

DMV — find long-running queries
SELECT
    request_id,
    status,
    submit_time,
    DATEDIFF(SECOND, submit_time, GETDATE()) AS elapsed_sec,
    command
FROM sys.dm_pdw_exec_requests
WHERE status = 'Running'
   OR DATEDIFF(MINUTE, submit_time, GETDATE()) < 60
ORDER BY elapsed_sec DESC
What the interviewer is testing

Whether you know the three monitoring surfaces and can navigate between them for different diagnostic needs. Portal Query Activity for quick triage; DMVs for scripted automation; Capacity Metrics for cost attribution. Candidates who only know one surface have surface-level monitoring experience.

Q24
Advanced
Scaling compute for the Warehouse — how is it different from Synapse DWU scaling?
Quick Answer

In Synapse, you scaled manually by changing DWU (1 minute to 5 minutes per operation). In Fabric, the Warehouse draws from the shared F-SKU capacity pool automatically — no manual scaling action. For query concurrency issues, the resolution is either (1) upgrading the F-SKU, (2) enabling Autoscale Billing for burst workloads, or (3) scheduling heavy batch queries during off-peak hours.

The smoothing mechanism: F-SKU capacity is averaged over 24 hours. A heavy ETL job that runs for 2 hours doesn’t immediately throttle interactive queries — it borrows from the overnight idle window. But sustained concurrent load during business hours with no idle slack can cause throttling. Monitor in the Capacity Metrics App and compare peak vs trough utilization to size correctly.

What the interviewer is testing

Whether you know there’s no DWU knob to turn — the resolution paths are SKU upgrade, Autoscale Billing, or workload scheduling. Candidates who say “scale up the DWU” are applying Synapse thinking.

Module D · Q25–Q30

Security & Governance

T-SQL security layer (RLS, CLS, Dynamic Masking), the Spark bypass gap, Purview auditing, and item-level sharing.

Q25
Intermediate
Row-Level Security in Fabric Warehouse — how it’s implemented and where it applies.
Quick Answer

Standard T-SQL RLS via Security Policy and an inline predicate function. Define the function to filter rows based on the executing user’s identity, attach it as a Security Policy on the table, and every query automatically applies the filter. This works for T-SQL queries via the SQL endpoint — it does NOT protect data accessed via Spark directly on the underlying Delta files.

RLS pattern — region-based row filter
-- Step 1: Create the predicate function
CREATE FUNCTION security.fn_RegionFilter(@Region VARCHAR(50))
RETURNS TABLE WITH SCHEMABINDING AS
RETURN SELECT 1 AS fn_result
WHERE USER_NAME() = 'Admin'
   OR @Region = USER_NAME()

-- Step 2: Apply the security policy
CREATE SECURITY POLICY SalesRegionPolicy
ADD FILTER PREDICATE security.fn_RegionFilter(Region)
ON dbo.SalesFact
The Spark bypass gap — critical to know

SQL-layer RLS applies only to queries routed through the SQL analytics endpoint. A Spark notebook or a Python client with direct OneLake storage permissions reading the Delta files directly bypasses the SQL RLS policy entirely. For data that requires row-level protection regardless of access path, use OneLake Data Access Roles — these apply at the storage layer and protect against all access vectors.

What the interviewer is testing

Whether you know the Spark bypass gap without being prompted. This is the security risk that separates architects who understand the full Fabric stack from those who only know SQL security patterns.

Q26
Intermediate
Column-Level Security and Dynamic Data Masking — when do you use each?
Quick Answer

Column-Level Security (CLS): DENY SELECT on specific columns to specific roles — unauthorized users get an error if they reference the column. Dynamic Data Masking (DDM): the column is readable but the value is obfuscated (partial mask, email mask, random number) — unauthorized users see the mask, not an error. CLS for strict access control; DDM for softer obfuscation where acknowledging the column exists is acceptable.

A common production combination: apply DDM on a phone number column so analysts see a partial value, and apply CLS on the full SSN column so analysts can’t reference it at all. The distinction matters for GDPR compliance conversations — DDM doesn’t satisfy “right to erasure” because the data still exists; CLS doesn’t either. Both are access controls, not data removal mechanisms.

What the interviewer is testing

Whether you can articulate the behavioral difference (error vs masked value) and match each to the right compliance scenario. Candidates who describe them as interchangeable haven’t implemented both in production.

Q27
Intermediate
Item-level sharing vs workspace roles for the Warehouse — when do you use each?
Quick Answer

Workspace roles (Admin/Member/Contributor/Viewer) grant broad access to all items in the workspace. Item-level sharing via the Warehouse “Share” button grants access to a specific Warehouse only — the user can connect via SQL without being in the workspace at all. Item sharing is the right model for external analysts or BI tools that need SQL access to one Warehouse but nothing else in the workspace.

Combine both: workspace Contributor for the data engineering team (they need to write pipelines, create items), item-level sharing for the BI team (they need SQL read on the reporting Warehouse only, not the staging Warehouse). Never add BI users as workspace Members just for Warehouse access — that grants more permissions than needed.

What the interviewer is testing

Whether you apply least-privilege thinking specifically to Fabric’s dual permission model. The ability to explain when item sharing beats workspace roles — and vice versa — signals you’ve designed production access models, not just studied documentation.

Q28
Advanced
Auditing query activity in Fabric Warehouse — what does Purview integration provide?
Quick Answer

Fabric integrates with Microsoft Purview for audit logging. Purview captures who ran which SQL query, from which application, at what time, and what data was accessed. This satisfies audit requirements for regulated industries where you need to prove who accessed sensitive data and when.

Within the Warehouse itself, the Query Activity hub provides recent query history but has a limited retention window — not suitable for compliance audit purposes. For long-term audit retention, configure Purview audit log export to Azure Monitor or Event Hub and set retention policies according to your compliance requirements (SOX, HIPAA, GDPR).

What the interviewer is testing

Whether you distinguish between operational monitoring (Query Activity hub, short retention) and compliance auditing (Purview, long-term retention). Candidates who say “use the Query Activity hub for auditing” don’t understand audit trail retention requirements.

Q29
Intermediate
Warehouse vs. Lakehouse security — how do they differ and which is stronger?
Quick Answer

Warehouse security uses T-SQL GRANT/DENY/RLS/DDM at the SQL engine layer. Lakehouse security uses OneLake Data Access Roles at the storage layer plus SQL security on the SQL Endpoint. OneLake-layer security is stronger for multi-engine scenarios because it protects against all access paths (SQL, Spark, external tools), not just T-SQL queries.

For sensitive PII data that might be accessed by multiple engines, the right architecture is OneLake Data Access Roles at the storage layer (protecting all paths) with SQL-layer RLS for fine-grained row filtering in T-SQL contexts. Relying on T-SQL security alone in a mixed-engine workspace is a governance gap.

What the interviewer is testing

Whether you can compare the protection scope of each security layer. “T-SQL RLS is application-layer security; OneLake Security is storage-layer security” is the precise framing that earns the point.

Q30
Foundation
Backup and restore for Fabric Warehouse — what is and isn’t available.
Quick Answer

No native backup/restore command like SQL Server’s BACKUP DATABASE. Data durability comes from OneLake’s ZRS/GRS storage redundancy. Point-in-time recovery is handled by Delta Time Travel (within the retention window). For schema-only backup: script out DDL via SSMS or Information Schema queries. For data recovery from accidental deletes: Time Travel.

This is a significant mindset shift from traditional SQL Server DBAs who rely on backup files. In Fabric, the “backup” is the storage platform’s geo-redundancy (OneLake GRS) plus Delta’s version history. A formal DR plan should include: DDL in Git, data in GRS-protected OneLake, and Delta retention window calibrated to your recovery point objective.

What the interviewer is testing

Whether you’ve moved past the BACKUP DATABASE mental model. Candidates who say “I’d schedule backup jobs” reveal they haven’t understood Fabric’s storage architecture — durability is built into the platform, not a DBA procedure.

Module E · Q31–Q36

Cross-Querying Strategy

Three-part naming for Lakehouse-Warehouse joins, cross-workspace via Shortcuts, cross-tenant via delegated Shortcuts (March 2026), performance considerations, and abstraction patterns.

Q31
Intermediate
How do you query a Lakehouse table from a Warehouse T-SQL query?
Quick Answer

Three-part naming: [LakehouseName].[schema].[table] within a T-SQL query on the Warehouse. Both items must be in the same workspace and the executing user must have read access to both. No ETL required — the SQL engine reads the Lakehouse’s Delta Parquet files directly.

Cross-item query — Warehouse joins Lakehouse
-- Sales data is in the Warehouse; Logs are in the Lakehouse
-- No ETL needed — single T-SQL query across both
SELECT
    s.OrderID,
    s.Amount,
    l.EventType,
    l.EventTimestamp
FROM dbo.SalesFact s
JOIN [SalesLakehouse].[dbo].[WebLogs] l
    ON s.SessionID = l.SessionID
WHERE s.OrderDate >= '2026-01-01'
What the interviewer is testing

Whether you know the exact three-part naming syntax and the same-workspace requirement. Candidates who describe this as requiring an ETL step or a Linked Service (Synapse concept) are applying the wrong platform mental model.

Q32
Advanced
Cross-workspace and cross-tenant queries — how do Shortcuts enable these?
Quick Answer

Cross-workspace: create a Shortcut in the local Warehouse pointing to the remote Warehouse or Lakehouse item. The Shortcut appears as a local table and can be queried via three-part naming. Cross-tenant (delegated Shortcuts, coming soon as of March 2026): OneLake now supports creating Shortcuts to other tenants via delegated Entra identity — enabling cross-tenant data access without data duplication.

The read-only limitation applies to Shortcut-backed cross-workspace queries: you can’t UPDATE or DELETE data in a remote workspace via a Shortcut. Data modification must happen in the source workspace. If bidirectional write access is needed across workspaces, you need a pipeline, not a Shortcut.

What the interviewer is testing

Whether you know the read-only constraint on cross-workspace queries via Shortcuts and the emerging cross-tenant delegated Shortcut capability from FabCon 2026. Both signal current platform knowledge beyond the basic cross-query pattern.

Q33
Intermediate
What are the limitations of cross-item T-SQL queries?
Quick Answer

Key limitations: (1) Remote sources via three-part naming are read-only — no DML against a Lakehouse table from a Warehouse query, (2) both items should be in the same Fabric region (cross-region adds latency and potential cost), (3) the executing user needs permissions on both the local Warehouse AND the remote Lakehouse/Warehouse SQL Endpoint, (4) statistics on the remote table may be incomplete, affecting query plan quality.

What the interviewer is testing

Whether you name all four limitations without prompting. Most candidates stop at “read-only.” The statistics caveat (remote table stats may be stale or absent, leading to poor join plans) is the production gotcha that reveals real cross-query experience.

Q34
Intermediate
Why create a View to abstract cross-item table references?
Quick Answer

A View encapsulates the three-part name inside the Warehouse: CREATE VIEW v_WebLogs AS SELECT * FROM [SalesLakehouse].[dbo].[WebLogs]. BI tools, dbt, and report developers query v_WebLogs without knowing the source is a Lakehouse. If the source moves to a different Lakehouse or the schema changes, you update the View — not every downstream query.

This abstraction also simplifies permission management: grant access to the View rather than requiring users to have permissions on both the Warehouse and the remote Lakehouse. The View owner’s permissions are used to resolve the remote reference (depends on schema authorization configuration).

What the interviewer is testing

Whether you frame Views as a maintenance and permission simplification tool — not just syntax sugar. The “update the View, not every query” argument is the architectural justification.

Q35
Advanced
Performance of cross-item queries — what should you watch for?
Quick Answer

Performance is generally high because no data movement occurs — the SQL engine reads Parquet files from OneLake directly. But: (1) joining two massive tables from different items may trigger a cross-item shuffle with significant overhead, (2) filter pushdown to remote Lakehouse tables depends on statistics availability, (3) the V-Order status of the remote table affects read efficiency.

Mitigation: ensure statistics are current on remote table join columns, enable V-Order on Lakehouse Gold tables that are frequently joined from the Warehouse, and consider materializing heavily-used cross-item joins into a Warehouse table via CTAS if query latency is unacceptable after tuning.

What the interviewer is testing

Whether you understand that “no data movement” doesn’t mean “no performance cost.” The cross-item shuffle overhead and statistics dependency are real production concerns — candidates who say “it’s fast because data stays in OneLake” are missing the full picture.

Q36
Intermediate
Scenario: join SQL Warehouse data with Spark Lakehouse data without ETL. Walk through the approach.
Quick Answer

Both items in the same workspace. Write a T-SQL query in the Warehouse using three-part naming to reference the Lakehouse SQL Endpoint. Ensure the user has SQL read access to the Lakehouse endpoint. Optionally, create a View in the Warehouse to abstract the Lakehouse reference. No ETL pipeline, no data movement, no duplication.

Security check before running: confirm RLS/CLS on the Lakehouse SQL Endpoint is appropriate for this cross-item access. The user executing the Warehouse query needs read permissions at the Lakehouse SQL Endpoint level — workspace Viewer isn’t always sufficient if item-level permissions are configured more granularly.

What the interviewer is testing

Whether your answer includes the security permission verification step — not just the query syntax. Missing this in a scenario answer signals you describe the happy path without the production considerations.

Module F · Q37–Q40

Migration Scenarios

Migration from Synapse Dedicated Pools and SQL Server, using the 2026 Migration Assistants, zero-downtime strategies via Mirroring, and data consistency validation.

Q37
ArchitectMar 2026
Migrating from Synapse Dedicated Pools — the current tooling and DDL rewrite requirements.
Quick Answer

Export data to Parquet in ADLS, load via COPY INTO. Rewrite DDL to remove Synapse-specific syntax. Use the Fabric Migration Assistant for SQL databases (FabCon March 2026) which imports schemas via DACPACs, identifies T-SQL compatibility issues with AI assistance, and guides assessment and data copy workflows — significantly reducing manual rewrite effort.

Common DDL rewrites required:

  • Remove DISTRIBUTION = HASH(col), ROUND_ROBIN, REPLICATE — Polaris manages placement automatically
  • Remove CLUSTERED COLUMNSTORE INDEX — Parquet handles columnar storage
  • Remove or refactor CREATE STATISTICS hints — Fabric auto-stats handles this
  • Update IDENTITY usage — now in Preview, syntax is compatible
  • Replace TOP WITH TIES patterns and certain windowing syntax that Fabric doesn’t support
Migration Assistant for SQL databases (FabCon March 2026)

The new Fabric Migration Assistant for SQL databases imports schemas through DACPACs, identifies and resolves compatibility issues with AI assistance, and guides teams through assessment and data copy workflows. This complements the earlier ADF/Synapse pipeline migration assistant. Run the assessment before committing to a migration timeline — it surfaces blockers you won’t find by reading documentation.

What the interviewer is testing

Whether you know the FabCon March 2026 Migration Assistant and can list the specific DDL removals. Candidates who say “export to Parquet and re-create tables” without naming the assistant or the specific syntax gaps reveal they haven’t done a real migration.

Q38
Architect
Zero-downtime migration using Mirroring — how does this reduce cutover risk?
Quick Answer

For Azure SQL DB, SQL Server, or Snowflake sources: enable Mirroring to replicate the source database into Fabric OneLake in near-real-time via CDC. Once the mirror is caught up, point BI tools and downstream consumers to the Fabric Warehouse SQL endpoint. Cutover is a connection string change, not a batch migration window.

The pattern: (1) Enable Mirroring — source and Fabric run in parallel, (2) migrate and test reporting against Fabric (BI tools connect to Fabric, validate against source), (3) at cutover, redirect application writes to the source (Mirroring handles the Fabric sync), (4) when ready to decommission the source, repoint application writes to Fabric SQL directly. The mirror eliminates the “big bang” migration window where the source is unavailable.

Mirrored tables are read-only in Fabric

Data mirrored from Azure SQL DB lands in Fabric as read-only Delta tables. To use them as writable Warehouse tables post-migration, the application must eventually repoint its write traffic to the Fabric SQL endpoint directly. Mirroring is a migration helper, not a permanent architecture for write traffic.

What the interviewer is testing

Whether you understand Mirroring’s read-only constraint during the parallel-run phase and the eventual write-traffic repointing step. Candidates who describe Mirroring as a permanent architecture for bidirectional sync are misunderstanding the tool.

Q39
Intermediate
Data consistency validation — how do you prove migration correctness?
Quick Answer

Three checks in order: (1) Row counts per table — source vs Fabric, (2) Aggregation checksums — SUM(Amount), COUNT(OrderID) by key dimensions, (3) Sample record comparison — specific known records validated field by field. Automate in a Fabric Notebook or Data Pipeline that runs both source and target queries and compares results.

Validation query pattern
-- Run in both source and Fabric; compare results
SELECT
    COUNT(1)             AS RowCount,
    SUM(Amount)          AS TotalRevenue,
    MIN(OrderDate)       AS EarliestOrder,
    MAX(OrderDate)       AS LatestOrder,
    CHECKSUM_AGG(CHECKSUM(OrderID, Amount))
                         AS DataChecksum
FROM dbo.Orders
What the interviewer is testing

Whether you have a structured validation sequence — row count, then aggregation, then sample — and whether you know to automate it. Candidates who say “we’d eyeball some records” haven’t migrated a production system.

Q40
Architect
Capacity planning for a Synapse to Fabric migration — how do you size the F-SKU?
Quick Answer

No direct DWU-to-F-SKU mapping formula exists. Run a pilot: migrate representative workloads (not just the simplest ones) to a trial F-SKU, run the Capacity Metrics App for 2–4 weeks of typical query patterns, and observe peak CU utilization and smoothing behavior. Size the production F-SKU with 20–30% headroom above observed peak.

The workload mix matters more than the raw data size. A Synapse deployment at 1,000 DWUs handling mostly light concurrent queries may run comfortably on F32. The same DWU count handling complex multi-table joins with 50 concurrent users may need F64 or higher in Fabric. DWUs and CUs measure fundamentally different resource models — don’t use conversion tables, use the pilot.

The Autoscale Billing option

For workloads with highly variable query volume (low during most of the day, heavy during business hours), Autoscale Billing lets the Warehouse burst beyond the base F-SKU without manual scaling — billed per-second for actual burst compute. This can eliminate over-provisioning for peak capacity at the cost of variable billing. Run the pilot against both a fixed F-SKU and with Autoscale enabled to compare total cost.

What the interviewer is testing

Whether you know there’s no reliable formula and recommend a pilot — and whether you mention Autoscale Billing as the variable-load option. Candidates who give a specific DWU-to-CU conversion ratio are making up numbers that don’t exist.

Next: Data Factory & ETL

Warehouse done. Pipelines, Dataflows, and orchestration are next.

Start ETL Questions →

Scroll to Top