Data Lake Storage
Service 13

Data Lake Storage

ObjectAnalytics

Azure Data Lake Storage Gen2 is Blob Storage with a hierarchical namespace and POSIX-style access control switched on. It is not a separate service but a capability of a storage account, turning flat object storage into something analytics engines can treat like a file system with real directories and permissions.

It is the storage layer for analytics on Azure — Synapse, Databricks, and Spark read and write it directly. The defining decision is made once, at account creation: enable the hierarchical namespace, or you have an ordinary Blob account that the analytics tooling treats less efficiently.

Hierarchical Namespace

The hierarchical namespace gives the account real directories, so operations like renaming or deleting a folder are single atomic metadata operations rather than a loop over every object with a matching prefix. For analytics jobs that manipulate directory trees of millions of files, this is the difference between fast and unusable. It is simplest to enable the namespace at account creation, but an existing Blob account can also be upgraded to it in place — a one-way, validated conversion that needs no data migration.

POSIX ACLs

On top of Entra RBAC, Data Lake adds POSIX-style access control lists at the file and directory level, so a data platform can grant fine-grained access to specific folders for specific groups. This is the access model analytics teams expect, and it is why a shared data lake can serve many teams without everyone seeing everything.

Analytics Integration

Synapse, Databricks, HDInsight, and Spark connect to Data Lake Storage as their primary store, reading partitioned Parquet and Delta data in place. The lake holds the raw and curated data; the compute engines are stateless over it. Keeping storage and compute separate is the whole architecture — scale and pay for them independently.

Performance and Cost

The same access tiers and lifecycle rules as Blob apply, so raw landing data can age to Cool and Archive while curated data stays Hot. The cost discipline of object storage carries over: a lake with no lifecycle policy grows forever, and partitioning and file-size choices drive both query performance and the per-operation bill.

Data Lake Storage (HNS on) vs flat Blob Storage

Data Lake Storage Gen2 — Hierarchical namespace and POSIX ACLs. Choose it for analytics — atomic directory operations and fine-grained folder permissions.

Flat Blob Storage — No real directories; folder operations loop over prefixes. Fine for object workloads, inefficient for analytics over directory trees.

Common Mistakes
  • Running analytics on a flat account and forgetting the hierarchical namespace — an existing account can be upgraded in place (one-way, no data migration), but skipping it leaves directory operations slow.
  • Running analytics over a flat Blob account, where deleting or renaming a 'folder' loops over every object and crawls.
  • Relying only on RBAC and skipping POSIX ACLs, so fine-grained per-folder access for analytics teams is impossible.
  • Landing millions of tiny files instead of partitioned, right-sized Parquet — query performance and per-operation cost both suffer.
  • Never tiering raw landing data, so the lake grows on the Hot tier without bound.
  • Treating the lake as a database — it is storage; the query engine is Synapse, Databricks, or Spark on top.
Best Practices
  • Enable the hierarchical namespace for any analytics account — at creation, or by upgrading an existing Blob account in place (a one-way conversion, no data migration).
  • Use POSIX ACLs alongside RBAC to grant per-folder access to specific analytics teams.
  • Store partitioned, right-sized Parquet or Delta files; avoid millions of tiny objects.
  • Apply lifecycle rules so raw landing data ages to Cool and Archive while curated data stays Hot.
  • Keep storage and compute separate — let Synapse, Databricks, or Spark scale independently over the lake.
  • Choose redundancy by the data's value, as with any Blob account.
Comparable servicesAWS S3 (with Lake Formation)GCP Cloud Storage

Knowledge Check

How is the hierarchical namespace enabled on a storage account?

  • At account creation, or by upgrading an existing Blob account in place — a one-way conversion needing no data migration
  • Only at account creation; an existing flat account must be recreated from scratch and have all of its data migrated over
  • By flipping a billing setting that also raises the per-GB storage rate
  • It is enabled automatically on every new storage account

What does the hierarchical namespace change about folder operations?

  • Renaming or deleting a directory becomes a single atomic metadata operation instead of a loop over every object
  • It encrypts the contents of each folder with its own separate key
  • It replicates every folder to a geographically paired second region automatically on each and every write operation
  • It converts the stored data into a fixed relational table schema

What is the relationship between Data Lake Storage and engines like Synapse or Databricks?

  • The lake is the storage; the engines are stateless compute that read and write it in place
  • An analytics engine such as Synapse must be deployed first before the storage account can be created
  • The lake runs the analytical queries itself and returns the result set
  • Each engine keeps its own separate full copy of the data

You got correct