Brains4Cloud
ESEN
Practice

Topic 2 of 4

D3 · Non-relational data on Azure

Azure Files and Azure Table Storage

Besides blobs, an Azure Storage account offers file shares and key-value tables. They're simple services, but the exam asks about their protocols, how a row is identified in a table, and how an Azure table differs from a relational table.

On-premises networks commonly share files: they're stored on one computer and access is granted to users and apps on others. That works on a local network, but scales poorly as users grow or sit in different locations.

Azure Files provides fully managed file shares in the cloud, accessible through the industry-standard SMB and NFS protocols.

Hosting file shares in Azure removes hardware costs and maintenance overhead, and adds high availability and scalable storage.

Capacity, tiers, and uploading files

Capacity per account

Up to 256 TiB in SSD accounts on the provisioned v2 billing model, and up to 5 PiB in HDD pay-as-you-go accounts, spread across any number of shares.

Files

The maximum file size is 4 TiB; quotas can limit each share. It supports up to 2,000 concurrent handles per file or directory.

Media tiers

HDD (hard disks) and SSD (solid-state disks). SSD offers more throughput at a higher price.

Uploading and syncing

Upload files from the portal or with AzCopy. Azure File Sync synchronizes locally cached copies with the data in Azure Files.

Protocols: SMB and NFS

ProtocolClientsBest for
SMB (Server Message Block)Windows, Linux, macOSGeneral-purpose shares, lift and shift, hybrid with Azure File Sync
NFS (Network File System)Linux (not supported on Windows)Linux workloads, containers, HPC
REST APIAll platformsProgrammatic access from applications

NFS requirements

To create an NFS share, you must use the SSD tier and control access through a private endpoint or a service endpoint in a virtual network.

Azure Files use cases

  • Replace or supplement on-premises file servers, mounting shares directly or caching them with Azure File Sync, with identity-based authentication from on-premises Active Directory.
  • Lift and shift applications that expect shared storage, without code changes.
  • Cloud development: shared settings, diagnostic logs, and common tools across virtual machines.
  • Containers: persistent volumes for stateful containers.

It supports zone-redundant (ZRS) and geo-redundant (GRS) storage.

A NoSQL storage solution with tables of key-value items. Each item is a row with columns for the fields to be stored.

Not a relational table

An Azure table stores semi-structured data. Every row needs a unique key and a timestamp, but beyond that the columns can vary between rows. There are no foreign keys, relationships, stored procedures, or views.

Data is usually denormalized: each row holds all the data for a logical entity. A customer row can store a name, several phone numbers, and several addresses, and another row can have a different number of fields. In a relational database, that information would be split across multiple rows in several tables.

Partition key and row key

PartitionKey

A value you choose to group related rows in the same partition. Rows with the same partition key are stored together.

RowKey

A value unique to each row within its partition. Together, the two keys uniquely identify the row.

Partitioning improves scalability and performance:

  • Partitions are independent and grow or shrink as rows are added or removed; a table can contain any number of partitions.
  • Including the partition key in a search narrows the data to examine and the I/O needed.
  • Within a partition, rows are stored in RowKey order, which enables point queries (one row) and range queries (a contiguous block of rows).
  • Entities with the same partition key can be inserted or updated in atomic operations.

Entities, properties, and access

ConceptDescription
TableA collection of entities with no enforced schema
EntityA set of properties, like a row. Up to 1 MB in Azure Storage (2 MB in Cosmos DB)
PropertyA name-value pair; up to 252 per entity, plus three system properties: partition key, row key, and timestamp
Addresshttp://<account>.table.core.windows.net/<table>, accessible with the OData protocol

It suits terabytes of structured data that don't need complex joins, foreign keys, or stored procedures, and it's typically cheaper than traditional SQL for similar volumes.

Table Storage vs. Cosmos DB for Table

Azure Table StorageAzure Cosmos DB for Table
ModelKey-value, PartitionKey + RowKeyThe same model and programming
PerformanceBaselineHigher performance and availability
DistributionWithin the storage accountGlobal distribution
IndexesClustered index on the keysAutomatic secondary indexes on every property

Azure Table Storage remains available; Cosmos DB for Table makes sense when the workload needs those extra capabilities (see Cosmos DB in this domain).

Exam scenarios

SituationAnswerWhy
Replace an on-premises file server with cloud file sharesAzure FilesManaged network file shares.
Keep a cache of Azure file shares on on-premises serversAzure File SyncIt syncs local copies with Azure Files.
Mount a share from Windows, Linux, and macOSSMBA cross-platform protocol.
A share for Linux workloads and containersNFS (SSD tier)Linux clients only; requires the SSD tier.
Store user profiles with variable fields and fast key lookupsAzure Table StorageSchemaless key-value.
Fast queries filtering on the partition keyTable Storage partitioningIt reduces the I/O needed.
A key-value table with global distribution and automatic secondary indexesAzure Cosmos DB for TableSame model, more performance and availability.

Common exam traps

❓ Do Azure Files NFS shares work on Windows?

No. NFS is for Linux clients; SMB works on Windows, Linux, and macOS.

❓ Which tier does an NFS share require?

The SSD tier, with access through a private or service endpoint.

❓ What uniquely identifies a row in Azure Table Storage?

The combination of partition key and row key.

❓ Does Azure Table Storage support foreign keys and stored procedures?

No. It has no relationships, foreign keys, stored procedures, or views.

❓ Must every row in an Azure table have the same columns?

No. Apart from the keys and timestamp, columns can vary: it's semi-structured data.

❓ What is Azure File Sync for?

Synchronizing locally cached copies of shares with Azure Files.

Did you get this topic?

Test what you just learned

An application stores device data in Azure Table Storage and almost always queries all the devices in the same plant. What should it use as the partition key?

Ready to test "Azure Files and Azure Table Storage"?

Original questions, each with a full explanation.

Start a mock exam