# Snapshot

> A snapshot is a full copy of a source as it was at one point in time, either replacing the last copy or kept with its date.

A snapshot is a full copy of a source as it was at one point in time. A snapshot pipeline reads the whole source on a schedule and either replaces the target or keeps each copy with its date, deleting copies older than a retention period.

For example, a finance team needs each account's balance as it stood at the end of every month, to report and to audit later. A monthly snapshot pipeline copies the whole balances table on the last day of each month into a target table with a `snapshot_date` column. A year later, the table holds twelve dated copies, and a query for March's balances reads the rows with March's snapshot date, even though the source only knows today's balances.

A snapshot that replaces its target each run, often called a full refresh, is the simplest way to keep a small reference table in sync: a list of countries, a currency table, a few thousand products. It needs no change tracking in the source and recovers from any error by running again. Its cost grows with the size of the source, so it stops being practical for large tables that change a little each day.

Dated snapshots grow by one copy per run, so they need a retention rule, such as daily copies for ninety days and month-end copies for seven years, and deleting old copies should be part of the pipeline rather than a manual task. Comparing two snapshots shows what changed between them, a slower but simpler alternative to [change data capture](https://emolysis.com/glossary/change-data-capture). See also [SCD Type 2](https://emolysis.com/glossary/scd-type-2) and [partitioning](https://emolysis.com/glossary/partitioning).

On most platforms, a dated snapshot table is partitioned or clustered by its snapshot date, so reading one date and dropping expired ones touch only those rows. See also [incremental load](https://emolysis.com/glossary/incremental-load).

Snapshots suit small sources without change tracking and data that must be kept as of a date, such as month-end balances. For sources that can tell you what changed, an [incremental load](https://emolysis.com/glossary/incremental-load) is cheaper. [Snapshot](https://emolysis.com/shapes/snapshot) is one of Emolysis's ten pipeline shapes.

---

Page: https://emolysis.com/glossary/snapshot. Emolysis is a product of Bandpey GmbH, Munich, Germany. It is in private development, and nothing is released yet.
