The cards run in nine chapters, from connecting a source to the audit trail. The first lane shows what your team does in the product. The second lane shows what the platform does on its own. The third lane shows what business users do and what your business gets out of it.
Business value categories
Revenue and decision speedReports that pull data from several systems are ready in days. The decisions that need them are not held up by a data project.
Optimized team composition and efficiencyYour existing BI team runs the platform. It needs SQL and data modeling skills and nothing more, so you do not have to hire a data engineer, a DevOps engineer or a data architect. The team spends its time on the data model, not on infrastructure.
Projects not runBuilding a data warehouse yourself is a one-to-three-year project. Here, connecting a new source, keeping history or upgrading the platform is not a project at all.
Infrastructure and licenses not boughtThere is no dedicated SQL pool, no cube server, no gateway machine, no caching database and no separate cleaned-up copy of the production data. You pay for compute only while a query or a job is running.
Losses that cannot happenA data breach, a fine from a regulator, numbers corrected after publication, a day without reports, a failed audit, or knowledge that leaves with a colleague.
Cash and predictabilityYou pay a subscription fee, and Microsoft bills the Azure usage directly. You can see the cost per day and per user.
Roles on the cards
Data WardenApproves tables and columns, manages the Origin's settings, creates the classifications of the Governance mask, and approves a Mart view that reads a masked column.
Vault Lifecycle ManagerInitializes, renames, rebuilds and reverts Vault tables, approves the Vault drafts, and manages triggers and failed jobs.
Vault ManagerQueues extractions, edits Delivery masks and proposes Vault drafts.
Data StewardOperates the AI gate and the Governance gate on a column, and fills the Governance mask's classifications.
Mart PublisherPublishes Mart Plans, changes a live Mart view directly and creates Mart databases.
Mart ManagerWrites Mart views with their notes and tags in a Mart Plan, and materializes or restores a view.
Platform AdministratorManages the platform's settings, license, agents and Query endpoints, and restarts the platform.
AuditorReads the recorded events and the access and permission matrices, with the Audit permission.
User AdministratorManages users, sessions, permissions and groups.
Chapter 1 · Connect
Your team
SchemaVortex
Your business
Chapter 1
Connect
Your data stays where it is.
Your team1.1 · Source connectionThe CRM's data sits only in its own SQL Server.
New Origin
Enter connection details
Save
SchemaVortex reads CrmSample in place. Nothing in the CRM changes.
SchemaVortex1.1c · Azure provisioningThe platform provisions and configures the Azure resources and their settings.
Your business1.1d · No IT ticketsAfter one role grant at setup, configuration needs no IT tickets.
Your team1.1a · ERP profileAn ERP has thousands of tables. A few dozen matter.
Discovery profile
Navision
The few dozen get readable names. The rest stay out of the way.
Your business1.1g · Acquisitions and new systemsWhen you acquire a company, its ERP is connected like your first source: a connection, a discovery, the approvals. Its numbers are in the group's reports within days, and the integration has no budget line of its own.
Your team1.1b · Bring Your Own DataThe price list is an Excel file. The web shop pushes its own rows.
Import file
Parse options
Columns
Import
They become tables like any other.
Your business1.1e · One authoritative copyExcel files no longer circulate by email in versions that contradict each other.
SchemaVortex1.1f · ConnectorsSQL Server, PostgreSQL, MySQL and MariaDB, SAP HANA, IBM i, Infor Data Lake and Synapse serverless SQL are read over their native protocols. Files are imported, and pushed data comes in through the Producer SDK.
Your team1.2 · Schema discoveryNobody has a list of the 54 tables in CrmSample.
Queue discovery
Queue job
All 54 tables are listed with their columns and keys, sales.Customer, hr.Employee and finance.Invoice among them.
SchemaVortex1.2a · Self-hosted agentThe legacy item master, ITMMST, sits on an AS/400 the cloud cannot reach.
Automatic
The agent reads ITMMST from inside and sends the rows out. Nothing is opened on the firewall.
Your business1.2b · Source inventoryThe list of every table, column and key that a warehouse project spends its first months compiling is there on day one, kept current by the platform. Those months are not on the invoice.
Your team1.3 · Integration view neededThe report needs open invoices per customer, and no source table holds that.
New virtual view
Write the SQL
Create
The query is a Source table now.
Your business1.3a · No supplier dependencyThere is nothing to order from the source system's supplier, so your team works independently.
Your team1.4 · Virtual connectionThe notification log has no key to the customer.
Foreign keys
Virtual connection
Add
The graph shows the relationship and AI Chat proposes the join.
Your team1.5 · Row filterThe CRM holds customers from several countries. Only the Hungarian customers' rows may be extracted.
Row filter
Enter the filter
Save
The other rows are never extracted. The rule holds for every load.
Your business1.5a · Governance before dataGovernance rules can be written and enforced before anyone needs the data.
Your team1.2c · Data quality overviewSome source tables have no key, and some are related to nothing. Those cause trouble later.
Origin overview
The Origin overview counts them: three tables have no primary key, and twelve have no relationship to any other table.
Chapter 2
Approve
Nothing moves until someone says yes.
Your team2.1 · Table approvalNot every table belongs in the lakehouse.
Table
Approved
Save
One table is Forbidden and never leaves the CRM. The other 53 are approved.
SchemaVortex2.1a · Auto-approval whitelistA new table appears in the ERP every week.
Automatic
The table is approved on discovery, by the rule the Data Warden set.
Your business2.1b · Control and securityTables that match the Data Warden's rule are approved without a manual step. Every other table still waits for a decision.
Your team2.2 · Column approvalhr.Employee is fine to use, except NationalId and BankAccountIban.
NationalId
Forbidden
BankAccountIban
Forbidden
Save
Those two columns never leave HR.
Your business2.2b · Blocked at the sourceA Forbidden column is never read from the source. There is nothing to mask later and nothing that can leak.
Your team2.2a · Column samplingWhat is in hr.Employee?
Sampling
Counts, ranges and top values for every allowed column. NationalId is never read.
Chapter 3
Into the Vault
A load never overwrites.
Your team3.1 · Vault initializationWhen a customer's credit limit is corrected in the CRM, last quarter's report changes with it.
Configuration
Strategy
Delete detection
Columns
Initialize
sales.Customer is in the Vault, ready for its first load. From now on the older values are kept.
SchemaVortex3.1d · Six strategiesFive industry-standard warehousing strategies are implemented end to end. They cover deduplication, history and retention, and most of them support point-in-time revert.
Your business3.1e · Days, not yearsA governed data lakehouse in days, not years. Building one in-house is a one-to-three-year project.
Your team3.1b · Computed columnsFullName is put together in every view, each time a little differently.
Computed columns
Add
Enter the expression
Save
It is defined once, and every view of the table has the same FullName.
Your business3.1f · One definition for every reportBusiness logic defined once in the Vault gives every report the same value.
Your team3.1c · Rename in placeITMMST means nothing to anyone outside the AS/400 team.
Rename
Type the name
Confirm
The table is item_master now. Every view that reads it was listed first.
SchemaVortex3.1g · Automatic view provisioningThe platform drops and re-creates the affected views.
Your team3.2 · First extractionCrmSample.customer is set up and still empty.
Extract
Queue
All the rows land in the Vault, or only the ones the filter allows.
Your business3.3 · Self-service BICan I open it in the tool I already use?
One query
The same table, in Excel, Power BI or any SQL client.
SchemaVortex3.2a · Column cleanupThe ERP pads every name with spaces and writes 1753-01-01 where there is no date.
Automatic
The platform trims the spaces and turns the placeholders into NULL on every load.
Your team3.4 · Scheduled extractionThe data has to be up to date every morning.
New trigger
Save
Assign CrmSample
Save
The trigger runs the load every night from now on.
Your business3.4a · Any scheduleA trigger is a time window and the weekdays it runs on, set up in the product for each source. One trigger for the night, another for midday, as many as the business needs, and the reports are as recent as the schedule says. Nobody runs a load by hand.
SchemaVortex3.5 · Incremental extractionA full copy of the 500,000-row delivery log takes all night.
Automatic
The run reads only the new rows and takes minutes.
Your business3.5a · Cheaper, lighter loadsAn incremental load reads only the rows that changed since the last one. The source system is barely touched, the agent runs for minutes instead of hours, and compute and network are billed for those minutes. That is why a table can be refreshed several times a day without a bigger source server.
SchemaVortex3.6 · Version historyA customer's address changed. Which city was it in March?
Automatic
One query on history.CrmSample.customer_address returns the March row.
Your business3.6a · Point-in-time queryThe report must show March.
One query
The addresses come back as they were that day.
Your business3.6d · History, out of the boxHistory needs no project of its own. It is there from the first load, for as long as you choose to keep it.
A customer deleted in the source system stays in last year's numbers, so last year's total does not move. No corrected figure in front of the board or the auditor.
Your team3.6c · RetentionHistory on CrmSample should stop at two years.
Retention
Enter 24 months
Save
Older history is removed automatically.
SchemaVortex3.6b · Deleted rows retainedA customer was deleted in the CRM.
Automatic
The row stays readable in deleted.CrmSample.customer.
SchemaVortex3.7 · Breaking schema changeSomeone changed CreditLimit in the CRM from a whole number to a decimal. Last time that broke the reports without warning.
Automatic
No new load lands until someone decides. The reports keep serving the data they already had.
Your team3.8 · Schema evolutionThe decimal CreditLimit has to go in without breaking the reports built on the old one.
Edit
Modify schema
Columns
Cleanup
Settings
Save
CreditLimitBv2 sits beside CreditLimit. Old reports keep working. New ones read the decimal.
SchemaVortex3.8d · Column-stable viewsColumns match by name across schema versions, and a column a version lacks reads NULL. A view keeps returning rows across a change.
Your team3.8a · New source columnThe CRM added LoyaltyPoints.
Edit
Modify schema
Columns
Cleanup
Settings
Save
Old rows show it empty. New rows have the value.
Your team3.8c · Zero-downtime rebuildA storage problem has left the stored state of customer in doubt, and the reports cannot stop for a day.
Rebuild
Type the name
Rebuild Vault
Every retained extraction is read again and the table is rebuilt beside the live one. Readers are switched to it in one step.
Your team3.9 · Four eyes on the VaultA Vault Manager wants to change hr.Employee, and someone senior should look first.
Save as draft
Approve and apply
The change is applied under the approver's name.
SchemaVortex3.9a · Draft revalidationIf the table's columns change while a draft waits, the draft is reopened, and it has to be saved again before anyone can approve it.
Your team3.10 · Disaster recoveryRansomware hit the CRM overnight, and the nightly load pulled the damage into the Vault.
Pick the time
Review
Type the name
Revert
The 53 tables return to the state before the attack. The Vault holds the last clean copy of the CRM.
Your business3.10a · Business continuityYour CRM is down, while the data lakehouse and your reports keep running.
Chapter 4
It runs without you
The platform runs on its own and tells you when something needs a decision.
Your team4.1 · Job restartLast night's integration pipeline failed due to a long infrastructure outage.
Restart
Restart runs it again. The job finishes.
SchemaVortex4.1a · Detect and alertThe platform detects the failed job and alerts the Vault Lifecycle Managers by email.
Your team4.1b · Execution timesIs the nightly window filling up?
Execution times
The chart shows minutes per day for the last month, by job type or by Origin. A window that is filling up is visible weeks ahead.
SchemaVortex4.2 · IssuesWhat needs a decision today?
Automatic
One list: a view that fails to deploy, a schema change on finance.Invoice waiting for a decision, a missing driver.
SchemaVortex4.2a · Live updatesEverything on screen updates in place as jobs run and as tables, views and settings change. The state of the connection is shown too.
SchemaVortex4.3 · Automatic updatesUpgrades used to mean a weekend and a maintenance window.
Automatic
The update runs without a maintenance window.
Your business4.3a · No upgrade projectAn upgrade needs no project, no weekend and nobody on call.
SchemaVortex4.4 · Automatic optimizationsLeft alone, storage and queries get slower over time.
Automatic
The platform optimizes storage and queries automatically, every minute and every hour.
Your business4.4a · No tuning billOptimizations cost money, and so does finding out which ones pay off. Here they run automatically, so there is no tuning project to pay for.
SchemaVortex4.5 · Daily checkSomeone allowed public access on the Vault's storage account, by hand, in the portal.
Automatic
The daily check turns it off again, together with every other setting the platform owns.
Your business4.5a · No platform teamThe platform provisions, secures and tunes its own Azure resources. Your existing BI team runs it with SQL and data modeling skills, and nobody has to be hired for the infrastructure.
If someone changes a setting by hand in the portal, it is put back the next day. An exposure lasts a day, not until the next quarterly review.
Chapter 5
Masks
Who reads what is decided as each query runs.
Your team5.1 · Governance maskSalary in hr.Employee must not be visible to everyone.
Salary
Governance gate · Configure
Save
From now on, everyone outside the Data Stewards and Data Wardens reads Salary as empty.
SchemaVortex5.1a · Real-time provisioningThe platform applies changes to permissions, Mart views and materializations as soon as they are made.
Your business5.2 · Real-time securityThe report was already open.
F5
Salary is empty now, with no copy of the data.
Masks work on the live table itself. There is no separate cleaned-up copy of production to build, store and keep in sync, so there is a whole environment you do not pay for.
Your team5.3 · ClassificationAnna in Payroll needs the salaries.
Members
Anna
Save
Anna reads the salaries. Everyone else outside the governance roles still reads them as empty.
Your team5.4 · Classification groupsYou cannot set a rule per person for four hundred columns.
Classification
Save
Add the group
One classification covers every column that needs the same readers. A whole team is cleared for it at once.
Your business5.4a · Access rules in the productWho may read which column is set in the product, next to the data, and every change to it is recorded.
Your team5.5 · Hide from AIEmployee names are personal data. AI working on the warehouse must not read FirstName.
FirstName
Hide from AI
Save
Every AI session reads FirstName as empty, whoever runs it. People keep reading it as before.
Your business5.5a · AI within the rulesThe business can use AI on its warehouse, and the columns AI must not read stay empty in every AI session.
Your team5.6 · Personal dataCustomer email addresses are personal data. Dana in Marketing sends the campaigns and needs them. Nobody else needs them.
Email
Governance gate · Configure
Add a classification
Save
Members · Dana
Save
Dana sees the addresses. Everyone else outside the governance roles, the BI team included, reads them as empty.
Your team5.7 · Delivery maskThe loyalty program launches next quarter. Its points are already loading, and nobody outside the data owners should see them before then.
LoyaltyPoints
Delivery gate · Configure
Save
LoyaltyPoints lands in the Vault with its history. Everyone outside the data owners reads it as empty until the gate is removed.
Chapter 6
Reports
One number, one definition, in every report.
Your team6.1 · Curated Mart viewSales wants one clean customer table with its orders and revenue on it.
Write the SQL
Save
core.customer_360, one table Sales can open in any tool.
Your business6.1a · Centralized business logicEvery tool and every team uses one definition of a customer.
A Mart view is ordinary SQL, so the BI team builds it with the tools it already has.
SchemaVortex6.1b · Compile-time validationEvery view is compiled against Synapse before it is saved. A view that does not compile never goes live.
Your team6.5 · Materializationsales_by_territory is slow on the Power BI landing page.
Materialization
Materialized
Apply
The landing page loads in under a second. The copy refreshes when the data changes.
SchemaVortex6.5a · Automatic refreshThe stored copy is rebuilt by an agent whenever the data behind it changes. Nobody schedules a refresh.
Your business6.2 · Power BISales wants customer_360 in a dashboard.
Get data
customer_360 appears as a chart.
Power BI reads the view straight from the Query endpoint, and heavy reporting gets an endpoint of its own that costs only the queries it serves. No gateway machine, no cube server, no bigger server for the busiest day of the month.
Your team6.8 · Load balancingAt month-end, hundreds of reports run at once and everyone waits.
New Query endpoint
Save
Month-end runs on its own endpoint. Nobody else slows down.
Your team6.3 · Column lineageSales asks where Revenue in customer_360 comes from.
Column lineage
Revenue comes from fact_sales.LineTotal, and that from the order items in the Vault.
Your business6.3b · Lower TCOKnowing what depends on what makes changes quick and keeps the platform stable. Those two decide a data platform's total cost of ownership.
Your team6.3a · Referrer trackingNobody knows what breaks if CrmSample.customer changes.
Referrers
Nine views read it, from dim_customer to customer_health.
Your team6.4 · Mart view approvalmat.customer_directory is about to be materialized, and it reads the masked Email column.
Approved
Until the Data Warden approves it, it stays a dynamic view. Once approved, it materializes.
Your team6.4a · Mart output maskscustomer_directory is materialized now, and its stored copy must not hand out Email either.
Output columns
Email
Governance gate · Configure
Constant value · **
Save
The Data Steward masks Email on the copy as well. Everyone the gate stops reads ** in place of the address.
Your team6.6 · Mart Plansorder_fulfillment, customer_lifetime_value and customer_health must all change together.
New Mart Plan
Edit SQL
Save
Type a message
Publish
All three go live together.
Your business6.6c · Chain of responsibilityWhere a team requires Mart Plans, every change to the live reports has four eyes on it. Who proposed it and who published it are on the record.
Your team6.6a · Conflict detectionSomeone else changed one of the views in the meantime.
Compare
Keep my version
Nothing is overwritten unseen.
Your team6.6b · Plan-only changesNobody should edit live views directly.
Plans only
Save changes
Every change is reviewed before it goes live.
Your team6.7 · Earlier view definition restoredFriday's change to executive_dashboard broke the totals.
Your business6.7a · Minutes to recoverA wrong change costs a few minutes: the earlier version is restored and published again.
Chapter 7
Explore
Experiments do not touch the reports.
Your business7.1 · Sandbox viewsFinance wants to try a new calculation without waiting for the BI team.
Save
gl_tieout_feb is Finance's own view, ready now. Every tool can read it.
SchemaVortex7.1b · Sandbox isolationSomeone tries to build a Mart view on top of churn_watch, an experiment.
Automatic
Reports never depend on experiments.
Your business7.1a · View ownershipCan Marketing use Finance's gl_tieout_feb?
Open
Only Finance can change it.
Your business7.2 · Sandbox draftsgl_tieout_feb needs a change from the BI team.
Approve
Nothing changes until Finance says so.
Your business7.1c · No BI bottleneckA business area answers its own question this week with a view of its own. Decisions do not wait for the BI team's queue, and the BI team's hours go into the models behind the reports.
Your team7.3 · Global searchWhich table holds the invoices?
Ctrl+K
Type the name
finance.Invoice, vault.CrmSample.invoice and the views that read it.
Chapter 8
AI
AI works under the same rules as a person.
Your business8.1 · AI ChatWhich tables hold customer addresses?
Ask
customer and customer_address, the join on CustomerId, and the SQL. Only metadata leaves, to your own Azure OpenAI.
A business user asks which table holds what, and AI Chat answers from the catalog. The question never becomes a ticket for the BI team.
Your team8.2 · AI AssistantA developer wants Claude Code on the CrmSample warehouse.
Download the bundle
Personal key
The agent sees what that developer may see, and nothing more.
Your team8.3 · Agent proposalsThe agent wrote a Mart Plan for customer_lifetime_value.
Publish
Read the diff
Type a message
Publish
The agent cannot publish it. A person did.
Your business8.3a · Human decisionThe agent writes the SQL. A person decides whether it goes live, and the audit trail names that person.
Your team8.4 · Bounded data accessYou do not want an AI agent holding a standing login to your data.
AI data access
Save changes
The login expires by itself. Every masked column comes back empty.
SchemaVortex8.4a · AI Assistant logWhat did the agent do?
Automatic
Everything the agent did, under the user's name.
Your business8.4b · Audit readinessAn audit is answered from the product in minutes, and the business keeps running while it is.
Chapter 9
Everything is written down
Cost, access and every change are on the record.
Your team9.1 · Cost monitorWhat does this cost per day?
Cost monitor
Yesterday's spend, by part of the system.
Your business9.1b · Serverless cost modelQueries run on serverless SQL, so the bill follows the data the queries read. There is no server to pay for while nobody queries.
SchemaVortex9.1c · Scale-to-zero agentsA cloud agent runs one job at a time and stops when there is nothing to do. A stopped agent is not on the bill.
Your team9.1a · Usage per personOne report is using up the query budget.
Synapse usage
Queries and data processed, per person.
Your business9.1d · Predictable costThe platform is a fixed subscription. Microsoft bills the Azure it runs on to you directly at Microsoft's prices, with no reseller in between, and the cost monitor shows what each day cost and what each user used.
Your business9.2 · Audit trailWho changed customer_360, and when?
Audit
Every change, who made it and when, searchable by person, table or date.
Every recorded action is also written to an append-only archive in your own storage, with a hash of each entry. In an audit or a dispute the evidence is there, and it does not depend on the platform.
Your business9.2a · Access matrixThe auditor asks who could read Salary in May.
Generate
A matrix: every reader against every protected column.
Your business9.2b · Permission matrixWho can do what?
Effective permissions
Every user's permissions, with their scope.
Your team9.3 · OffboardingA colleague leaves.
Disable
Their access ends at once. Their name stays on everything they did.
SchemaVortex9.3f · Deny by defaultUsers sign in with Microsoft Entra. The first one holds every permission. Everyone after them holds none until someone grants it.
Your team9.3a · Directory groupsTwelve analysts joined this month.
Link the group
Permissions
Membership follows the directory, and each addition waits for a person's approval.
SchemaVortex9.3e · Synapse access syncLogins, users and roles on every Query endpoint follow the user's status, Query endpoint access, permissions and the classifications the user is cleared for. Nobody creates a SQL login by hand.
Your team9.3b · Developer notesThe colleague who knew the customer table has left.
Developer note
Their note stays on the table. The BI team reads it, and so does the AI Assistant.
Your business9.3d · Documentation at the dataWhen the one person who knew a table leaves, the answers stay: lineage, notes and descriptions are in the platform. No report and no project stalls because someone left.
Your team9.3c · Notes and tagsBusiness users ask what CreditLimitBv2 means and which tables are safe to use.
Note
Write the description
Tags
Save
The description and the tags sit on the table in the catalog, where everyone who uses it reads them.
SchemaVortex9.4 · Shipped documentationLegal asks where the data sits and who at the vendor can reach it.
Automatic
The answer is in the documentation that came with the product: your cloud, your account, and nobody outside it has a login.
Your business9.4a · Data sovereigntyThe data is encrypted with keys in your own Key Vault and stored as standard Parquet files in your own storage account. If the license lapses, everything stays readable.
No usage analytics, no online license check, no log sent to the vendor. The only connection to the vendor is the check for a new build, so the data residency answer is one sentence.
See it on your own data.
A short live demo does the same on one of your sources.