Fabric Forge Open Fabric Forge
Course Catalog

Learn Microsoft Fabric, hands-on.

Fabric Forge is a practical Microsoft Fabric learning community. Short lectures teach the concept, then you build it yourself in Fabric with guided exercises. This page is everything inside: every course, exercise, and weekly call.

10hands-on courses
62h 31mof video training
89guided exercises
33weekly call recordings

The courses

Each topic is a short lecture video plus exercises you do yourself in Microsoft Fabric, most with a step-by-step video walkthrough.

Microsoft Fabric Fundamentals

Open in Skool ↗
15 lessons 0 hands-on exercises 2h 17m of video

This is the perfect course to start learning the core concepts of Microsoft Fabric. The course introduces the Fabric platform, core structures like OneLake, workspaces and datastores in Fabric. You will gain a clear, foundational understanding of what Fabric is, why it exists, and how it supports modern data and analytics solutions.

What Is Microsoft Fabric1 lecture · 16m
LectureWhat Is Microsoft Fabric15:51Open in Skool ↗
Fabric Architecture1 lecture · 10m
LectureFabric Architecture10:15Open in Skool ↗
Capacity Licensing1 lecture · 8m
LectureCapacity Licensing8:12Open in Skool ↗
OneLake1 lecture · 9m
LectureOneLake8:56Open in Skool ↗

OneLake as the shared storage layer of Fabric: how every engine reads the same Delta Parquet data, plus shortcuts and the OneLake File Explorer.

onelakedelta parquetshortcutsfile explorer
Lakehouse1 lecture · 13m
LectureLakehouse12:53Open in Skool ↗

The Lakehouse as a data store: files and tables side by side, how shortcuts avoid data duplication, and when a Lakehouse is the right choice.

lakehousefiles and tablesshortcuts
Warehouse1 lecture · 10m
LectureWarehouse10:18Open in Skool ↗

The Warehouse for people who think in T-SQL: how it stores Delta Parquet under the hood, the ways to ingest and read data, and when to choose it.

warehouset-sqlingestionvisual query editor
Eventhouse1 lecture · 15m
LectureEventhouse14:44Open in Skool ↗

The Eventhouse for real-time data: KQL databases, strengths and weaknesses, core concepts, and how OneLake availability exposes the data to the rest of Fabric.

eventhousekqlreal-timestreaming
Databases1 lecture · 8m
LectureDatabases8:02Open in Skool ↗

Transactional databases inside Fabric: SQL database versus Cosmos DB, when each fits, and how their data mirrors automatically to OneLake.

sql databasecosmos dbtransactionalmirroring
Introduction to Data Engineering1 lecture · 6m
LectureIntroduction to Data Engineering5:55Open in Skool ↗
Introduction to Warehousing1 lecture · 6m
LectureIntroduction to Warehousing5:40Open in Skool ↗
Introduction to Analytics1 lecture · 7m
LectureIntroduction to Analytics7:10Open in Skool ↗
Introduction to Real-Time Analytics1 lecture · 6m
LectureIntroduction to Real-Time Analytics5:59Open in Skool ↗
Copilots in Fabric1 lecture · 9m
LectureCopilots in Fabric9:21Open in Skool ↗
Data Agents in Fabric1 lecture · 6m
LectureData Agents in Fabric5:58Open in Skool ↗
MCP Servers1 lecture · 8m
LectureMCP Servers7:58Open in Skool ↗
Getting Started with Fabric
LectureGetting Started with FabricOpen in Skool ↗

A short checklist before you start: a Microsoft work or school account, Fabric enabled in your tenant, and a Fabric capacity or an active trial.

prerequisitestenant settingscapacitytrial

Pipelines

Open in Skool ↗
12 lessons 13 hands-on exercises 3h 38m of video

Perfect start for learning the pipeline item in Microsoft Fabric. Teaches the core concepts of the pipelines like copy data, parameters, variables, basics of expressions and dynamic content and so much more.

Introduction to Pipelines1 lecture · 1 exercise · 20m
LectureIntroduction to Pipelines17:46Open in Skool ↗

What a pipeline is and when to use one: the canvas, activities, dependencies and failure paths, plus a first look at connections, dynamic content, scheduling and the monitoring hub.

pipelineorchestrationactivitiesdependenciesmonitoring
Exercise 1Create a simple pipeline with dependencies2:00 walkthroughOpen in Skool ↗

Build a three-activity pipeline with Wait activities and configure dependencies to see execution order and failure behavior in action.

dependenciesexecution orderwait activitycontrol flow
Copy Data Activity1 lecture · 2 exercises · 22m
LectureCopy Data Activity14:18Open in Skool ↗

How the Copy Data activity works: binary copies between Lakehouse folders, loading a CSV into a delta table, and configuring delimiters, headers and column mapping.

copy datacsvdelta tablebinary copycolumn mapping
Exercise 1Simple binary copy between Lakehouse folders2:52 walkthroughOpen in Skool ↗

Copy a single file as binary data between two Lakehouse folders, renaming it on the way.

binary copylakehousecopy data
Exercise 2Ingest csv into Lakehouse delta table4:54 walkthroughOpen in Skool ↗

Ingest a headerless CSV with a non-default delimiter into a dbo delta table with meaningful column names.

csvdelimiterdelta tablecolumn mappingingestion
Connections1 lecture · 1 exercise · 14m
LectureConnections9:03Open in Skool ↗

Where connections live in Fabric, how to create one against Azure Blob Storage, and how the same connection gets reused across pipelines.

connectionsazure blob storageauthenticationreuse
Exercise 1Binary copy from an Azure Blob Storage to a Lakehouse4:56 walkthroughOpen in Skool ↗

Create a Blob Storage connection with a storage account key and land a file into a Lakehouse as binary data, bronze-layer style.

azure blob storageaccount keybinary copybronze layer
Parameters and Variables1 lecture · 2 exercises · 26m
LectureParameters and Variables17:15Open in Skool ↗

Parameters vs variables: creating them, default values, system variables, and using dynamic content to drive a copy activity at runtime.

parametersvariablessystem variablesdynamic content
Exercise 1Parameter driven copy to delta table5:09 walkthroughOpen in Skool ↗

Use pipeline parameters to control at runtime which CSV file gets copied and which delta table it lands in.

parameterscsvdelta tablereusability
Exercise 2Capture system variables with set variable activities3:51 walkthroughOpen in Skool ↗

Capture run metadata like pipeline name and run id from system variables into pipeline variables with Set Variable activities.

system variablesset variablerun idloggingauditing
Expressions and Dynamic Content1 lecture · 1 exercise · 21m
LectureExpressions and Dynamic Content15:19Open in Skool ↗

The expression language behind dynamic content: building expressions, checking expected result types in the pipeline JSON, and stamping file names with timestamps.

expressionsdynamic contenttimestamppipeline json
Exercise 1Expression driven copy from json to csv5:13 walkthroughOpen in Skool ↗

Build an expression that names a JSON-to-CSV copy at runtime using the pipeline name and a timestamp.

expressionsjsoncsvtimestampfile naming
If Condition Activity1 lecture · 1 exercise · 12m
LectureIf Condition Activity8:54Open in Skool ↗

Branching a pipeline with the If Condition activity: Boolean expressions, the functions that produce them, and the expression-level if function as an alternative.

if conditionbooleanbranchingconditional logic
Exercise 1Conditional execution using if condition activity3:28 walkthroughOpen in Skool ↗

Drive an If Condition with a Boolean parameter (think full load vs incremental load) and pass an integer parameter into activity settings with dynamic content.

if conditionboolean parameterfull loadincremental load
Scheduling and Monitoring1 lecture · 1 exercise · 14m
LectureScheduling and Monitoring8:43Open in Skool ↗

Scheduling pipelines, including multiple schedules per pipeline, and using the monitoring hub to filter runs and find errors.

schedulingmonitoring hubtroubleshootingtriggers
Exercise 1Scheduled wildcard copy to lakehouse table with trigger_time table naming5:46 walkthroughOpen in Skool ↗

Schedule a pipeline to run every 2 minutes, ingest two JSON files via a wildcard into one delta table, and stamp the table name with the trigger time.

schedulingwildcardtrigger timejsondelta table
ForEach1 lecture · 1 exercise · 21m
LectureForEach15:46Open in Skool ↗

Looping with ForEach: iterating over an array of files, reading the current item in expressions, and choosing between sequential and batch execution.

foreachloopsarraysbatchsequential
Exercise 1Load multiple csv files with different delimiters using ForEach4:50 walkthroughOpen in Skool ↗

Iterate a parameterized config array with ForEach to load two CSVs with different delimiters into separate delta tables.

foreachconfiguration arraycsvdelimiterdelta table
Lookup Activity1 lecture · 1 exercise · 19m
LectureLookup Activity13:08Open in Skool ↗

Reading runtime configuration with the Lookup activity from files and tables, when to use first row only, and feeding lookup results into a ForEach loop.

lookupconfigurationfirst row onlyforeach
Exercise 1Lookup driven copy using config table5:28 walkthroughOpen in Skool ↗

Read file-move instructions from a Lakehouse config table with Lookup, then loop over the rows with ForEach to copy and rename files.

lookupconfig tableforeachfile routing
Get Metadata Activity1 lecture · 1 exercise · 17m
LectureGet Metadata Activity11:26Open in Skool ↗

Inspecting files and tables with Get Metadata: last modified, exists and child items, and using the results to drive the activities that follow.

get metadatachild itemsfile discoveryexists
Exercise 1Metadata-driven file routing5:25 walkthroughOpen in Skool ↗

Discover files in a landing folder with Get Metadata, inspect their properties, and route them based on file size.

get metadatalanding zonefile routingfile size
Metadata-Driven Pipelines1 lecture · 1 exercise · 24m
LectureMetadata-Driven Pipelines12:33Open in Skool ↗

Putting the course together: one configuration-driven pipeline pattern that processes many datasets from a single JSON config.

metadata drivenconfigurationjsoningestion pattern
Exercise 1Metadata-driven pipeline using JSON configuration11:55 walkthroughOpen in Skool ↗

Build a config-driven pipeline that reads a JSON config and processes multiple datasets: staging to raw for archiving, then into bronze schema tables.

metadata drivenjson configstagingrawbronze
Pipeline Best Practices1 lecture · 8m
LecturePipeline Best Practices7:53Open in Skool ↗

Field-tested pipeline habits: keeping pipelines simple, designing for safe reruns, retries and timeouts, and handling concurrent runs.

best practicesretriestimeoutsrerunsconcurrency

Dataflow Gen2

Open in Skool ↗
5 lessons 5 hands-on exercises 2h 6m of video

A practical beginner course for learning Fabric Dataflow Gen2 in Microsoft Fabric. Covers the core concepts such as connections, copy patterns, parameters, variables, expressions and dynamic content, scheduling, and monitoring. Also explains the key differences between Dataflow Gen1 and Dataflow Gen2.

Dataflow Gen2 Introduction1 lecture · 1 exercise · 29m
LectureDataflow Gen2 Introduction24:00Open in Skool ↗

What Dataflow Gen2 is and where it fits in Fabric Data Factory, how it differs from Gen1, and a live walkthrough of building your first dataflow.

dataflow gen2data factorypower querygen1 vs gen2
Exercise 1Your first Dataflow Gen2 with Excel5:10 walkthroughOpen in Skool ↗

Build your first Dataflow Gen2 from an Excel workbook: review data types, drop unneeded columns, transform a text column, and publish.

excelpower querytransformationspublish
Connections1 lecture · 1 exercise · 25m
LectureConnections19:54Open in Skool ↗

What connections are in Fabric and how to manage them: choosing the right identity pattern, privacy levels, and when a gateway is needed.

connectionsgatewayauthenticationprivacy levels
Exercise 1Create and Use a Managed Connection5:01 walkthroughOpen in Skool ↗

Create a Lakehouse connection as a managed asset, then use it in a Dataflow Gen2 that reads data from the Lakehouse.

connectionslakehousedataflow gen2
Transforming and Landing Data1 lecture · 1 exercise · 26m
LectureTransforming and Landing Data22:52Open in Skool ↗

When to reach for Dataflow Gen2 versus the Copy Data activity, plus Fast Copy, staging, destination choices, and append versus replace write behavior.

fast copystagingdestinationsappend vs replace
Exercise 1Load an existing Dataflow Gen2 query into a Lakehouse table2:43 walkthroughOpen in Skool ↗

Configure an existing Dataflow Gen2 query to land its output in a Lakehouse delta table.

data destinationlakehousedelta table
Parameters for controlled loading1 lecture · 1 exercise · 24m
LectureParameters for controlled loading17:52Open in Skool ↗

Use Dataflow Gen2 parameters to control large loads: date-range parameters, filtering the sales table, and passing monthly ranges in from a pipeline.

parametersincremental loadingpipeline integrationdate range
Exercise 1Create a Parameterized Sales Territory Test Load5:59 walkthroughOpen in Skool ↗

Build a parameterized dataflow that loads one sales territory above a chosen sales amount, with the values controlled from a Fabric pipeline.

parameterspipelinefilteringtest load
Schedule and Monitor1 lecture · 1 exercise · 23m
LectureSchedule and Monitor16:50Open in Skool ↗

Scheduling and monitoring dataflows: when the dataflow owns the schedule versus the pipeline, refresh history, Monitoring Hub, and a full capstone build.

schedulingmonitoring hubrefreshtroubleshooting
Exercise 1Automate a Daily Load5:46 walkthroughOpen in Skool ↗

Automate a daily load: two dataflows for sales and returns data, combined in one pipeline, scheduled every morning and verified in Monitoring Hub.

schedulingpipelinemonitoring hubautomation

Lakehouse

Open in Skool ↗
3 lessons 2 hands-on exercises 1h 20m of video

Perfect start for learning more about Lakehouse as a data store and Delta tables as data format and how to maintain and optimize them. Also, course focuses on core features of Lakehouse like SQL analytics endpoint, shortcuts, shortcut transformations and Materialize Lake Views.

Introduction to Lakehouse1 lecture · 1 exercise · 26m
LectureIntroduction to Lakehouse22:15Open in Skool ↗

What a Lakehouse is, what kinds of data it can store, and a first look at shortcuts, shortcut transformations, and materialized lake views.

lakehousedata storeshortcutsmaterialized lake views
Exercise 1Mini Sales Analytics4:09 walkthroughOpen in Skool ↗

Create a schema-enabled Lakehouse, load customer and order data into tables, and analyze them through the SQL analytics endpoint.

lakehouseschemassql endpointcsv
Delta Tables1 lecture · 1 exercise · 33m
LectureDelta Tables29:31Open in Skool ↗

How Delta tables work under the hood: the Delta Parquet format, what happens on inserts and deletes, table maintenance, optimization, and partitioning.

delta tablesparquetoptimizepartitioning
Exercise 1Delta Table Maintenance3:53 walkthroughOpen in Skool ↗

Create a Delta table from many small batches, inspect its file structure, compact it with Optimize, read the transaction history, and clean up with Vacuum.

delta tablesoptimizevacuumtransaction log
SQL Analytics Endpoint1 lecture · 20m
LectureSQL Analytics Endpoint20:01Open in Skool ↗

What the SQL analytics endpoint is and where it comes from, what its read-only T-SQL surface can and cannot do, the two gotchas (metadata sync and security), and when you need a Warehouse instead.

sql analytics endpointt-sqlread-onlymetadata syncwarehouse
Shortcutscoming soon
Shortcut Transformationscoming soon
Shortcut AI Transformationscoming soon
Materialized Lake Views (MLVs)coming soon
OneLake Securitycoming soon

PySpark Notebooks

Open in Skool ↗
9 lessons 16 hands-on exercises 6h 52m of video

Perfect starting point for learning PySpark notebooks in Microsoft Fabric. Covers core concepts such as working with Spark sessions, DataFrames, reading and writing data, basic transformations and actions, using notebooks effectively, and understanding execution flow.

Working with Notebooks1 lecture · 1 exercise · 24m
LectureWorking with Notebooks19:30Open in Skool ↗

How notebooks work in Fabric: structure, supported languages, magic commands, compute sessions, and running your first code.

notebooksmagic commandsspark sessionlanguages
Exercise 1Running your first notebook4:01 walkthroughOpen in Skool ↗

Create your first notebook and run code that prints Hello Fabric.

notebooksfirst codegetting started
Reading and Writing Data1 lecture · 2 exercises · 37m
LectureReading and Writing Data29:08Open in Skool ↗

Working with Lakehouse data in notebooks: what DataFrames are, reading files and tables into them, inspecting data, and writing it back in different formats.

dataframeslakehousereadwrite
Exercise 1Reading and Writing Data with Default Lakehouse3:03 walkthroughOpen in Skool ↗

Read a CSV file into a DataFrame and write it out as a Delta table using a default Lakehouse.

csvdelta tabledefault lakehouse
Exercise 2Reading and Writing Data without Default Lakehouse4:27 walkthroughOpen in Skool ↗

The same read-and-write flow with no Lakehouse attached to the notebook, keeping the solution robust for deployment.

no default lakehousedelta tablereusability
Data Exploration1 lecture · 1 exercise · 18m
LectureData Exploration11:56Open in Skool ↗

Explore datasets in PySpark: schemas and data types, previewing rows, summary statistics, ordering, and counting.

schemadata typessummary statisticsexploration
Exercise 1Simple Data Exploration6:28 walkthroughOpen in Skool ↗

Preview and describe a dataset, and investigate its schema and data types to understand what you are working with.

explorationschemadescribepreview
Transformations1 lecture · 2 exercises · 24m
LectureTransformations11:17Open in Skool ↗

The core DataFrame transformations: selecting columns, filtering rows, adding derived columns, and renaming for clarity.

selectfilterwithcolumnrename
Exercise 1Creating Custom Columns5:14 walkthroughOpen in Skool ↗

Build a DataFrame with renamed and derived columns, including a calculated tax column, and filter out one product category.

derived columnsfilteringcalculations
Exercise 2Scaled Column Operations7:13 walkthroughOpen in Skool ↗

Apply column operations at scale and write the result as a Delta table with derived tax and total amount columns.

column operationsdelta tablederived columns
Python Concepts for PySpark1 lecture · 2 exercises · 27m
LecturePython Concepts for PySpark14:04Open in Skool ↗

The Python essentials you need in PySpark work: variables, naming conventions, if/else logic, and for loops for processing multiple inputs.

pythonvariablesif elsefor loops
Exercise 1Leveraging Variables and If Statements with PySpark5:55 walkthroughOpen in Skool ↗

Use variables and an if/else statement to conditionally filter a DataFrame based on configuration values.

variablesif elseconditional filtering
Exercise 2Using For Loops to Write Data6:43 walkthroughOpen in Skool ↗

Iterate a list with a for loop, create a filtered DataFrame per value, and write each as a Delta table only when it has data.

for loopsiterationdelta tables
Libraries and Core Functions1 lecture · 2 exercises · 1h 8m
LectureLibraries and Core Functions27:14Open in Skool ↗

Libraries and core functions in Fabric notebooks: what libraries are available, NotebookUtils, and the Spark SQL types and functions you will use daily.

librariesnotebookutilsspark sql functions
Exercise 1Create and Populate a Lakehouse Using Code24:16 walkthroughOpen in Skool ↗

Build a reusable load pattern: define a schema, add metadata columns, create a Lakehouse with NotebookUtils, and persist the data as a Delta table.

notebookutilsschemametadata columnsload pattern
Exercise 2Model Harmonized Sales Data16:46 walkthroughOpen in Skool ↗

Transform raw sales orders into a harmonized table for monthly gross sales analytics using core PySpark SQL functions.

harmonizationspark sql functionsgross sales
Join Strategies1 lecture · 3 exercises · 1h 43m
LectureJoin Strategies18:55Open in Skool ↗

Why joins matter in analytics, how join behavior works in PySpark DataFrames, and the common join types with their use cases.

joinsjoin typesdataframes
Exercise 1US Luxury Line Sales Volume Analysis46:51 walkthroughOpen in Skool ↗

Model daily sales volumes of Luxury Line products to US corporate customers: load from Excel, join the needed tables, and land a harmonized result.

joinssales analyticsexcel
Exercise 2Australian Standard Line Sales Analysis26:10 walkthroughOpen in Skool ↗

Model customer, product, and sales tables to analyze daily gross sales of Standard Line products in Australia.

joinsmodelinggross sales
Exercise 3Reusable Join Workflow11:05 walkthroughOpen in Skool ↗

Make the join workflow reusable with variables so any business unit can run the same notebook with its own inputs.

reusabilityvariablesparameterization
Conditional Transformations1 lecture · 2 exercises · 1h 7m
LectureConditional Transformations22:57Open in Skool ↗

Conditional transformations in PySpark: building conditional columns with when, combining column conditions, and the patterns you will reuse constantly.

when functionconditional columnspatterns
Exercise 1Shipping Delay Compliance26:46 walkthroughOpen in Skool ↗

Implement a late-shipment policy in code: flag orders shipped over 60 days late and apply free shipping and a discount to the affected rows.

conditional logicwhen functionbusiness rules
Exercise 2Correcting Sales Campaign Pricing17:14 walkthroughOpen in Skool ↗

Apply marketing campaign discounts conditionally to compute correct net sales for the year.

conditional transformationsdiscountsnet sales
Data Quality Patterns1 lecture · 1 exercise · 45m
LectureData Quality Patterns45:14Open in Skool ↗

Data quality patterns in PySpark: finding duplicates, nulls, and invalid values, validating datasets, and the methods that keep tables clean.

data qualityduplicatesnullsvalidation
Exercise 1Prepare Sales Data the Controller Can TrustOpen in Skool ↗
13 lessons 17 hands-on exercises 6h 24m of video

A complete Power BI learning path that starts with the fundamentals and progresses into advanced topics such as data modeling, DAX, performance optimization, security, and real-world reporting challenges. You’ll learn the full Power BI workflow, including loading and transforming data with Power Query, building visuals, creating relationships and measures, publishing reports, and much more. Start from zero and build your first interactive Power BI dashboard step by step.

Power BI Setup Overview1 lecture · 1 exercise · 17m
LecturePower BI Setup Overview14:25Open in Skool ↗

Set up Power BI Desktop right from the start, understand how Desktop, the Service, and Fabric fit together, and see the full path from data source to published app.

power bi desktoppower bi servicesetupworkflow
Exercise 1Goal2:42 walkthroughOpen in Skool ↗

Load Excel data, relate the sales table to a calendar table, build a simple table visual, and publish the report to a workspace.

excelrelationshipspublishingfirst report
First Report (Desktop Basics)1 lecture · 1 exercise · 14m
LectureFirst Report (Desktop Basics)12:41Open in Skool ↗

Build your very first report step by step: load a file, create a few basic visuals, learn the Desktop layout, and save your first .pbix.

first reportvisualspbixdesktop basics
Exercise 1Extend a Starter Report0:56 walkthroughOpen in Skool ↗

Extend a starter report with a new Products page: a sales-by-product table and supporting visuals.

report pagestable visualproducts
Power Query: Getting & Cleaning Data1 lecture · 1 exercise · 25m
LecturePower Query: Getting & Cleaning Data22:15Open in Skool ↗

Clean data with Power Query before it ever reaches your report: remove unused columns, filter bad rows, and fix data types so you can trust the numbers.

power querydata cleaningdata types
Exercise 1Goal2:54 walkthroughOpen in Skool ↗

Repoint a report to your own Excel files, then clean and reload the Sales and Products tables with Power Query.

power querydata source settingsexcel
Building Your First Data Model1 lecture · 1 exercise · 20m
LectureBuilding Your First Data Model16:16Open in Skool ↗

Connect tables into a proper data model with relationships and write your first DAX measures, including Total Sales.

data modelrelationshipsdax measures
Exercise 1Goal3:46 walkthroughOpen in Skool ↗

Put the calendar dimension to work: relate it to sales and see how year, quarter, month, and day granularity change your averages.

calendar tablerelationshipsgranularity
Visuals, Filters, Slicers & Publishing1 lecture · 1 exercise · 32m
LectureVisuals, Filters, Slicers & Publishing28:09Open in Skool ↗

Turn the model into a report people enjoy using: clear page design, slicers and filters, and publishing to the Power BI Service.

report designslicersfilterspublishing
Exercise 1Build a Customer & Country Overview Page3:39 walkthroughOpen in Skool ↗

Design an executive-friendly Customer and Country overview page with cards, charts, slicers, and filters.

report pageslicerscardscustomer analysis
DAX1 lecture · 1 exercise · 27m
LectureDAX20:08Open in Skool ↗

Measures versus calculated columns: how each is computed and stored, how filter context changes results, and where preparation logic belongs instead.

daxmeasurescalculated columnsfilter context
Exercise 1Basic DAX with Product Analysis7:12 walkthroughOpen in Skool ↗

Write your first DAX: a simple measure, a calculated column, and a CALCULATE measure, then watch filter context change the results in a visual.

daxcalculatemeasuresfilter context
Time Intelligence1 lecture · 1 exercise · 25m
LectureTime Intelligence23:02Open in Skool ↗

Why time intelligence breaks and how to fix it: one governed Date table, the single relationship rule, Mark as date table, and solid MTD, YTD, and YoY measures.

time intelligencedate tableytdyoymtd
Exercise 11) Prep settings2:10 walkthroughOpen in Skool ↗

Build a correct calendar setup once, then create reliable MTD, YTD, and YoY measures and validate them against known numbers.

date tabletime intelligenceytdyoy
BI-Directional Relationship1 lecture · 1 exercise · 21m
LectureBI-Directional Relationship18:12Open in Skool ↗

See how bi-directional filtering can silently change your totals: a clean star schema, a second filter path, and the rules for fixing ambiguous models.

bi-directional relationshipsstar schemafilter paths
Exercise 1Goal2:57 walkthroughOpen in Skool ↗

Break a model on purpose with bi-directional relationships, spot when the KPI changes meaning, and repair it back to a clean star schema.

bi-directionalstar schemakpi
Many-to-Many (*-*) Relationship1 lecture · 2 exercises · 38m
LectureMany-to-Many (*-*) Relationship33:33Open in Skool ↗

How many-to-many relationships make totals inflate or collapse, the warning signs to recognize, and the professional bridge-table fix.

many-to-manybridge tabletotalsambiguity
Exercise 1Fix the Many-to-Many Trap by Using Promotion ID (Star Schema Repair)1:03 walkthroughOpen in Skool ↗

Replace an incorrect many-to-many relationship with a proper one-to-many on Promotion ID so promotion totals reconcile.

many-to-manypromotionstar schema
Exercise 2Step-by-step guide: Build a date-aware Promotion Bridge in Power Query (no DAX)3:44 walkthroughOpen in Skool ↗

Build a date-aware bridge table in Power Query that maps promotions to products only inside the promotion window, no DAX needed.

bridge tablepower querydate ranges
Row-Level-Security (RLS)1 lecture · 1 exercise · 27m
LectureRow-Level-Security (RLS)24:11Open in Skool ↗

Build row-level security the enterprise way: an access table maps each user to a country, which filters the dimensions and the fact table, then test it properly.

row-level securityrlsrolestesting
Exercise 1Dataset2:48 walkthroughOpen in Skool ↗

Implement a multi-role RLS scenario and verify with provided validation numbers how role membership combines what a user sees.

rlsrolesmulti-rolevalidation
Object-Level-Security (OLS + CLS)1 lecture · 1 exercise · 29m
LectureObject-Level-Security (OLS + CLS)27:22Open in Skool ↗

Object-level security versus row-level security: hiding columns and tables with Tabular Editor 2, what breaks when you do, and the best practices.

object-level securityolstabular editor
Exercise 1Objective2:04 walkthroughOpen in Skool ↗

Hide a customer email column with OLS in Tabular Editor 2 and prove in Desktop that the column disappears for the restricted role.

olstabular editorhidden columnsroles
Direct Lake Overview1 lecture · 2 exercises · 46m
LectureDirect Lake Overview28:07Open in Skool ↗

How Direct Lake really works: the three storage modes and their engines, why a Direct Lake refresh copies nothing, and what framing does instead.

direct lakestorage modesframingimport
Exercise 2.1Frame a 50-Million-Row Model11:30 walkthroughOpen in Skool ↗

Prove the Direct Lake claims yourself: frame a 50-million-row model in seconds and read the DMVs to see it holds almost no data until queried.

direct lakeframingdmvrefresh
Exercise 2.2Measure Import Against Direct Lake6:52 walkthroughOpen in Skool ↗

Deploy the matching Import model and measure the two differences that matter: refresh time versus frame time, and data stored at rest.

import modedirect lakecomparisonrefresh time
Import vs Direct Lake1 lecture · 3 exercises · 1h 2m
LectureImport vs Direct Lake31:59Open in Skool ↗

How to choose between Import and Direct Lake like an architect: where the data lives, a SWOT for each mode, and seven criteria scored on a decision scorecard.

importdirect lakestorage modedecisionswot
Exercise 2.3Score the Decision for Three Workloads9:19 walkthroughOpen in Skool ↗

Score Import versus Direct Lake for three real workloads with measured evidence: guardrail headroom, working set vs the memory ceiling, fallback checks, and the licensing break-even.

import vs direct lakeguardrailsworking settabletraitslicensing
Exercise 2.4Break, Diagnose, and Repair a Direct Lake Model8:45 walkthroughOpen in Skool ↗

Reconstruct a broken overnight load on a Direct Lake model: fragment the table with small files, diagnose the cause from the receipts (numFiles, DESCRIBE HISTORY, column residency), and restore it with OPTIMIZE and a reframe.

direct lakesmall filesoptimizedescribe historyframingtroubleshooting
Exercise 2.5Catch a Silent DirectQuery Fallback11:40 walkthroughOpen in Skool ↗

Push a Delta table past the capacity file guardrail under a Direct Lake on SQL endpoint model, catch the silent DirectQuery fallback with query timings, file counts, and the DirectLakeOnly probe, then repair it with OPTIMIZE and a reframe.

direct lakedirectquery fallbacksql endpointcapacity guardrailsmall filesoptimizetabletraitsdirectlakeonly
Security and RLS on Direct Lakecoming soon
Migrating SSAS to Direct Lakecoming soon

Real-Time Intelligence

Open in Skool ↗
4 lessons 3 hands-on exercises 48m of video

Perfect starting point for learning Real-Time Intelligence in Microsoft Fabric. This course introduces the core concepts of Eventstreams, Eventhouse, and Real-time Dashboards. You'll learn the basics of how real-time data can be ingested, aggregated and monitored using KQL and Fabric’s real-time components. This course gives you a practical foundation through guided tutorials and hands-on exercises in addition to lectures.

Introduction to eventstreams1 lecture · 1 exercise · 16m
LectureIntroduction to eventstreams12:50Open in Skool ↗

The core components of an eventstream, which sources are currently supported, and how to discover streaming data through the Real-Time hub.

eventstreamssourcesreal-time hub
Exercise 1Creating your first eventstream2:40 walkthroughOpen in Skool ↗

Create your first eventstream, explore the supported sources, and connect a sample streaming data source to it.

eventstreamssample datastreaming
Eventstreams destinations1 lecture · 1 exercise · 13m
LectureEventstreams destinations8:29Open in Skool ↗

Where streaming data can land: the supported eventstream destinations, and creating and configuring an Eventhouse with KQL databases.

destinationseventhousekql database
Exercise 1Adding destinations to an eventstream4:11 walkthroughOpen in Skool ↗

Add destinations to your eventstream and route the sample stream into storage for analysis.

destinationseventhouserouting
Eventstream transformations1 lecture · 1 exercise · 7m
LectureEventstream transformations4:40Open in Skool ↗

The built-in eventstream transformations and how to reshape streaming data with SQL on the way to its destination.

transformationssqlstreaming
Exercise 1Exploring eventstream transformations2:39 walkthroughOpen in Skool ↗

Try the built-in eventstream transformations and use SQL to transform the incoming sample data.

transformationssqleventstreams
Real-time dashboards and basic KQL1 lecture · 12m
LectureReal-time dashboards and basic KQL12:12Open in Skool ↗

A first look at KQL syntax, querysets, and building Real-Time dashboards on streaming data.

kqlquerysetsreal-time dashboards
6 lessons 12 hands-on exercises 2h 5m of video

This course is a great place to start if you're getting started on all the topics related to CI/CD, especially in the context of Microsoft Fabric. We begin with the foundation of all CI/CD practices: version control. You’ll learn the core concepts and workflows that make collaborative, controlled development possible. From there, we build into Fabric-specific capabilities, including how to apply the Feature Branch workflow directly within Microsoft Fabric. You’ll also learn how to use variable libraries to manage environment-specific settings and how deployment pipelines enable you to promote changes smoothly across Development, Test, and Production environments. Throughout the course, you’ll gain a practical foundation through lectures, as well as guided tutorials and hands-on exercises.

Version Control Basics1 lecture · 2 exercises · 25m
LectureVersion Control Basics11:12Open in Skool ↗

Version control from the ground up: why it matters, how local Git and shared repositories like GitHub and Azure DevOps relate, and the core commands.

gitversion controlgithubazure devops
Exercise 1Working with Git Locally3:49 walkthroughOpen in Skool ↗

Work with Git locally: create a repository, commit changes, branch, and merge a feature branch into main.

gitbranchescommitsmerge
Exercise 2Using Git with Azure DevOps or GitHub10:20 walkthroughOpen in Skool ↗

Connect your local repository to Azure DevOps or GitHub, push changes, and complete a feature branch workflow against the remote.

remote repositorypushpull request
Feature Branch Workflow in Fabric1 lecture · 2 exercises · 34m
LectureFeature Branch Workflow in Fabric12:52Open in Skool ↗

How Fabric integrates with Git: linking a workspace to Azure DevOps or GitHub and applying a feature branch workflow inside Fabric.

git integrationfabric workspacefeature branch
Exercise 1Setting up Git Integration to a Fabric Workspace9:29 walkthroughOpen in Skool ↗

Connect a Fabric workspace with a small analytics solution to a Git repository and synchronize it with the main branch.

git integrationworkspacesync
Exercise 2Exploring feature branch workflow within Microsoft Fabric11:15 walkthroughOpen in Skool ↗

Run a complete feature branch workflow in Fabric: develop in a branch workspace and merge your changes back through a pull request.

feature branchpull requestworkspace
Deployment Pipelines in Fabric1 lecture · 1 exercise · 16m
LectureDeployment Pipelines in Fabric12:13Open in Skool ↗

Deployment pipelines in Fabric: configuring stages, promoting changes safely, and how item pairing, autobinding, and variable libraries fit in.

deployment pipelinesstagesautobindingvariable libraries
Exercise 1Building a Deployment Pipeline in Microsoft Fabric3:59 walkthroughOpen in Skool ↗

Build a deployment pipeline and promote a lakehouse, notebook, and pipeline through Dev, Test, and Prod stages.

deployment pipelinesdev test prodpromotion
Variable Libraries in Fabric1 lecture · 1 exercise · 11m
LectureVariable Libraries in Fabric11:09Open in Skool ↗
Exercise 1Creating a variable libraryOpen in Skool ↗

Create a Variable library, reference its variables from a Data pipeline, and promote both through a deployment pipeline so switching the active value set changes behavior per stage without editing the pipeline.

variable libraryvalue setsdeployment pipelinesconfiguration
Azure DevOps: Fabric Deployment Pipelines with SPN1 lecture · 3 exercises · 26m
LectureAzure DevOps: Fabric Deployment Pipelines with SPN4:40Open in Skool ↗

Automate Fabric deployment pipelines from Azure DevOps with a Service Principal: the prerequisites, and an updated flow that handles multi-workspace deployments and variable libraries.

service principalazure devopsautomationvariable libraries
Exercise 1.1Fabric Deployment Pipelines with SPN - Workspace Setup6:42 walkthroughOpen in Skool ↗

Set up the multi-environment workspace structure and the Fabric deployment pipeline that the Service Principal will drive.

workspace setupdeployment pipelineenvironments
Exercise 1.2Fabric Deployment Pipelines with SPN - Azure DevOps Setup6:15 walkthroughOpen in Skool ↗

Configure Azure DevOps to authenticate to Fabric with a Service Principal and prepare a pipeline that calls the Fabric REST API.

azure devopsservice principalrest api
Exercise 1.3Fabric Deployment Pipelines with SPN - Permissions & Deployment7:57 walkthroughOpen in Skool ↗

Grant the Service Principal the Fabric tenant, workspace, and pipeline permissions it needs, then execute an automated deployment end to end.

permissionstenant settingsdeployment
Deployments with fabric-cicd Library1 lecture · 3 exercises · 13m
LectureDeployments with fabric-cicd Library12:46Open in Skool ↗

Deploy Fabric items from source control with fabric-cicd, the open-source Python library for code-first CI/CD deployments across workspaces.

fabric-cicdpythondeploymentcicdautomation
Exercise 1.1First Deployment with fabric-cicdOpen in Skool ↗

Run your first fabric-cicd deployment from your local machine: set up the project layout, authenticate with the Azure CLI, and publish a Notebook and a Lakehouse into a Fabric workspace.

fabric-cicddeploymentazure clinotebooklakehousepython
Exercise 1.2Deploy to Dev and Test with parameter.ymlOpen in Skool ↗

Deploy the same repo into Dev and Test workspaces with fabric-cicd, using parameter.yml find-and-replace rules to swap the notebook's Lakehouse and workspace GUIDs per target environment.

fabric-cicdparameter.ymlmulti-environmentdeploymentfind and replacenotebooklakehouse
Exercise 1.3Orphan Cleanup & Item ScopingOpen in Skool ↗

Control exactly what a fabric-cicd deployment touches: narrow item_type_in_scope to leave item types untouched, then delete a notebook from the repo and run unpublish_all_orphan_items() to see the orphan removed from the Dev workspace, and why mixing the two carelessly is dangerous.

fabric-cicditem_type_in_scopeunpublish_all_orphan_itemsorphan cleanupdeployment scopedeleting itemsnotebooklakehouse

Data Agents

Open in Skool ↗
4 lessons 4 hands-on exercises 45m of video

This course is a great starting point for learning Data Agents in Microsoft Fabric. This cource introduces what Data Agents are, how they connect to organizational data, and how they support analysis and insights through conversational experiences. This course helps learners understand where agents fit within Fabric, how they can be configured, and how they can be used to assist users with data-related tasks in a safe and controlled way.

Data agent basics1 lecture · 1 exercise · 18m
LectureData agent basics14:20Open in Skool ↗

How a data agent works, the tenant prerequisites you need in place, and creating your first agent.

data agentsprerequisitessetup
Exercise 1Creating a Data Agent in Microsoft Fabric3:57 walkthroughOpen in Skool ↗

Create a Data Agent: prepare a Lakehouse with a sales table, then configure the agent to use it.

data agentslakehouseconfiguration
Data agent configuration1 lecture · 1 exercise · 14m
LectureData agent configuration9:47Open in Skool ↗

Configuring a data agent well: preparing the data, writing agent and data source instructions, and adding sample queries.

instructionssample queriesconfiguration
Exercise 1Configuring Instructions and Sample Queries for a Data Agent3:56 walkthroughOpen in Skool ↗

Add agent instructions, data source instructions, and sample queries so the agent interprets business terms correctly.

instructionssample queriesaccuracy
Sharing and using data agents1 lecture · 1 exercise · 10m
LectureSharing and using data agents7:15Open in Skool ↗

Publishing and versioning data agents, what to consider before sharing them, and the tools they can be integrated with.

publishingversioningsharingintegrations
Exercise 1Publishing, Editing, and Sharing a Data Agent3:00 walkthroughOpen in Skool ↗

Publish your Data Agent, manage its versions safely, and share it with the right people.

publishingversionssharing
Data agent as a MCP server1 lecture · 1 exercise · 3m
LectureData agent as a MCP server3:14Open in Skool ↗
Exercise 1Using Data Agent as a MCP server in VS CodeOpen in Skool ↗

Retrieve the MCP endpoint of a published Data Agent and connect VS Code to it, so you can query your data straight from the editor.

mcpvs codeendpointintegration

End-To-End

Open in Skool ↗
1 project 17 hands-on exercises 3h 25m of video

Learn Microsoft Fabric by building complete data projects, from source systems to Power BI reports. The course follows data through ingestion, transformation and modeling. You will build pipelines, organize data into lakehouse layers and create semantic models that support reporting. Each project connects these steps so you can see how the parts work together. The focus is on engineering patterns you can apply to your own work. Projects use specific business scenarios to make those patterns concrete.

Stock Market Backtesting17 exercises · 3h 25m
ProjectStock Market Backtesting3h 25m of videoOpen in Skool ↗

Build a complete Microsoft Fabric solution step by step, from a REST API to a Power BI report: config-driven ingestion, bronze, silver, and a gold star schema, a Direct Lake semantic model, and a one-page report, with secrets in Azure Key Vault and the workspace in Git.

end-to-end projectrest apimedallion architecturekey vaultstar schemadirect lakebacktesting
  1. Project OverviewOpen in Skool ↗
  2. Introduction to Project4:56Open in Skool ↗
  3. Explore the Data Source4:43Open in Skool ↗
  4. Setting up Azure Resources6:35Open in Skool ↗
  5. Creating the Fabric Workspace0:57Open in Skool ↗
  6. Testing Source Connectivity3:07Open in Skool ↗
  7. Connecting the Workspace to Git1:41Open in Skool ↗
  8. Creating the Ingestion Configuration2:52Open in Skool ↗
  9. Building the Bronze Ingestion23:31Open in Skool ↗
  10. Persisting the Bronze Layer11:53Open in Skool ↗
  11. Modeling Price Data in Silver14:09Open in Skool ↗
  12. Creating Security Enrichment Data2:46Open in Skool ↗
  13. Modeling Securities in Silver12:01Open in Skool ↗
  14. Build the Gold layer's prices27:55Open in Skool ↗
  15. Seed the Strategy Dimension10:45Open in Skool ↗
  16. Backtesting Moving Average10:24Open in Skool ↗
  17. Adding the rest of Gold tables19:22Open in Skool ↗
  18. The Semantic Model19:26Open in Skool ↗
  19. The Backtest Report28:04Open in Skool ↗

Weekly call recordings

Every week we host a live call with the instructors: real member questions, new feature roundups, and architecture worked through together. Every call is recorded, so you never miss one. Here is the library so far (33 calls, 32h 18m).

Aleksi's Members-only YouTube videos

Plus a growing set of deep-dive videos.

Start free. Learn Fabric hands-on.

Join Fabric Forge to learn Microsoft Fabric with practical courses, weekly live calls, and a community that helps you get unstuck.

Open Fabric Forge
skool.com/fabricforge