Key Concepts
To understand how GreptimeDB manages and serves its data, you need to know about these building blocks of GreptimeDB.
Database
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.
Index
The index
is a performance-tuning method that allows faster retrieval of records. GreptimeDB uses the inverted index to accelerate queries.
View
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.
Flow
A flow
in GreptimeDB refers to a continuous aggregation process that continuously updates and materializes aggregated data based on incoming data.