InfluxDB
01 / 02

Data Model: Points, Tags & Cardinality

Data Model: Points, Tags & Cardinality

Points, Measurements, Tags & Fields

A point is a measurement name + tag set + field set + timestamp — the fundamental write unit, roughly a "row." A measurement (roughly a "table") groups related series, e.g. "cpu_usage."

# line protocol
cpu_usage,host=server01,region=us-west value=64.2 1633024800000000000
#           ^^^^^^^^^^^^^^^^^^^^^^^^ tags (indexed)   ^^^^^ field (not indexed)

Tags are indexed, string-only metadata for filtering/grouping (host, region). Fields hold the actual measured values and are NOT indexed. Filtering by a tag uses the index (fast); filtering by a field scans directly (slower) — this asymmetry drives all tag/field modeling decisions.

Series Cardinality

Every unique measurement + tag-set combination is a distinct series. Putting a high-cardinality value (a unique request ID, a raw sensor reading) into a tag instead of a field can explode series count and degrade both write and query performance — the single most common InfluxDB modeling mistake.

Buckets (2.x) vs. Database + Retention Policy (1.x)

InfluxDB 2.x's bucket combines what 1.x split into a separate database + retention policy into one named storage location with its own retention duration.

Batching Writes

Sending one write request per point wastes per-request overhead at high write volumes — batch many points into a single write request to significantly improve throughput.

Keep your own version of these notes — editable, searchable, and organised by your stack.

Start free