---
title: InfluxDB data schema
description: InfluxDB uses a tabular data schema for displaying raw data in Data Explorer and for returning query results in annotated CSV syntax.
url: https://docs.influxdata.com/influxdb/v2/reference/key-concepts/data-schema/
estimated_tokens: 790
product: InfluxDB OSS v2
version: v2
---

# InfluxDB data schema

This page documents an earlier version of InfluxDB OSS. [InfluxDB 3 Core](/influxdb3/core/) is the latest stable version.

#### API token hashing is enabled by default in InfluxDB OSS 2.9.0

Stronger token security: tokens are stored as hashes on disk, so a copy of the database file doesn’t expose usable tokens. Existing tokens are hashed on first startup and the original strings can’t be recovered afterward — **capture any plaintext tokens you still need before you upgrade**.

For more information, see [Token hashing](/influxdb/v2/admin/tokens/#token-hashing).

InfluxDB [data elements](/influxdb/v2/reference/key-concepts/data-elements/) are stored in **time-structured merge tree (TSM)** and **time series index (TSI)** files to efficiently compact stored data.

InfluxDB also provides a **tabular data schema** that includes the following:

-   [Annotation rows](#annotation-rows)
-   [Header row](#header-row)
-   [Data rows](#data-rows)
-   [Other columns](#other-columns)
-   [Group keys](#group-keys)

The **tabular data schema is used for the following**:

-   To [view raw data](/influxdb/v2/query-data/execute-queries/data-explorer/#view-raw-data) when [exploring metrics with InfluxDB](/influxdb/v2/visualize-data/explore-metrics)
-   To return query results in [annotated CSV syntax](/influxdb/v2/reference/syntax/annotated-csv/)

## Annotation rows

Annotation rows describe column properties, for example:

-   `#group`
-   `#datatype`
-   `#default`

## Header row

The header row defines column labels that describe data in each column, for example:

-   `table`
-   `_time`
-   `_value`
-   `_field`
-   `_measurement`
-   tag key names (without underscore prefix): `tag-1`, `tag-2`

## Data rows

Each data row contains the data specified in the header row for one [point](/influxdb/v2/reference/glossary/#point).

## Other columns

In addition to the columns in each data row (specified in the header row), the following columns are optional:

-   `annotation`
-   `result`
-   `table`

## Group keys

Determine the contents of output tables in Flux by grouping records that share common values in specified columns. Learn more about [grouping your data with Flux](/influxdb/v2/query-data/flux/group-data/).

[key concepts](/influxdb/v2/tags/key-concepts/)
