Structured vs Semi-Structured vs Unstructured Data

Data foundations · Classification

Structured, Semi-Structured and Unstructured Data: A Practical Guide

Classify tables, JSON, images and text by the information you need to analyse, then turn a mixed support dataset into measurable fields.

By Prakhar Shrivastava · Published 15 September 2026 · Practical learning guide

Three categories, one important qualification

Structured data follows a defined arrangement of fields, such as a table with a ticket ID, creation date and status. Semi-structured data carries keys, tags or nested organisation while allowing more variation; JSON and XML are common examples. Unstructured content, such as an image or free-form conversation, does not arrive as a ready-made table of the business facts you want to measure.

These labels describe how content is organised for a task. They do not mean an image file has no technical format, or that a spreadsheet is automatically clean. Google Cloud’s overview of unstructured data provides the broader distinction.

Classify the content, not just its extension

InputTypical classificationWhat an analyst should check
Sales table with typed columnsStructuredDoes one row mean an order or an order line?
JSON user profiles with optional nested fieldsSemi-structuredWhich fields and arrays are optional?
XML configuration documentSemi-structuredWhich tags carry the values you need?
Product photographUnstructured visual contentWhat labelled measurement will be extracted?
Video demonstrationUnstructured audiovisual contentHow will events and timestamps be defined?
Free-text customer message in a tableUnstructured content inside a structured containerHow will categories be assigned and validated?

A CSV can carry a consistent tabular dataset or contain irregular rows and long narrative fields. Inspect the contents and the agreed schema before giving a confident label. Likewise, a JSON object can obey a strict validation schema while still being stored in a flexible, nested representation.

BigQuery supports querying JSON directly, illustrating why semi-structured data does not automatically require abandoning SQL. See its JSON documentation.

Work through a mixed support dataset

Imagine three invented support tickets. Each has a ticket ID, a text message and an optional screenshot. The messages are “Parcel not here”, “Charged twice” and “Delivery late; also charged twice”. The team wants to count tickets mentioning delivery and billing problems.

Define the unit as one ticket and allow multiple issue labels. A single ticket can legitimately belong to both categories. An analyst could create the following review table after reading each message:

ticket_iddelivery_issuebilling_issueEvidence
1YesNoParcel not here
2NoYesCharged twice
3YesYesDelivery late; also charged twice

Delivery appears in two tickets and billing appears in two. There are three tickets, but four label assignments. Adding the category counts and calling the result “total tickets” would be wrong. If you need mutually exclusive reporting, define a primary-issue rule and acknowledge what that rule hides.

The screenshot remains unstructured visual content even after the issue flags are stored in columns. Extracting fields creates a structured representation; it does not make the original evidence unnecessary.

Validate the extraction process

  1. Define each label. State whether “Where is my parcel?” counts as delivery even when no delay is confirmed.
  2. Allow uncertainty. Use an unknown or needs-review state when the evidence is insufficient.
  3. Review a sample. Compare extracted labels with independently reviewed examples and inspect disagreements.
  4. Track the method. Record the rules or model version used, so a later change can be investigated.
  5. Preserve the denominator. Distinguish tickets, messages and label assignments in each chart.

A keyword rule might miss “It never arrived” or misread “I was not charged twice”. An AI classifier may also misinterpret context. A confident-looking label is not proof of a correct classification. Start with a small labelled sample and examine errors before applying the method to a larger file.

Answer the question with a concrete example

A concise answer is: “A ticket table is structured; a nested JSON export is semi-structured; the message text and screenshots contain unstructured evidence. I can derive issue flags from that evidence, but I need definitions and quality checks before counting them.”

If asked which two inputs are unstructured, a product image and a demonstration video are usually clearer examples than JSON profiles and XML settings. Explain the distinction rather than memorising a list of extensions.

For a portfolio exercise, create ten synthetic tickets, write a labelling guide and show one ambiguous case. Report both category counts and total distinct tickets. Then use the business case guide to connect the analysis to a decision, such as which support issue needs further investigation.

Discover more from Data Analyst Interview

Subscribe now to keep reading and get access to the full archive.

Continue reading