Key insight

Microsoft Purview draws the family-tree map from the first article automatically, but only for a defined set of connected tools. Everywhere else, the same coverage gap reappears — and Purview gives you exactly two ways to close it: manual connections, or its own programming interface.

The first article in this series made the case that data lineage is a family tree for facts, and that a complete map of it is one of the most useful documents a security team can own. This article looks at one real, widely deployed system built specifically to draw that family tree: Microsoft Purview. Everything here builds on the first article’s ideas, but nothing from it is assumed — if this is the first thing you read in the series, it still stands on its own.

1 · What Microsoft Purview actually is

Strip away the product name, and Microsoft Purview is simply Microsoft’s cloud service for three related jobs a large company otherwise struggles to do by hand: finding out what data it has, understanding what that data means and where it came from, and protecting the data that turns out to be sensitive. It looks across a company’s entire “data estate” — a plain way of saying “everywhere the company keeps data”: databases running in the cloud, files sitting in a data lake, reports built in Power BI, and systems still running on the company’s own on-premises servers.

Purview does not store a second copy of your actual data. It stores metadata — facts about the data, rather than the data itself: a table’s name, its column names, when it was last scanned, who owns it, and, central to this article, everywhere it came from and everywhere it went.

Microsoft Purview sitting between a scattered data estate and the people who need to find, trust, and protect it On the left, four small icons represent scattered data sources: a database, a data lake, a Power BI report, and an on-premises server. Arrows lead into a central violet Purview hub box. On the right, arrows lead out to a person icon labelled finds it, a shield icon labelled protects it, and a document icon labelled trusts it. Database Data lake Power BI On-premises Microsoft Purview Find it Trust it Protect it
Figure 1. Purview does not hold a second copy of your data. It sits in the middle, building a searchable, trustworthy, protectable map of facts about data scattered across every system a company runs.

2 · The Data Map: the foundation everything else sits on

Everything Purview does rests on one underlying structure called the Data Map. Think of it as an enormous, constantly updated card catalog, the way a library keeps one card per book so a librarian can find any title without walking every shelf. The Data Map holds one entry for every table, file, report, and pipeline Purview knows about, across the whole company.

That catalog is kept current by a scan: an automated process, run on a schedule, that walks through a connected data source the way a librarian walks the shelves, noting what it finds. A scan also looks for patterns inside the data itself — more on that later, under classification — and records what it finds directly into the Data Map.

Everything else people think of as “Purview” — the searchable catalog you browse, the lineage diagrams you look at, the reports on your whole data estate — are all views built on top of this one underlying map. Get the Data Map wrong or incomplete, and every view built on top of it inherits the same gap.

3 · Two kinds of things: Datasets and Processes

Inside the Data Map, Purview only ever deals with two basic kinds of entries, and understanding this pair unlocks almost everything else in this article.

Lineage, underneath everything, is just arrows drawn between these two kinds of boxes: a Dataset feeding into a Process, and that same Process producing a new Dataset out the other side. Purview even has a shortcut for when the exact process in between is not known: a direct arrow straight from one Dataset to another, meaning “the first clearly came before the second, even though we cannot show exactly how.”

A Dataset feeding a Process which produces a new Dataset, the basic building block of every lineage arrow in Purview A teal box labelled Dataset, something that holds data, connects with an animated arrow to a violet box labelled Process, something that does something to data, which connects with a second animated arrow to a second teal box labelled new Dataset. Dataset holds data Process does something to data New Dataset
Figure 2. Every lineage arrow Purview draws, however complicated it looks on screen, reduces to this one repeating pattern: Dataset, Process, Dataset.

4 · How the arrows get drawn automatically

For a specific, defined list of tools, Purview draws these Dataset-Process-Dataset arrows completely on its own, with nobody touching a keyboard. Microsoft calls these lineage connections, and the most common ones are Azure Data Factory and Azure Synapse pipelines (both tools that move and reshape data on a schedule), Power BI (reports and the dataflows that feed them), and, more recently, open-source tools like Airflow, through a shared open standard called OpenLineage.

The mechanism is a simple push model. The moment a supported pipeline or report actually runs, it automatically reports its own inputs, itself, and its outputs straight into the Data Map — the same way a delivery driver might radio ahead automatically every time a truck leaves a warehouse, without anyone having to phone and ask. If the source or destination was not already in the Data Map, Purview quietly adds it, so the map keeps growing on its own as real work happens.

A supported pipeline automatically reporting its lineage into the Data Map the moment it runs A teal source table box connects through an animated arrow into a violet box labelled a supported pipeline runs, Azure Data Factory, Synapse, or Power BI, which connects through a second animated arrow into a green box labelled the Data Map, updated automatically, no person involved. Source table A supported pipeline runs Data Factory · Synapse Power BI Data Map updated, no person
Figure 3. No person filled in a form here. The pipeline running is itself the event that writes the lineage arrow — which is exactly why coverage depends entirely on which tools Purview knows how to listen to.

5 · Where the arrows don’t get drawn automatically

Read that last sentence again: automatic lineage only exists for tools Purview has been built to listen to. The moment work happens somewhere outside that list — a custom Spark job someone wrote by hand, a third-party ETL tool without a lineage connection, or a script running on an old on-premises server — nothing gets reported, and the Data Map simply does not know that link ever existed.

This is the exact same gap the first article in this series described in the abstract, now with concrete, real names attached to both sides of it. It is not a flaw unique to Purview — it is a structural consequence of any push-model system: coverage can only ever be as wide as the list of things that have been taught to push.

Column-level detail has its own, narrower gap

Even inside supported tools, tracing lineage down to an individual column, rather than a whole table or file, is only available for specific combinations today — for example, Power BI reports built directly on an Azure SQL Database. Most other sources only get table-level or file-level lineage. Assume column-level detail is the exception, not the default, unless you have checked for your specific source.

6 · Closing the gap: manual and custom lineage

Purview gives you exactly two ways to fill in the arrows automatic lineage misses, and which one makes sense depends entirely on scale.

Underneath, both paths simply create the same Dataset-and-Process entries and draw the same kind of arrows described in Figure 2 — there is no separate, second-class kind of lineage. A manually or programmatically reported arrow shows up in the exact same lineage diagram, drawn the exact same way, as one Purview captured entirely on its own.

Plain-language checkpoint

If a tool is on Purview’s supported list, lineage is free and automatic. If it is not, lineage is not impossible — it is simply a job someone has to explicitly do, either by hand for a handful of links, or by calling an interface from code for everything else.

7 · Classification and sensitivity labels

Purview has two related but genuinely different ways of marking what is sensitive, and mixing them up is one of the most common points of confusion.

A classification is a pattern match found during a scan — a column that looks like a social security number, a bank account number, a person’s name. Purview ships with over two hundred of these built in, and you can define your own. The important limitation: a classification only lives inside the one Data Map that found it. If the same data moves somewhere covered by a completely separate Purview Data Map, that classification does not travel with it — it has to be found again, from scratch.

A sensitivity label is different in exactly the way that matters here. Labels like Public, Confidential, or Highly Confidential come from a related Microsoft capability and are designed to travel with the data itself, embedded as metadata in the file or record, wherever it goes next — into Azure storage, into SharePoint, into Power BI, into a SQL column. A label applied once keeps showing up automatically everywhere that same data is later scanned.

Classification versus sensitivity label — the distinction that matters for lineage.
PropertyClassificationSensitivity label
What it marksA pattern found in the data (SSN, bank account, etc.)A business-impact tier (Public, Confidential, and so on)
Where it livesOnly in the one Data Map that found itEmbedded in the data itself
Travels with the data?No — must be rediscovered elsewhereYes — shows up wherever the data is scanned next
A sensitivity label traveling with data across three different systems, versus a classification that stays pinned to one map Top row: a glowing amber labelled box moves through a data lake, then SharePoint, then Power BI, keeping its glow the whole way, showing a sensitivity label travels with the data. Bottom row: a classification badge stays attached only to the original data lake box, shown with a dashed line and a cross to the SharePoint and Power BI boxes, showing it does not travel. Sensitivity label — travels with the data Data lake SharePoint Power BI Classification — stays pinned to one map Data lake SharePoint Power BI
Figure 4. The same three-system journey, two different outcomes. A sensitivity label keeps glowing all the way across; a classification quietly stops at the first stop, unless something rediscovers it further downstream.

8 · A worked example: tracing a labelled table

Bring the last three sections together with one example. Say a customer table in a data lake carries a Highly Confidential sensitivity label, and an Azure Data Factory pipeline, one of the automatically connected tools, copies part of it into a Power BI dataset every night.

Because the pipeline is a supported lineage connection, Purview automatically draws the Dataset-Process-Dataset arrow from the source table, through the pipeline, into the Power BI dataset the moment it runs — no one has to ask it to. Because the label travels with the data, that same Highly Confidential marking should reappear on the Power BI dataset the next time it is scanned. If an incident ever calls that source table into question, the lineage graph instantly shows the Power BI dataset as downstream and therefore suspect, and the label tells the response team exactly how seriously to treat it — two separate Purview features, lineage and labelling, doing their jobs together, automatically, without anyone having built anything custom for this specific case.

Now change one detail: suppose that nightly copy instead runs through a hand-written script on an old on-premises server, not through Data Factory. The label would still travel, because it is embedded in the data itself — but the lineage arrow would simply not exist, because no supported tool ever reported it. The Power BI dataset would carry the right label, sitting completely disconnected from the map that should have explained where it came from. That is the coverage gap from Section 5, made concrete.

9 · A simple test you can run in your own tenant

Try this in your own Microsoft Purview account

1. Pick one asset in the Data Map carrying a sensitivity label or a classification you would call sensitive.
2. Open its lineage view and note everything shown upstream and downstream.
3. Separately, ask the engineering team that owns it whether every pipeline touching that asset is Azure Data Factory, Synapse, Power BI, or another connected tool — or whether any of them are custom scripts, third-party tools, or on-premises jobs.
4. If the answer includes anything from that second group, check whether a matching manual or custom lineage entry actually exists for it.

A missing entry here is not a Purview bug — it is exactly the coverage gap this article described, and it is fixable the moment someone owns closing it.

10 · Glossary — every short-form term, spelled out

Microsoft Purview
Microsoft’s cloud service for finding, understanding, and protecting data across a company’s entire data estate.
Data estate
A plain way of saying everywhere a company keeps data — cloud databases, data lakes, reports, and on-premises systems together.
Data Map
Purview’s underlying, constantly updated catalog of metadata — facts about data, not the data itself — that every other Purview view is built on top of.
Scan
The automated process that walks a connected data source and records what it finds into the Data Map, the way a librarian walks the shelves.
Dataset
Anything in the Data Map that holds data — a table, a file, a report.
Process
Anything in the Data Map that does something to data — a pipeline, a query, a transformation.
Lineage connection
A supported tool, such as Azure Data Factory, Azure Synapse, or Power BI, that automatically reports its own lineage into the Data Map every time it runs.
Manual lineage
Lineage arrows drawn by hand inside the Purview portal, practical for a small number of missing links.
Custom lineage
Lineage arrows reported by calling Purview’s own programming interface from inside your own pipeline or script, for links automatic capture cannot see.
Classification
A pattern match, such as a social security number format, found during a scan; stays limited to the one Data Map that found it.
Sensitivity label
A business-impact tag, such as Confidential, that travels with the data itself wherever it goes next.
Collection
An organizational and permission boundary inside Purview that groups data sources, scans, and assets, with access inherited down the hierarchy.
Key takeaways

Microsoft Purview builds the family-tree map from the first article automatically, using one repeating pattern: Dataset, Process, Dataset.
Automatic lineage only exists for a defined list of connected tools — Azure Data Factory, Synapse, Power BI, and a few others.
Everything outside that list leaves the exact same coverage gap the first article described, closable only by manual or custom lineage.
Classification stays local to one Data Map; a sensitivity label travels with the data itself, wherever it goes.
Combining a traveling label with a complete lineage map lets you check not just what is sensitive, but everywhere that sensitivity should have shown up.

References

  1. Microsoft Learn, Learn about Microsoft Purview Data Map. learn.microsoft.com/purview/data-map
  2. Microsoft Learn, Scans and ingestion in Data Map. learn.microsoft.com/purview/data-map-scan-ingestion
  3. Microsoft Learn, How to connect Azure Data Factory and Microsoft Purview. learn.microsoft.com/purview/data-map-lineage-azure-data-factory
  4. Microsoft Learn, How to get lineage from Power BI into Microsoft Purview. learn.microsoft.com/purview/data-map-lineage-power-bi
  5. Microsoft Learn, Create and get lineage relationships using the REST API. learn.microsoft.com/purview/data-gov-api-create-lineage-relationships
  6. Microsoft Learn, Sensitivity labels in Data Map FAQ. learn.microsoft.com/purview/data-map-sensitivity-labels-faq
  7. Microsoft Learn, Data classification in Data Map. learn.microsoft.com/purview/data-map-classification
  8. Microsoft Learn, Microsoft Purview domains and collections architectures and best practices. learn.microsoft.com/purview/data-gov-best-practices-domains-collections