beVault evolves quickly.—Don't miss any news Subscribe to release notes

Technique

The silent duplication problem in Data Vault satellites

Satellites growing for no reason, distorted history, drifting storage costs. Anatomy of a bug that never throws an error.

7 min

A flaw that breaks nothing — and that's exactly the problem

Silent duplication doesn't fail any load. The pipeline shows green, dashboards render, nobody is alerted. It's just that a satellite meant to record three changes a year records three hundred instead.

The consequences show up elsewhere: volumes explode, history queries slow down, and above all metrics like “number of address changes” or “time between status changes” become wrong without anyone knowing why.

Common causes

  • A hash diff calculated on a set of columns including a technical timestamp, a batch number or a counter: each execution produces a different fingerprint.
  • Unstable normalization of null values, trailing spaces, or case between two executions or two pipelines.
  • Column order not fixed in the concatenation before hashing.
  • Float types or time-zoned dates that serialize differently depending on the engine.
  • A full reload of the source treated as a delta, without comparison to the last known state.

How to detect it in ten minutes

On each satellite, compare the row count to the number of distinct (key, content hash) pairs. A large gap signals rows that add no new information.

Complement this with a frequency measure: the average number of versions per key per month. When this value tracks the pipeline's run frequency rather than the actual business rhythm, the diagnosis is confirmed.

Fixing data without losing auditability

The temptation is to purge duplicates after the fact. That's risky: in a Raw Vault, history is authoritative, and any deletion must be traceable and justified.

The sound approach is to first fix the hash-calculation rule and normalization, start clean for subsequent loads, then treat existing history as a documented remediation operation, keeping a record of what was consolidated.

Preventing it by design

This flaw almost always comes from a rule implemented by hand, differently in each pipeline. When normalization and hash calculation are generated from the model, they're identical everywhere — including on sources added two years later.

beVault enforces these rules at generation time and natively embeds quality checks on volumes, freshness, and version consistency. Silent duplication becomes an alert, not a chance discovery during an audit.

Next step

You have the theory. See it in practice.