Skip to main content
BRILLIQS

Azure Data Lake Storage

Azure object storage with a hierarchical namespace, so directories are real rather than implied by naming.

Azure Data Lake Storage is object storage on Azure with a hierarchical namespace enabled. That option makes directories genuine structures rather than a convention within key names, which changes how renaming and permissions behave. It is the storage layer beneath Azure analytics services and supports access control at directory and file level.

The directory that was never really there

Object storage generally has no directories. Objects have keys, keys often contain slashes, and tools display the result as folders. The hierarchy is a convention within names rather than a structure the storage knows about.

That works well enough for storing files. It causes specific problems for analytical workloads.

Azure Data Lake Storage is Azure object storage with a hierarchical namespace enabled, which makes directories real.

The difference sounds like a technicality. Its consequences are practical and they are the reason the option exists.

Renaming, and why it matters more than it should

Consider what a processing job does when it writes output.

A well behaved job writes to a temporary location and moves the result into place only when it has finished successfully. If the job fails partway, the temporary output is discarded and nothing incomplete appears where readers are looking.

The move is where the difference shows.

Without real directories, moving means copying every object to a new key and deleting the originals. For a job producing thousands of files this is slow, it costs requests, and it is not atomic. A failure during the move leaves half the output in place, which is precisely the situation the pattern was meant to avoid.

With a hierarchical namespace, renaming a directory is a metadata operation. It is quick and it either happens or does not.

This is why processing frameworks behave better against storage with real directories, and it is the most concrete argument for enabling it.

Permissions at the level people think in

The second consequence is access control.

Container level permissions are coarse. Either someone has access to the whole container or they do not.

Real directories allow permissions at directory and file level. A lake can hold data belonging to several teams, each able to reach their own area, without splitting into separate storage accounts.

That matters because the alternative shapes architecture badly. Where permissions can only be applied broadly, organisations create many separate storage accounts to achieve separation, and then have to manage them and move data between them.

The official documentation covers the access control models available and how they combine, which is worth understanding before a permission structure is designed, because retrofitting one across an established lake is unpleasant work.

The storage layer beneath Azure analytics

The role this service plays is being what other services read.

Azure analytics and processing services work against it directly. Data is written once and read by whichever service needs it, rather than being loaded separately into each.

This is the general point of a data lake and it depends on the storage being something many tools can read. A storage layer that only one engine understood would return the estate to copying data between systems.

Organising what is stored

Real directories do not remove the need for a sensible layout.

Data is still normally organised by dataset and then by date components, because analytical engines read only the directories relevant to a query. A query for one month should touch one month's data, and that only happens if the layout allows it.

File sizes matter too. Very many small files perform poorly, because each carries overhead that dominates when the file itself is tiny. Processing frameworks commonly combine small files for this reason.

These are the same considerations that apply to any data lake. The hierarchical namespace makes the operations on that structure efficient; it does not choose the structure.

Tiers

Data can be held in tiers priced according to access frequency. Data read constantly and data retained for years belong in different tiers, and the difference is significant at the volumes lakes reach.

Who uses it

Azure Data Lake Storage is used by data engineers, platform teams and analytics teams on Azure. It is the standard storage foundation for Azure analytics work, and most Azure data platforms have it underneath.

Points to consider

This is an Azure service and the official documentation is the reference for features, the relationship to blob storage, and pricing.

Enabling the hierarchical namespace is a decision made when a storage account is created, and the documentation covers the implications including which features apply.

Permission design is easier before a lake fills than after. Deciding the directory structure and who has access to what at the start avoids a difficult reorganisation later.

Cost includes operations as well as storage. Workloads performing very many small operations can find requests a meaningful component of the bill.

Getting started

The official documentation covers enabling the namespace, access control and integration with analytics services. Creating an account with the namespace enabled, writing data in a date structured layout, and querying it from an analytics service shows how the pieces fit together.

Key features of Azure Data Lake Storage

Capabilities described in the official documentation.

A hierarchical namespace

Directories exist as real structures rather than being implied by slashes inside object names.

Access control on directories and files

Permissions can be set at directory and file level in addition to container level access.

Integration with Azure analytics

Azure analytics and processing services read from and write to it as their storage layer.

Storage tiers

Data can be held in tiers priced differently according to how often it is accessed.

Advantages of Azure Data Lake Storage

Factual advantages that follow from the features above.

Directory operations are efficient

Renaming or moving a directory is a metadata change rather than rewriting every object beneath it.

Permissions can be granular

Access set at directory level supports different teams having different rights within one lake.

Analytics services read it directly

Azure processing and query services work against the same storage without data being copied.

Cost follows access frequency

Tiering means rarely read data is not held at rates intended for frequent access.

Common use cases for Azure Data Lake Storage

Situations the official documentation describes this tool as being used for.

Manufacturing

Holding a data lake on Azure

Files from many sources are stored for Azure analytics services to read.

Public sector

Separating access by team

Directory level permissions give teams access to their own areas within one lake.

Energy

Landing data from source systems

Pipelines write extracted data here before it is transformed and analysed.

Insurance

Retaining historical data

Older data is kept in cheaper tiers while remaining available when it is required.

Official website

Everything on this page is based on the official documentation for Azure Data Lake Storage. You can read the source here.

Azure Data Lake Storage official documentation

Frequently asked questions about Azure Data Lake Storage

Answers taken from the official documentation for this tool.

It makes directories real structures rather than a convention in object names. Renaming a directory becomes a metadata operation instead of rewriting every object beneath it, and permissions can be applied to a directory. Both differences matter for analytical workloads that reorganise data.

Permissions can be applied at directory and file level alongside container level access, so different teams can have different rights within one lake. The official documentation describes the models available and how they combine, which is worth reading before designing a permission structure.

Because processing frameworks use it. A common pattern writes output to a temporary location and renames it into place when the job succeeds. Where renaming means copying every file, that step is slow and can fail partway. Where it is a metadata change, it is quick and atomic.

It is Azure storage with the hierarchical namespace option enabled, rather than an entirely separate product. The official documentation explains the relationship and what enabling the option changes, including which features apply.