Most organizations believe they’re data-driven. In practice, many are running on a fraction of their actual data, specifically, the tidy fraction that fits into tables. The “80 to 90% of enterprise data is unstructured” stat from Gartner has been floating around for years now, and it’s still roughly accurate. Emails, contracts, PDFs, chat histories – none of it fits into a SQL database.
What’s changed isn’t the ratio. It’s that LLMs and RAG pipelines have finally made this data actionable, which means you can’t keep ignoring it the way most teams have been. Your dashboards and reporting pipelines are still built on the remaining 10 to 20%.
Let’s break down what structured, unstructured, and semi-structured data really are, where teams get stuck with each one, and how your choice of storage should match what you want to do with your data.
What is structured data?
Structured data is information stored in a fixed schema: predefined fields, rows, and columns, usually inside relational databases or transactional business systems. Think about your ERP, CRM, finance records, hotel reservation systems, and product catalogs. They all run on structured data.
The main reason teams love it is consistency. Every record looks the same, which means you can validate, filter, join, and report on it with minimal preprocessing. That’s why structured data sits behind most dashboards and analytics workflows. When someone asks “what was our revenue in Q3?”, the answer comes from structured data.
The shape of this layer varies by industry, but the underlying logic is the same. In retail, it’s SKUs, transaction amounts, and store IDs, the data that answers “what sold where and when” in seconds. In manufacturing, it’s production output per shift, machine uptime, and defect counts feeding OEE dashboards. In logistics, it’s shipment IDs, carrier codes, and delivery checkpoints that drive real-time tracking.
The limitation is rigidity. Structured data works well when the schema is stable and when the most valuable information arrives in discrete, predictable fields. The moment you need to understand why something happened, not just that it happened, a relational table starts to show its limits. One mistake teams make is treating structured data as the only “real” data. It’s the easiest to work with, which creates a selection bias: teams build workflows around what they can query, and quietly ignore everything else.
What is unstructured data?
Unstructured data doesn’t follow a predefined schema. It arrives as text, images, audio, video, or documents and it stays in that original form unless someone invests effort to process it. Emails, PDFs, scanned contracts, presentations, support transcripts, call recordings, chat histories. This is most of what organizations actually produce.

Working with it at scale is genuinely difficult – hard to query, harder to govern. The email thread, the support chat, and the call transcript explain what actually went wrong and why the customer left. The structured record tells you something changed. The unstructured data tells you what it meant.
This is also the data that tends to get ignored, until something breaks or an audit arrives. In healthcare, it’s physician notes, radiology images, and discharge summaries, the narrative layer that gives clinical meaning to the numbers. In financial services, it’s audit reports, regulatory submissions, and client correspondence that underpin compliance reviews. In HR, it’s resumes, performance review narratives, and interview notes that don’t reduce neatly to fields.
The difficulty is also genuine. Unstructured data is hard to query, harder to govern, and even harder to secure at scale. This connects directly to dark data. According to Splunk, roughly 55% of enterprise data is “dark” collected and stored, but never used. The problem isn’t just that unstructured data is hard to work with. It’s that teams often don’t know what they have.
Semi-structured data: the format that keeps modern systems moving
Semi-structured data sits between the two. It doesn’t fit into relational tables, but it isn’t raw documents or media either. It carries tags, keys, metadata, or hierarchy that make it machine-readable, even if no fixed schema enforces its shape. JSON, XML, API responses, event logs, clickstream data, IoT messages, telemetry streams, and columnar formats like Avro, Parquet, and ORC all fall into this category.
The flexibility is what makes it so common. Semi-structured data can move between services, APIs, and workflows without needing a rigid structure up front. That’s why cloud-native tools, event-driven setups, and observability stacks all churn out semi-structured data.
Engineering teams produce it constantly, often without even thinking about it as an asset. In e-commerce, it’s clickstream events and evolving product catalog payloads. In industries like energy or manufacturing, it’s IoT sensor logs, so big and variable, no relational database can handle them. For SaaS or gaming, it’s user and player behavior events for analytics and experiments.
The persistent problem is schema drift. Since there’s no enforced structure, someone upstream might change a field name, reshuffle nested objects, or flip a data type, often without warning. Downstream systems (dbt models, Spark jobs, ML feature pipelines) can fail silently. Maybe a vendor tweaks their JSON payload, your ingestion pipeline doesn’t validate properly, and things go wrong quietly. By the time you notice, weeks of data might be corrupted or lost. The teams that work with this kind of data learn (sometimes the hard way) to treat schema registries and schema-on-read strategies (using tools like Avro, Protobuf) as must-haves, not nice-to-haves.
Quick side-by-side comparison:
| Structured | Semi-structured | Unstructured | |
|---|---|---|---|
| Schema | Fixed, predefined | Flexible, metadata-driven | None |
| Formats | SQL tables, spreadsheets, transactional records | JSON, XML, API payloads, event logs, Avro, Parquet | Emails, PDFs, documents, images, audio, video |
| Main strength | Consistency | Flexibility | Context |
| Main challenge | Rigid when formats change | Schema drift | Governance, search, classification |
| Queryability | SQL and BI tools | Needs parsing or schema-on-read | Needs indexing, embedding, or full-text search |
| Analytics readiness | High | Medium to high | Low in raw form |
| Best fit for | Transactions, reporting, ERP, CRM | Event pipelines, observability, product analytics | Document search, AI/RAG pipelines, knowledge retrieval |
| Governance | Manageable | Moderate, rises with drift | Hardest |
Real examples from production environments
Structured data is clearest where fast, consistent lookup matters most. Inditex (Zara’s parent company) uses RFID to track individual garments through distribution and in-store inventory, each item linked to defined fields that systems can query in real time. Delta does the same with bag tracking across the baggage journey, with status updates tied to bag IDs, flights, and routing checkpoints.
Semi-structured data shows up wherever digital platforms generate continuous event flows. Spotify’s engineering team has written about event delivery systems that process massive volumes of event data, with message types defined by schema, metadata, and service logic rather than relational tables.
Unstructured data becomes critical when the value is inside documents rather than records. RAKBANK digitized and indexed millions of customer documents to improve compliance workflows. Unum Group built a search system for policy information buried across Word and PDF contracts. In both cases, the data existed it was just locked in formats that were effectively unsearchable at scale.
Most production environments combine all three. A retailer might run structured data for inventory and payments, semi-structured data for app events and clickstream, and unstructured data for customer reviews and support conversations. A bank will likely combine transaction tables, API payloads, and document archives in the same operational workflow.
What questions each data type actually answers?
Structured data is great for questions you already know you want answered. Revenue by quarter. Return rate by region. Number of failed logins. Inventory at each location. These are well-formed questions with clear-cut fields. This kind of data is built for measurement.
Unstructured data kicks in when you don’t know the exact question up front, when you need to dig, compare, or find meaning buried in large amounts of narrative or multimedia. Contract reviews. Audit prep. Claims analysis. Root-cause investigations. Here, the challenge is less about counting, more about understanding.
Semi-structured data helps you trace what happened as systems run. Logs, event streams, telemetry, they all help you pinpoint where a process failed, see how users moved through an app, or spot what changed between two states. That’s why it’s so useful in observability, fraud detection, product analytics, and troubleshooting.
The strongest insight usually requires all three. A retailer might see rising returns in structured records, trace a broken checkout flow through semi-structured event data, and read customer frustration in reviews and support conversations. The number tells you something changed. The surrounding data explains what changed and why.
A new turn: unstructured data and AI pipelines
With large language models and retrieval-augmented generation (RAG) systems becoming the new normal, unstructured data is quickly moving from the edge to the core of data strategy.
RAG setups grab relevant info from documents, emails, contracts, or knowledge bases, then feed that to the language model. So the quality of your AI outputs depends directly on how well you’ve indexed, chunked, embedded, and stored your unstructured data. Vector databases store these high-dimensional embeddings, functioning as the storage layer for this use case.
Teams building these systems have noticed something a bit ironic: “unstructured” isn’t quite the right word. PDFs, support tickets, and chat logs all have some kind of implicit structure. If that structure changes, a knowledge base article gets redesigned, a helpdesk system tweaks its fields, your AI retrieval falls apart. And the failure isn’t always obvious. The AI keeps running, but the answers become less and less accurate. The lesson? Data engineering discipline still matters here, even when the data is unstructured.
Where storage architecture fits in
Data type doesn’t absolutely dictate your storage setup, but there are strong tendencies.
Unstructured data works best with object storage. When you’ve got mountains of files, documents, and images, object storage makes sense because it stores both content and metadata, which simplifies retrieval and indexing. S3-compatible object storage is the de facto standard for the API and access patterns. Once you’re juggling millions of files or API-driven access, shifting to object storage is almost always better than stretching traditional block storage to its limit.
For on-premises environments where you need to keep data local (compliance, latency, or cost reasons), DataCore Swarm provides S3-compatible object storage aimed at archives and large content repositories. Swarm’s approach to content-aware metadata tagging is particularly useful when you’re dealing with unstructured data that needs to be searchable without a separate indexing layer.
File storage still matters for shared access, legacy apps, or workflows needing traditional filesystem behavior – you’ll find plenty of environments where NFS or SMB shares aren’t going anywhere anytime soon.
Semi-structured data usually fits object storage, data lakes, or lakehouse platforms. JSON, Parquet, and telemetry grow fast and change often. Rigid tables are rarely the best starting point. Teams often keep this data in S3-compatible storage for retention, or use document databases for JSON-style records. For logs and observability data, platforms like Kafka are often part of the pipeline. You need storage that handles schema changes and large ingest volumes without constant rework.
For structured workloads – particularly databases, ERP systems, and transactional apps running in virtualized environments – HCI (hyperconverged infrastructure) storage is a strong fit. These workloads need predictable latency, fast writes, and rapid recovery. That said, HCI isn’t the only answer here. Plenty of structured database workloads run fine on cloud-managed databases like RDS or Cloud SQL, or bare-metal servers with local NVMe. The right choice depends on whether you’re virtualized and what your recovery requirements look like. Solutions like DataCore SANsymphony (virtualized block storage) or StarWind Virtual SAN (shared storage for virtualized workloads) sit close to the applications, which is exactly where this data needs to live.
Conclusion
If you’re looking for one practical next step: pick a single high-value unstructured source – customer support transcripts, sales call logs, contract archives – and build a pipeline to index it. Don’t try to boil the ocean. Start with something where you already suspect there’s signal you’re missing, and prove the value before scaling out. The teams that figure out how to query their unstructured text alongside their relational tables will have a real operational advantage over those still relying purely on SQL dashboards. Honestly, most organizations are closer to this than they think – the hard part isn’t the technology anymore, it’s committing to the data engineering work.
FAQ – Structured vs Unstructured Data: Differences, Examples and Use Cases
What is the difference between structured and unstructured data?
Structured data follows a fixed schema and is stored in rows and columns. You can query it with SQL and use it in dashboards. Unstructured data has no predefined format and includes documents, emails, images, and chat logs. Structured data works best for reporting and transactions. Unstructured data is better for context, search, and knowledge retrieval.
What is semi-structured data?
Semi-structured data sits between structured and unstructured data. It doesn’t fit neatly into relational tables, but it includes tags, keys, metadata, or nested hierarchy that make it machine-readable. Common examples include JSON, XML, API payloads, event logs, and telemetry data.
Which type of data is easiest to analyze?
Structured data is the easiest to analyze in raw form since it’s already organized into consistent fields. Semi-structured data usually needs parsing before analysis. Unstructured data requires indexing, document processing, full-text search, or AI tools before you can extract insights from it.
Why is unstructured data important for AI and RAG?
Unstructured data is critical for AI and retrieval-augmented generation because valuable knowledge lives in documents, emails, tickets, and chat histories. The quality of AI answers depends on how well you index, chunk, embed, and store this content. Poorly organized source data leads to weak retrieval and inaccurate outputs.
How can StarWind help support structured data workloads?
StarWind supports structured data workloads by providing shared storage for virtualized environments where performance, availability, and fast recovery matter. This makes it a practical fit for databases, ERP systems, and other business-critical applications that rely on consistent storage behavior.