Skip to content

Key Concepts

To understand how GreptimeDB manages and serves its data, you need to know about these building blocks of GreptimeDB.


Similar to database in relational databases, a database is the minimal unit of data container, within which data can be managed and computed. Users can use the database to achieve data isolation, creating a tenant-like effect.

Time-Series Table

GreptimeDB designed time-series table to be the basic unit of data storage. It is similar to a table in a traditional relational database, but requires a timestamp column(We call it time index). The table holds a set of data that shares a common schema, it's a collection of rows and columns:

  • Column: a vertical set of values in a table, GreptimeDB distinguishes columns into time index, tag and field.
  • Row: a horizontal set of values in a table.

It can be created using SQL CREATE TABLE, or inferred from the input data structure using the auto-schema feature. In a distributed deployment, a table can be split into multiple partitions that sit on different datanodes.

For more information about the data model of the time-series table, please refer to Data Model.

Table Region

Each partition of distributed table is called a region. A region may contain a sequence of continuous data, depending on the partition algorithm. Region information is managed by Metasrv. It's completely transparent to users who send write requests or queries.

Data Types

Data in GreptimeDB is strongly typed. Auto-schema feature provides some flexibility when creating a table. Once the table is created, data of the same column must share common data type.

Find all the supported data types in Data Types.


The index is a performance-tuning method that allows faster retrieval of records. GreptimeDB uses the inverted index to accelerate queries.


The view is a virtual table that is derived from the result set of a SQL query. It contains rows and columns just like a real table, but it doesn’t store any data itself. The data displayed in a view is retrieved dynamically from the underlying tables each time the view is queried.


A flow in GreptimeDB refers to a continuous aggregation process that continuously updates and materializes aggregated data based on incoming data.