Introduction
Get started with TimescaleDB on Google Axion C4A
Create a firewall rule for Grafana/TimescaleDB
Create a Google Axion C4A Arm virtual machine on GCP
Set up TimescaleDB on Arm64
Ingest real-time sensor data on Arm64
Install Grafana and configure the TimescaleDB data source
Build a live sensor temperature dashboard
Next Steps
In this section, you prepare an Arm64-based SUSE Linux Enterprise Server (SLES) virtual machine and install TimescaleDB by building it from source. Building from source ensures the database extension is fully optimized for Arm64, which is especially important for high-ingest and time-series workloads.
Linux Arm64 VM (SUSE)
|
v
PostgreSQL 15
|
v
TimescaleDB 2.25.0 Extension
TimescaleDB provides time-series optimizations on top of PostgreSQL, making it ideal for high-ingest sensor workloads.
TimescaleDB must be compiled against PostgreSQL, so development headers and build tools are required.
sudo zypper refresh
sudo zypper install \
cmake \
gcc gcc-c++ make \
git \
libopenssl-devel \
postgresql15 \
postgresql15-server \
postgresql15-server-devel \
postgresql15-devel
readline-devel, choose Solution 1 (vendor change/downgrade). This avoids dependency conflicts on SUSE and ensures compatibility with PostgreSQL development libraries.Before using PostgreSQL, its data directory must be initialized. The following command runs as the postgres system user to create the data directory, initialize system tables, and set default configurations:
sudo -u postgres initdb -D /var/lib/pgsql/data
Enable and start PostgreSQL:
sudo systemctl enable postgresql
sudo systemctl start postgresql
Verify PostgreSQL is running:
psql --version
The output is similar to:
psql (PostgreSQL) 15.10
Building TimescaleDB from source ensures native Arm64 compilation and optimal performance.
Download the official TimescaleDB source code and check out version 2.25.0 to ensure version consistency throughout this Learning Path:
git clone https://github.com/timescale/timescaledb.git
cd timescaledb
git checkout 2.25.0
According to the release notes , TimescaleDB 2.16.0 introduces performance optimizations for DML on compressed chunks, improving upsert operations by 100× and update/delete operations by 1000× in some cases.
The Arm Ecosystem Dashboard recommends TimescaleDB 2.16.0 or higher for Arm platforms.
./bootstrap
cd build
make -j$(nproc)
sudo make install
This compiles TimescaleDB natively for Arm64.
TimescaleDB must be preloaded when PostgreSQL starts.
Using a suitable editor and sudo, edit /var/lib/pgsql/data/postgresql.conf and add the following line:
shared_preload_libraries = 'timescaledb'
This update:
sudo systemctl restart postgresql
Enable TimescaleDB at the database level by creating the sensors database and loading the extension:
sudo -u postgres psql
CREATE DATABASE sensors;
\c sensors
CREATE EXTENSION IF NOT EXISTS timescaledb;
Verify the installed version:
SELECT extversion FROM pg_extension WHERE extname='timescaledb';
The output is similar to:
sensors=# SELECT extversion FROM pg_extension WHERE extname='timescaledb';
extversion
------------
2.25.0
(1 row)
Press Ctrl+D to exit.
This confirms that TimescaleDB is installed correctly and the expected version is active.
You’ve successfully:
Next, you’ll create a real-time sensor data ingestion pipeline using Python to continuously insert time-series data into TimescaleDB.