Databases 15 min read

Unlocking Time‑Series Power: A Deep Dive into TimescaleDB

This article introduces TimescaleDB—a PostgreSQL extension for time‑series data—explaining its core concepts, data‑model choices, architecture, native compression, and provides step‑by‑step installation instructions on a CentOS 7 environment.

MaGe Linux Operations
MaGe Linux Operations
MaGe Linux Operations
Unlocking Time‑Series Power: A Deep Dive into TimescaleDB

TimescaleDB Overview

TimescaleDB is an open‑source time‑series database built as a PostgreSQL extension, inheriting full SQL support while adding optimizations for fast ingestion and complex queries on time‑series data.

TimescaleDB combines the ease of relational databases with the scalability traditionally associated with NoSQL solutions, offering the best of both worlds for time‑series workloads.

Key Benefits

Full SQL interface, including secondary indexes, joins, window functions, and sub‑queries.

Works with any PostgreSQL client or tool without changes.

Time‑oriented features, API functions, and optimizations.

Robust data retention policies.

Scalability

Transparent time/space partitioning for single‑node and future multi‑node scaling.

High write rates with batch commits, in‑memory indexing, and transaction support.

Efficient chunking to keep ingestion fast even at large volumes.

Parallel operations across chunks and servers.

What Is Time‑Series Data?

Time‑series data records how a system, process, or metric changes over time, ranging from sensor readings and stock prices to application login counts. Unlike traditional metrics that are often treated in isolation, time‑series data preserves the correlation between multiple measurements collected together.

Characteristics

Time‑centric: Every record includes a timestamp.

Append‑only: Data is primarily inserted, not updated.

Recent‑focused: Queries usually target recent intervals; old data is rarely overwritten.

Data Modeling

TimescaleDB supports both narrow‑table and wide‑table models. In a narrow model, each metric is stored as a separate series (e.g., cpu_1m_avg, free_mem) with its own tags, leading to many series when device IDs, locations, and types multiply. In a wide model, multiple metrics share the same timestamp row, reducing joins and improving ingest speed.

-- Example narrow‑table series definitions
{
  name: cpu_1m_avg,
  device_id: abc123,
  location_id: 335,
  dev_type: field
}
{
  name: free_mem,
  device_id: abc123,
  location_id: 335,
  dev_type: field
}
-- ...additional series for each metric/device combination

Choosing the model depends on query patterns: narrow tables excel when metrics are collected independently, while wide tables are faster for queries that need many metrics together.

Architecture & Concepts

Hypertables & Chunks

TimescaleDB abstracts many underlying PostgreSQL tables as a single hypertable . Internally, the hypertable is partitioned into chunks based on time intervals and optional space keys (e.g., device ID). Chunks are regular PostgreSQL tables, enabling efficient query planning and automatic data retention.

Hypertable and chunk diagram
Hypertable and chunk diagram

Native Compression

TimescaleDB’s built‑in job scheduler compresses large chunks asynchronously, converting row‑based storage to a columnar format while keeping queries transparent. Users continue to query the hypertable using standard SQL; compressed chunks are decompressed on‑the‑fly as needed.

Getting Started with TimescaleDB

TimescaleDB behaves like a regular PostgreSQL database, coexisting with other tables, supporting standard SQL, and integrating with common PostgreSQL tools.

Installation on CentOS 7

Below are the commands to install PostgreSQL 11, add the TimescaleDB repository, and install the extension.

sudo yum install -y https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql11-server postgresql11 postgresql11-devel
sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
sudo systemctl enable postgresql-11 && sudo systemctl start postgresql-11
# Add TimescaleDB repo
sudo tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/7/$basearch
enabled=1
gpgcheck=0
EOL
sudo yum clean all
sudo yum makecache
sudo yum install -y timescaledb-postgresql-11
# Enable the extension in postgresql.conf
sudo echo "shared_preload_libraries = 'timescaledb'" >> /var/lib/pgsql/11/data/postgresql.conf
# Restart PostgreSQL to load the extension
sudo systemctl restart postgresql-11
# Set a password for the postgres user
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'TimescaleDB@ZABBIX#2020!'"
# Allow remote connections (edit pg_hba.conf and postgresql.conf as needed)
# Example pg_hba entry:
host    all             all             0.0.0.0/0               md5

After restarting PostgreSQL, you can verify remote connectivity.

Remote connection test
Remote connection test

Once installed, create a hypertable with standard SQL:

CREATE TABLE measurements (
  time TIMESTAMPTZ NOT NULL,
  device_id TEXT,
  temperature DOUBLE PRECISION,
  humidity DOUBLE PRECISION
);
SELECT create_hypertable('measurements', 'time');

TimescaleDB now provides a powerful, SQL‑compatible platform for storing and analyzing time‑series data at scale.

Conclusion

By extending PostgreSQL, TimescaleDB offers the reliability and ecosystem of a relational database while delivering the performance and scalability required for modern time‑series workloads.

TimescaleDB animation
TimescaleDB animation
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

PostgreSQLcompressionTime SeriesTimescaleDBhypertable
MaGe Linux Operations
Written by

MaGe Linux Operations

Founded in 2009, MaGe Education is a top Chinese high‑end IT training brand. Its graduates earn 12K+ RMB salaries, and the school has trained tens of thousands of students. It offers high‑pay courses in Linux cloud operations, Python full‑stack, automation, data analysis, AI, and Go high‑concurrency architecture. Thanks to quality courses and a solid reputation, it has talent partnerships with numerous internet firms.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.