Choosing Non-Relational Storage
Azure offers Blob Storage, Files, Table Storage, and Cosmos DB for non-relational data. This decision guide helps you pick the right one.
The non-relational decision framework
Four services, four different jobs.
Need a warehouse for boxes? Blob Storage. Need a shared filing cabinet? Azure Files. Need a simple phone book? Table Storage. Need a high-tech, global-scale smart warehouse? Cosmos DB.
Picking the right one depends on what your data looks like and how you need to access it.
Decision tree
1. Is the data unstructured files (images, videos, backups, documents)?
- Yes → Azure Blob Storage
2. Do applications need to mount a file share (like a network drive)?
- Yes → Azure Files
3. Is it simple key-value data with basic lookups (no complex queries)?
- Yes, budget-sensitive → Azure Table Storage
- Yes, needs global distribution or guaranteed performance → Cosmos DB (Table API)
4. Is it flexible JSON documents needing rich queries?
- Yes → Azure Cosmos DB (NoSQL API)
5. Is it graph data (nodes and relationships)?
- Yes → Azure Cosmos DB (Gremlin API)
6. Migrating from MongoDB or Cassandra?
- MongoDB → Cosmos DB (MongoDB API)
- Cassandra → Cosmos DB (Cassandra API)
Complete comparison
| Feature | Blob Storage | Azure Files | Table Storage | Cosmos DB |
|---|---|---|---|---|
| Data type | Any file (binary objects) | Files in shared folders | Key-value entities | Documents, key-value, graph, column-family |
| Access | REST API, SDKs, URLs | SMB/NFS mount | REST API, OData | Multiple APIs (NoSQL, MongoDB, Gremlin...) |
| Schema | None | File system | Flexible | Flexible (depends on API) |
| Global distribution | GRS replication | GRS replication | GRS replication | Active multi-region with writes |
| Query power | Metadata only | File names/paths | Partition + Row key | Rich queries, aggregation, joins within collections |
| Cost | Very low | Low-Medium | Very low | Higher (pay for RU/s throughput) |
| Best for | Media, backups, data lakes | File shares, lift-and-shift | Config data, simple lookups | Global apps, flexible data, high scale |
Scenario practice
| Scenario | Best Service | Why |
|---|---|---|
| Store security camera footage (TB/day) | Blob Storage | Unstructured binary data, huge volumes, tiered pricing |
| Replace an on-premises file server | Azure Files | SMB mount, familiar file system access |
| Store IoT device config (10,000 devices) | Table Storage | Simple key-value lookups, very cheap |
| E-commerce product catalogue (global) | Cosmos DB (NoSQL API) | Flexible JSON documents, global distribution |
| Social network friend connections | Cosmos DB (Gremlin API) | Graph model for relationship traversal |
| Data lake raw zone for analytics | Blob Storage (+ ADLS Gen2) | Foundation for Microsoft Fabric and Databricks |
Exam tip: the non-relational scenario pattern
The exam gives you a scenario with data characteristics and asks which service to use. Pattern match:
- “Files, images, videos, backups” → Blob Storage
- “Mount as a drive,” “SMB,” “file server replacement” → Azure Files
- “Simple lookups by key,” “device configuration,” “cheap” → Table Storage
- “Global distribution,” “low latency,” “flexible JSON” → Cosmos DB
- “Graph traversal,” “connected entities” → Cosmos DB (Gremlin)
- “Existing MongoDB/Cassandra app” → Cosmos DB (matching API)
Flashcards
Knowledge check
A hospital needs to store millions of medical images (X-rays, MRIs). Each image is 5-50 MB. They need cheap storage with tiered pricing (recent images accessed frequently, older ones rarely). Which service?
A smart home company needs to store configuration settings for 100,000 IoT devices. Each device has a simple key-value pair (device ID → settings JSON). No complex queries needed. Budget is extremely tight. Which service?
🎬 Video coming soon
You’ve completed Domain 3! 🎉 You now understand Azure Blob Storage, Files, Table Storage, and Cosmos DB — and when to use each.
Next up: Data Ingestion & Processing — let’s explore the analytics domain and how data flows into insights.