One project. One way to build, load and test.
Write familiar Python, SQL and Power BI files. Weaver deploys native Fabric items and connects the work around them.
When you use a Catalogue, deployment and run history are recorded in an ordinary Fabric Warehouse.
Write code you already know
T-SQL
Write an ordinary SQL query. Add a comment that tells Weaver the table name, key and columns.
/*
Table ID: Parcel.Event
Description: Parcel events.
Lineage: Example input.
Primary key: parcel_id
Schema:
parcel_id: varchar(20)
*/
select 'P-1001' as parcel_id;Python
Write a Python class with a read() method. Describe the table in the file and return a Spark DataFrame.
"""Table ID: Parcel.Event
Description: Parcel events.
Lineage: Example input.
Schema:
parcel_id: string
"""
from weaver import Table
class Parcel__Event(Table):
def read(self):
return self.spark.createDataFrame(
[("P-1001",)], "parcel_id string"
)TMDL
Add a standard TMDL annotation to apply modelling rules. Weaver leaves your original Power BI files unchanged.
model Model
annotation 'Weaver.AutoHideForeignKeys' = trueEach file tells Weaver what it represents and what rules to follow.
File paths and naming conventions supply the rest of the structure.
The Catalogue brings everything together
Weaver's Catalogue is an ordinary Fabric Warehouse. It records what's deployed, how the parts connect and what happened when they ran—without a separate service to operate.
Semantic Models · Reports
and installed bindings
installed estate
Catalogue
Fabric Warehouse
Installed definitions
- Definitions
- Signatures
- Dependencies
- Metadata & bindings
Operational evidence
- Bookmarks
- Logs
- Statistics
- Test results
results
The same recorded state is used by Build, Load, Test and Health.
The diagram shows how Weaver keeps track of a Fabric project. Standalone Power BI deployment can also work without a Catalogue.
From source files to running work
- Run work in the right order
- Coordinate related work across Fabric items.
- Process only changes
- Track where each table left off, including new, changed and removed rows.
- Run independent work together
- Run steps at the same time when they do not depend on each other.
- Recover from failures
- Record failures without losing completed work.
- Check data and calculations
- Check the data, not just the execution.
- Apply modelling standards
- Apply standards across Semantic Models.
Weaver creates the loading code, runs supported work in the right order and applies your testing and modelling rules.
Python imports and supported T-SQL references establish dependencies; Spark SQL needs explicit declarations. Incremental policies use bookmarks and authored change/delete logic, not automatic detection of every source change.
One set of commands
- BUILDInstall the definitions.
- LOADProcess data and refresh models.
- TESTVerify the results.
- HEALTHSee what needs attention.
MIRROR — Develop against existing data without copying everything.
WIPE — Destructively reset selected physical destinations.
Reports are Build-only, with no independent Load or Test. Mirror borrows Lakehouse/Warehouse data. Wipe includes unmanaged contents within selected Lakehouses/Warehouses and normally the resolved Catalogue; named Semantic Model resets retain it. Reports cannot be wiped.
Use the same code in development and production
Development
Warehouse/CuratedCurated_DevProduction
Warehouse/CuratedCuratedSame files. Different workspaces.
A workspace configuration file sets where your Fabric items go. Weaver records those destinations when you build. Changing the file alone does not move deployed items or change external connections.
Run Weaver from desktop Python, inside a Fabric Notebook, or both.
What you write and what Weaver deploys
Your project files describe the Fabric items you want, using Python, SQL and Power BI formats.
Weaver keeps track of what has been deployed, what has run and what needs attention.