DE Types of Data

Not all data looks the same. A spreadsheet of sales numbers, a photo from a customer's review, and a system log file are all data — but they require entirely different storage systems, processing tools, and engineering approaches. Knowing the different types of data is foundational to every decision a data engineer makes.

The Three Main Categories

Data engineering divides data into three broad types: structured, semi-structured, and unstructured. Each type describes how organized and predictable the data is.

Structured Data

Structured data fits neatly into rows and columns — like a spreadsheet or a relational database table. Every record has the same fields, and every field has a defined data type. A customer table might have columns for customer ID, name, email, and signup date. Every row follows that exact pattern.

Structured data is the easiest to query and analyze. SQL works naturally with it. It powers most traditional business reporting and is the backbone of databases used in banks, hospitals, and retail systems.

Example: Customer Table (Structured)
+----+------------+----------------------+------------+
| ID | Name       | Email                | Signup Date|
+----+------------+----------------------+------------+
| 1  | Sara Patel | sara@example.com     | 2024-01-15 |
| 2  | Tom Osei   | tom@example.com      | 2024-02-03 |
| 3  | Lin Huang  | lin@example.com      | 2024-03-21 |
+----+------------+----------------------+------------+

Semi-Structured Data

Semi-structured data has some organizational structure but does not fit into a rigid table format. JSON and XML are the most common examples. Each record may have different fields, nested objects, or arrays. It carries its own structure within the data itself using tags, keys, and values.

Web APIs almost always return semi-structured JSON data. Log files often use a semi-structured format. Semi-structured data is more flexible than structured data, but harder to query with traditional SQL without additional processing.

Example: Product Data (Semi-Structured JSON)
{
  "product_id": "P101",
  "name": "Wireless Headphones",
  "specs": {
    "battery": "30 hours",
    "color": ["black", "white"],
    "bluetooth": "5.2"
  },
  "reviews": [
    {"user": "Tom", "rating": 5},
    {"user": "Lin", "rating": 4}
  ]
}

Notice that the "specs" object and "reviews" array would not fit into a single flat row. This flexibility is why JSON is popular for APIs — different products can have different attributes without forcing a rigid schema.

Unstructured Data

Unstructured data has no predefined format or organization. Images, videos, audio files, PDF documents, emails, and social media posts are all unstructured. A data engineering system cannot simply query a photo with SQL. Accessing and processing unstructured data requires specialized tools.

Unstructured data makes up the majority of data created in the world. Processing it often involves machine learning — for example, using a computer vision model to extract text from images or a natural language processing model to analyze customer reviews.

A Comparison Diagram

Type              Example              Storage           Query Tool
------------------|--------------------|------------------|------------------
Structured        Database table       Relational DB      SQL
Semi-Structured   JSON file, XML log   Data Lake, NoSQL   SQL + parsing tools
Unstructured      Image, video, email  Object storage     ML models, search

Two More Ways to Classify Data

Beyond structure, data engineers also think about how data moves through time.

Batch Data

Batch data accumulates over a period and gets processed together at a scheduled time. A company that processes all payroll data once per month uses batch processing. Batch systems are simpler to build but introduce a delay between when data is created and when it is available for analysis.

Streaming Data

Streaming data flows continuously in real time. A fraud detection system that checks every credit card transaction the moment it happens uses streaming data. Streaming systems are more complex to build but deliver results instantly.

Batch Data:
Events ---> Collect for 24 hours ---> Process all at once ---> Results

Streaming Data:
Event 1 ---> Process immediately ---> Result 1
Event 2 ---> Process immediately ---> Result 2
Event 3 ---> Process immediately ---> Result 3

First-Party vs Third-Party Data

Data engineers also encounter data divided by its origin.

First-Party Data

First-party data comes directly from a company's own systems and interactions. A website's analytics, customer purchase histories, and internal employee records are all first-party data. Organizations own and control this data fully.

Third-Party Data

Third-party data comes from external sources. A company might purchase demographic data from a market research firm or receive location data from a mapping provider. Third-party data enriches internal data but comes with licensing restrictions and quality concerns the data engineer must account for.

Why Data Types Matter for Engineering Decisions

Every storage and processing decision depends on data type. A relational database is the right choice for structured transactional data. A data lake is the right choice for raw, mixed-format data including semi-structured and unstructured files. A streaming platform like Apache Kafka is the right choice for real-time event data.

Choosing the wrong storage or processing tool for a data type leads to slow queries, storage waste, or outright failures. A data engineer who understands data types from the start avoids costly redesigns later.

Summary

Data comes in three main structural types: structured (tables), semi-structured (JSON, XML), and unstructured (images, video). It also varies by movement pattern: batch or streaming. Understanding these distinctions helps data engineers choose the right tools and design systems that handle real-world data correctly from the beginning.

Leave a Comment

Your email address will not be published. Required fields are marked *