Design data storage solutions

AZ-305 notes, 20–25% of the exam, updated November 2026

Data storage is 20-25% of AZ-305. Questions describe a workload (size, access pattern, compatibility, latency, budget) and ask you to match a service and tier. Work through the same filters each time: data shape, compatibility with existing code, scale ceiling, availability target, and cost.

Relational data

Choosing the service

Option Pick it when
Azure SQL Database New or modernised app, fully managed PaaS, single database or elastic pool, per-database scaling, Hyperscale up to 128 TB
SQL Managed Instance Lift and shift with near 100% SQL Server compatibility: SQL Agent, cross-database queries, linked servers, Service Broker, CLR, database mail. Lives in your VNet
SQL Server on Azure VM Need OS access, unsupported features (SSRS, SSIS on the server, custom agents), specific versions, or Failover Cluster Instances
Azure Database for PostgreSQL / MySQL (Flexible Server) Open source engine. Flexible Server is current; Single Server is retired
Azure Cosmos DB for PostgreSQL / Cosmos DB Distributed Postgres (Citus) for scale-out multi-tenant or analytics

Rule of thumb: SQL Database unless a compatibility feature forces Managed Instance, and a VM only when PaaS can’t do it. Managed Instance has a Next-gen General Purpose tier and an instance pool for small instances. Azure Arc-enabled SQL Managed Instance runs on-premises or other clouds.

Service tiers and compute tiers

Purchasing models: vCore (choose cores, memory, storage separately; use Azure Hybrid Benefit and reserved capacity) is recommended. DTU is a bundled blend for simple workloads (Basic, Standard, Premium) and is not available for Managed Instance or Hyperscale.

Service tier Architecture and use
General Purpose Remote storage, balanced, most business apps. Zone redundant optional
Business Critical Local SSD, Always On replicas, built-in readable secondary, lowest latency, highest IO. For OLTP needing low latency and a free read replica
Hyperscale Decoupled compute and page servers, up to 128 TB, near-instant backups and restore, fast scale up and out, named replicas and HA replicas. For large or fast-growing databases
Compute tier Behaviour
Provisioned Fixed cores, billed per hour, always on
Serverless Auto-scales between min and max vCores, auto-pauses when idle (storage only billed). For intermittent, unpredictable dev or test or low-use databases. Not for steady 24x7 load
  • Elastic pools share compute among many databases with varied, non-coinciding peaks. They are the answer to “many databases, unpredictable usage per database, control cost”.
  • Reserved capacity (1 or 3 year) and Azure Hybrid Benefit cut cost for steady workloads.
  • Hyperscale and General Purpose are available in serverless.

Scalability

  • Scale up (change tier or vCores, brief connection drop). Hyperscale scales in minutes regardless of size.
  • Read scale-out: Business Critical and Premium include a free read-only replica reached by ApplicationIntent=ReadOnly. Hyperscale uses named replicas (separate compute, own scaling, different security) for isolated read workloads.
  • Sharding with the elastic database tools and a shard map for horizontal partitioning when a single database ceiling isn’t enough.
  • Geo-replicas can also serve reads in other regions.
  • For open source: Flexible Server read replicas (up to 5 for PostgreSQL, 10 for MySQL), vertical scale and storage autoscale. Cosmos DB scales horizontally by partition.

Data protection

  • TDE (transparent data encryption) is on by default with service-managed key. Use customer-managed key (BYOK) in Key Vault for control. Encrypts data at rest.
  • Always Encrypted keeps keys on the client so even DBAs can’t read the columns (with secure enclaves for richer queries). Choose it when “even administrators must not see the data”.
  • Dynamic data masking hides values from non-privileged users in query results only. It is not encryption. Row-level security filters rows by user. Data discovery and classification labels sensitive columns.
  • Entra authentication (including managed identities) is preferred over SQL logins. Private endpoint and firewall rules limit network exposure.
  • Auditing to storage, workspace or Event Hubs. Microsoft Defender for SQL adds vulnerability assessment and threat detection. SQL Ledger gives tamper-evident history.
  • Backups and HA are covered in the business continuity notes.

Semi-structured data

Azure Cosmos DB

A globally distributed, multi-model NoSQL database with single-digit millisecond reads and writes, elastic throughput and 99.999% availability (multi-region).

API Choose when
NoSQL (native, JSON documents) New apps, all features, default
MongoDB Existing MongoDB apps and drivers (vCore for Atlas-like Mongo workloads, RU for elastic)
Cassandra Existing Cassandra wide-column apps
Gremlin Graph traversals
Table Migrating Table storage apps wanting global distribution and throughput
PostgreSQL (distributed) Scale-out relational on Postgres
  • Consistency levels, strongest to weakest: Strong, Bounded staleness, Session, Consistent prefix, Eventual. Session is the default and the usual pick. Strong costs latency and can’t be used with multi-region writes. Eventual and consistent prefix have the lowest latency and cost.
  • Throughput: RU/s (request units) provisioned manual, autoscale (scales 10-100% of max), or serverless (pay per request, small or spiky). Dedicated or shared at database level.
  • Partitioning: choose a partition key with high cardinality and even distribution. A hot partition throttles requests (429). A logical partition holds up to 20 GB; a physical partition holds 50 GB and 10,000 RU/s.
  • Multi-region writes for active-active; otherwise single-write region with read replicas and automatic failover.
  • Change feed drives event-driven processing. Analytical store with Synapse Link / Fabric mirroring runs analytics without touching transactional RUs.
  • Integrated cache, TTL and time-to-live for expiry.
  • Cosmos vs SQL: choose Cosmos for schema-flexible documents, global low-latency distribution and massive horizontal scale. Choose SQL for relational integrity, joins and complex transactions.

Table storage is a cheap key-value store inside a storage account for simple structured NoSQL data, not globally distributed. Azure Managed Redis / Cache is for caching, not a system of record. Azure Data Explorer is for time series, telemetry and log analytics at scale.

Unstructured data

Choosing the store

Service Use for
Blob Storage Objects at massive scale: media, backups, logs, static content. Block, append, page blob types
Data Lake Storage Gen2 Blob with hierarchical namespace: directories, POSIX ACLs, atomic rename, for analytics (Spark, Databricks, Synapse, Fabric)
Azure Files SMB and NFS file shares, lift and shift of file servers, shared app config. Sync on-premises with Azure File Sync
Azure NetApp Files Enterprise NFS/SMB/dual protocol, sub-millisecond latency, SAP, HPC, Oracle, very high throughput. Higher cost than Files
Azure Managed Lustre HPC scratch file system
Managed disks Block storage for VMs. Ultra Disk, Premium SSD v2, Premium SSD, Standard SSD, Standard HDD. Shared disks for clusters
Elastic SAN Pooled block storage with iSCSI for large SAN migrations and AKS/AVS
  • Files tiers: Premium (SSD, low latency, provisioned), Transaction optimized, Hot, Cool (HDD, pay as you go in the standard account). NFS needs premium.
  • Disk selection: boot and light dev = Standard SSD, most production = Premium SSD v2 or Premium SSD, latency-sensitive databases with tuneable IOPS = Premium SSD v2 or Ultra. Ultra offers the highest IOPS, sub-ms latency, and dynamic performance change but has restrictions on zones, caching and snapshots.
  • Storage account kinds: use general-purpose v2 (standard), premium block blobs, premium file shares, premium page blobs. Older v1 and BlobStorage accounts should be upgraded.

Balancing features, performance and cost

Blob access tiers (set at account default for hot/cool, per blob for all):

Tier Storage cost Access cost Minimum retention Latency
Hot Highest Lowest None ms
Cool Lower Higher 30 days ms
Cold Lower still Higher 90 days ms
Archive Lowest Highest 180 days hours to rehydrate (offline)
  • Deleting or moving early incurs an early deletion charge. Archive blobs can’t be read until rehydrated (standard up to 15 hours, high priority under 1 hour for small blobs).
  • Lifecycle management policies move blobs between tiers or delete them automatically by age or last access. This is the standard answer to “reduce cost of aging data automatically”. Last access time tracking enables tiering by access.
  • Premium block blob accounts suit low-latency, high-transaction workloads (SSD).
  • Reserved capacity discounts steady stored data. Smart tier options choose tiers automatically.
  • Performance: spread across multiple storage accounts or partitions for very high request rates, use Azure CDN / Front Door for read-heavy public content, and Azure Blob Storage with NFS v3/SFTP where protocols require.

Protection and durability

Redundancy Copies Survives
LRS 3 in one datacentre Drive and rack failure
ZRS 3 across zones in a region A zone outage
GRS LRS + 3 more in the paired region (async) Regional outage (Microsoft or customer failover)
GZRS ZRS primary + LRS in the secondary region Zone and regional outage
RA-GRS / RA-GZRS Same, with read access to the secondary at all times As above, plus reading during a regional problem

Durability: LRS 11 nines, ZRS 12 nines, GRS/GZRS 16 nines (over a year). The secondary region is the paired region and replication is asynchronous (RPO usually under 15 minutes, not guaranteed).

Data protection features:

  • Soft delete for blobs, containers and file shares (recover deleted data for a retention window). Versioning keeps prior versions on overwrite. Point-in-time restore for block blobs needs soft delete, change feed and versioning.
  • Immutable storage (WORM): time-based retention and legal holds at container or version level for SEC 17a-4 style requirements.
  • Encryption is always on (256-bit AES); options for CMK and customer-provided keys. Secure transfer required, minimum TLS version, disable shared key and anonymous access, use Entra authorization with RBAC, user delegation SAS over account-key SAS.
  • Private endpoints and the storage firewall keep traffic private. Microsoft Defender for Storage scans malware and detects threats.
  • Resource lock on the storage account prevents accidental deletion of the account.

Data integration

Service Role
Azure Data Factory Cloud ETL/ELT orchestration: pipelines, 100+ connectors, copy activity, mapping data flows, self-hosted integration runtime for on-premises sources, SSIS lift and shift
Fabric Data Factory Same ideas inside Microsoft Fabric. Pipelines and dataflows Gen2
Synapse pipelines Data Factory engine inside Synapse workspaces
Azure Stream Analytics SQL-like real-time stream processing from Event Hubs or IoT Hub
Event Hubs Ingest high-volume events (Kafka-compatible endpoint)
Azure Databricks Spark for large-scale transformation, ML, lakehouse (Delta Lake)
Azure Data Share Share data with external organisations without copying pipelines

Choices: batch movement and orchestration use Data Factory; streaming uses Event Hubs plus Stream Analytics or Spark; code-heavy transformations and ML use Databricks. The self-hosted integration runtime is the answer for on-premises or private network sources.

Data analysis

Service Use for
Microsoft Fabric Unified SaaS analytics platform: OneLake, lakehouse, warehouse, Real-Time Intelligence, Data Factory, Power BI. The strategic default for new analytics
Azure Synapse Analytics Dedicated SQL pools (MPP warehouse), serverless SQL for querying the lake, Spark pools. Existing estates
Azure Databricks Spark-based lakehouse, data science, ML, open Delta format
Azure Data Explorer (Kusto) Interactive analytics on logs and time series at scale, sub-second KQL
HDInsight Managed Hadoop/Spark/Kafka when open source Hadoop compatibility is needed
Power BI Visualisation and reporting
Microsoft Purview Catalogue, lineage, classification and governance across data sources

Pick Fabric for a unified new platform, Synapse dedicated pool for an established MPP warehouse, serverless SQL for ad hoc queries over lake files without provisioning, and Databricks when the team is Spark and ML centred. Mirroring and Synapse Link give near real-time analytics from Cosmos DB or SQL without ETL.

Exam checklist

  • Compatibility drives SQL choice: new app = SQL Database; SQL Agent or linked servers = Managed Instance; OS access = VM.
  • Hyperscale for huge or fast-growing; Business Critical for lowest latency with free read replica; serverless for intermittent use; elastic pool for many variable databases.
  • Even DBAs must not see data: Always Encrypted. Masking is cosmetic.
  • Cosmos DB: Session is the default; Strong can’t combine with multi-write; pick a high-cardinality partition key.
  • Analytics on files: Data Lake Gen2 (hierarchical namespace). File server lift: Azure Files plus File Sync. Low latency enterprise NFS: NetApp Files.
  • Cheapest long-term data with automatic ageing: lifecycle management plus Cool, Cold, Archive. Archive is offline.
  • Redundancy ladder: LRS < ZRS < GRS < GZRS; add RA for read access to secondary.
  • Pipelines and on-premises sources: Data Factory with self-hosted integration runtime. New analytics platform: Fabric.

Test what you just read. 42 practice questions on design data storage solutions.

Practise this domain

All AZ-305 notes