Apache Atlas
An open source metadata and governance framework built for Hadoop platforms, with a type system you extend.
Apache Atlas is an open source framework for metadata management and governance. It records what data assets exist, captures lineage between them and allows classifications to be attached. Its type system can be extended, so the kinds of asset it tracks are not limited to those the project defined.
What Atlas is for
Apache Atlas records metadata about data assets and governs them: what exists, how assets relate, and what markings apply to them.
It comes from the Hadoop ecosystem, and its integrations reflect that origin. Understanding where it fits best starts from knowing that.
Lineage captured rather than documented
The capability that most justifies Atlas is how lineage arrives.
Lineage can be documented. Somebody writes down that this table is built from those two. That description is accurate on the day it is written and progressively less so afterwards, because pipelines change and documentation does not.
Atlas takes a different route. Hooks in the processing engines report activity as it happens. When a job runs, the engine says what it read and what it wrote.
The lineage that results describes what actually ran. It does not go stale, because it is regenerated by execution rather than maintained by hand.
Classifications
Assets can carry classifications: labels marking them as containing personal data, as restricted, as belonging to a particular domain.
On its own that is documentation. Two things make it more than that.
Propagation along lineage
Classifications can follow lineage.
This addresses a real gap in data governance. A source table is correctly marked as containing personal data. A pipeline derives an aggregate from it, then another table from that. Those derived tables contain information originating in personal data, and nobody marked them, because marking happens at the source.
Propagation means the derived assets inherit the markings. Sensitivity is not lost through transformation, which is exactly where it is usually lost.
Classification driving access control
The second is that classifications can be consumed by an authorisation system.
A policy written against a classification rather than against a list of tables covers every asset carrying that label, including ones created after the policy was written.
That is the difference between governance that scales and governance that requires somebody to remember to update a list.
The type system
What Atlas can record is defined by types, and the type system is extensible.
That matters because every platform has components nobody anticipated. Rather than those being invisible to the catalogue, a type is defined for them and they appear alongside everything else.
Notifications
Metadata changes are published as messages, so other systems can react. That is what allows an authorisation system to respond to a new classification without polling.
Who uses Atlas
Atlas is used on Hadoop based data platforms, particularly in regulated industries where recording lineage and tracking sensitive data are requirements rather than conveniences.
Points to consider
Its integrations are strongest in the ecosystem it came from. Outside that, how useful it is depends on what integrations exist for your systems, and that is worth checking before adoption.
It is also a system to operate, with its own dependencies to deploy and maintain.
Lineage depends on the hooks being installed and configured. A processing engine without one is invisible, so lineage that appears complete may have gaps, and knowing where those are matters.
Getting started
The documentation covers the type system, installing hooks for supported engines, classifications and their propagation, and the interfaces available. Enabling a hook on one engine and watching lineage appear as jobs run demonstrates the central mechanism.
Key features of Apache Atlas
Capabilities described in the official documentation.
An extensible type system
The kinds of asset tracked are defined as types, and new types can be added for systems the project does not cover.
Lineage captured from engines
Hooks in processing engines report what read and wrote what, so lineage is recorded as jobs run.
Classifications on assets
Labels such as sensitivity markings attach to assets and can propagate along lineage.
Notifications on change
Metadata changes are published as messages so other systems can react to them.
Advantages of Apache Atlas
Factual advantages that follow from the features above.
Lineage arrives without being written
Because engines report their own activity, lineage reflects what actually ran rather than what was documented.
Classification can drive access control
Labels attached to assets can be used by an authorisation system, so policy follows the classification.
Sensitivity follows the data
Propagating classifications along lineage means a derived table inherits the markings of its sources.
It can describe your own systems
Extending the type system means assets specific to your platform are tracked alongside the standard ones.
Common use cases for Apache Atlas
Situations the official documentation describes this tool as being used for.
Recording lineage across a Hadoop platform
Hooks in processing engines report what each job read and wrote, building lineage automatically.
Marking sensitive data
Classifications identify assets holding personal or restricted data so policy can be applied to them.
Propagating markings downstream
A derived table inherits classifications from its sources, so sensitivity is not lost through transformation.
Tracking a platform specific asset type
A new type describes something the project does not cover so it appears in the catalogue alongside the rest.
Official website
Everything on this page is based on the official documentation for Apache Atlas. You can read the source here.
Apache Atlas official documentation