DataOps

What is a data historian, and how does it differ from a SQL database?

Short answer

A data historian is a time-series store for process data. Each record holds a tag, a value, a timestamp and a quality code. It is built for high write rates and long retention, and it often compresses data, so its settings limit what a later analysis can see.

What a historian stores

A control system reads many tags at short intervals. A historian stores each reading with its timestamp and a quality code, such as good or uncertain. Data is written continuously, kept in time order, and usually queried as one tag over a time range.

The difference from a SQL database lies in the write load and the storage logic. A historian is optimised for constant, wide writes and retains data for long periods, often compressing it. Compression methods such as deadband or swinging-door are lossy: they drop small changes. Interpolation on read rebuilds values between stored points. The trend looks smooth, but it is not the raw signal.

A hypothetical data volume

Hypothetical line: 500 tags, each sampled once per second.

  • Rows per day: 500 × 86,400 = 43,200,000
  • If each row needs 16 bytes for timestamp and value (an assumption), the raw size is 43,200,000 × 16 = 691,200,000 bytes, about 691 MB (decimal) per day.

This is an upper bound without compression. A deadband setting can reduce it, but by an amount that depends on how each tag behaves. A large deadband can remove small but meaningful changes that a model needs, so check the setting before training.

Misreading historian data

The first mistake is treating the historian as a complete raw record. Compression and interpolation mean a query can return values that were never stored. The second is treating aggregated tags as raw samples; they answer different questions. The third is ignoring quality codes, so values marked uncertain or bad enter a model unnoticed. The fourth is mixing time zones, such as UTC and local time, which can put events in the wrong order.

Follow-up questions

Can I train a model directly on historian data?

Yes, after checking the compression settings, quality codes and time zone. Compression can hide changes, and interpolation can alter the signal a model sees. For a short period, compare a raw export with the historian values to confirm they agree before relying on them.

Can a historian and a SQL database work together?

Yes. Process data can stay in the historian while batch, product and shift information lives in SQL. The two are joined on time and identifiers such as batch numbers. Confirm the join keys have the same format on both sides before trusting the result.

Sources

Example numbers are hypothetical, not measured field results.

Related questions

All questions