Subscribe to the Timescale Newsletter

By submitting you acknowledge Timescale's  Privacy Policy.

How to Install TimescaleDB on Azure

How to Install TimescaleDB on Azure

TimescaleDB is a powerful, open-source time-series database built on top of PostgreSQL to efficiently manage time-series data, events, and analytics. Optimized for fast ingest and complex queries, it speaks “full SQL” and is correspondingly easy to use like a traditional relational database, yet scales in ways previously reserved for NoSQL databases. 

This guide will walk you through the process of setting up TimescaleDB on Microsoft Azure, ensuring you have a scalable and high-performance database ready to handle your time-series data needs.

What you'll learn:

  • Getting started with Azure
  • Setting up your VM instance
  • Installing TimescaleDB
  • Configuring PostgreSQL
  • Using TimescaleDB

Get Started With Azure and TimescaleDB

First, head over to Azure and create your Azure account. Once you've logged into the Azure portal, you'll see a dashboard similar to this:

The Azure dashboard

Create a Virtual Machine (VM)

1. Navigate to the Azure Marketplace: In the Dashboard, click on "Create a resource" and search for "Ubuntu Server 20.04 LTS." Select it from the list.

The Azure marketplace page with the option Ubuntu Server selected with a green frame around it

2. Configure the VM: Click on "Create" and follow these steps:

Basics: 

  • Subscription: Select your subscription.
  • Resource group: Create a new resource group named timescale or use an existing one.
  • Virtual machine name: Enter timescale-vm.
  • Region: Select your preferred region.
  • Image: Ensure "Ubuntu Server 20.04 LTS" is selected.
  • Size: Select Standard_B1s for this tutorial.


Administrator account:

  • Authentication type: Select "Password".
  • Username: Enter your preferred username. We will use "timescale".
  • Password: Enter a strong password.   
The Azure page where you can create a virtual machine
  • Disks: Use the default settings for simplicity.
  • Networking: Use the default settings.
  • Management: Use the default settings.
  • Advanced: Use the default settings.
  • Tags: Optionally, add tags for resource management.
  • Review + create: Review your settings.
The create a virtual machine page with the option Review + create selected with a green frame around it

Click on "Create."

Azure's Create a VM page. The Create button is highlighted with a green frame around it

Once the deployment is completed, click on "Go to resource."

Azure's deployment page. The Go to resource button is highlighted with a green frame around it.

Connect to your VM

1. Once your VM is deployed, go to the "Overview" section of your VM and click on "Connect".

Azure's Timescale VM page. The Connect dropdown is highlighted with a green frame around it.

2. Select the SSH using Azure CLI. Click on "Select."

Azure's Timescale VM page. The Select button is highlighted with a green frame around it.

3. Follow the instructions to connect to your VM using SSH. Check the policies, and then click on "Configure + connect."

Azure's Timescale VM page. The Configure + connect button is highlighted with a green frame around it.

4. A tab will open. Click on "Apply" to continue.

Azure's Timescale VM page. The Apply button is highlighted with a green frame around it.

5. Finally, the terminal will open. The connection is established and now you can go on with the next step, which is installing TimescaleDB.

Azure's Timescale VM page. The terminal is open at the bottom of the page.

Install TimescaleDB

1. Add TimescaleDB PPA:

sudo apt install gnupg postgresql-common apt-transport-https lsb-release wget

sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

echo "deb https://packagecloud.io/timescale/timescaledb/ubuntu/ $(lsb_release -c -s) main" | sudo tee /etc/apt/sources.list.d/timescaledb.list

wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg

sudo apt update
The command output

2. Install TimescaleDB:

sudo apt install timescaledb-2-postgresql-16 postgresql-client

Configure PostgreSQL

1. Check PostgreSQL Version (Ensure it shows psql (PostgreSQL) 16.x):

psql --version

The command output

2. Modify configuration:

cd /etc/postgresql/16/main
sudo chmod 644 postgresql.conf
nano postgresql.conf
The command output

3. Update postgresql.conf:

Set listen_addresses to '*':  

listen_addresses = '*'

Set shared_preload_libraries to timescaledb:

shared_preload_libraries = 'timescaledb'

Save and exit the editor.

The command output

4. Tune PostgreSQL:

sudo timescaledb-tune
The command output


5. Restart PostgreSQL:

sudo systemctl restart postgresql

6. Switch to PostgreSQL user:

sudo su - postgres

Using TimescaleDB

  1. Access PostgreSQL:
psql -U postgres

2. Create database:

CREATE DATABASE tutorial;

3. Connect to the database:

\c tutorial

4. Initialize TimescaleDB extension:

CREATE EXTENSION IF NOT EXISTS timescaledb;

5. Create a hypertable:

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


6. Insert data:

INSERT INTO conditions(time, location, temperature, humidity)
VALUES (NOW(), 'office', 70.0, 50.0);

7. Query data:

SELECT * FROM conditions ORDER BY time DESC LIMIT 100;
The query output

Next Steps

You now have TimescaleDB up and running on Azure. Explore more with sample datasets and advanced tutorials available in the TimescaleDB documentation. If you have any questions, feel free to join our Slack community or check out our GitHub repository (GitHub ⭐ are welcome!). 

For smaller teams wanting to focus on application development and not their database or enterprises looking for scale, cost-effectiveness, and the peace of mind of a managed solution (with one-click high availability, forking, connection pooling, a low-cost storage tier for older data, SOC 2 Type 2 compliance, and much more), try Timescale Cloud. It’s free for 30 days, no credit card required. 

Ingest and query in milliseconds, even at terabyte scale.
This post was written by
5 min read
PostgreSQL, Blog
Contributors

Related posts