• Stars
    star
    324
  • Rank 125,305 (Top 3 %)
  • Language
    Rust
  • License
    Other
  • Created over 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Extension for more hyperfunctions, fully compatible with TimescaleDB and PostgreSQL πŸ“ˆ

CI

TimescaleDB Toolkit

This repository is the home of the TimescaleDB Toolkit team. Our mission is to ease all things analytics when using TimescaleDB, with a particular focus on developer ergonomics and performance. Our issue tracker contains more on the features we're planning to work on and the problems we're trying to solve, and our Discussions forum contains ongoing conversation.

Documentation for this version of the TimescaleDB Toolkit extension can be found in this repository at docs. The release history can be found on this repo's GitHub releases.

πŸ–₯ Try It Out

The extension comes pre-installed on all Timescale Cloud instances and also on our full-featured timescale/timescaledb-ha docker image.

If DEB and RPM packages are a better fit for your situation, refer to the Install Toolkit on self-hosted TimescaleDB how-to guide for further instructions on installing the extension via your package manager.

All versions of the extension contain experimental features in the toolkit_experimental schema. See our docs section on experimental features for more details.

πŸ’Ώ Installing From Source

Supported platforms

The engineering team regularly tests the extension on the following platforms:

  • x86_64-unknown-linux-gnu (Ubuntu Linux 20.04) (tested prior to every merge)
  • aarch64-unknown-linux-gnu (Ubuntu Linux 20.04) (tested at release time)
  • x86_64-apple-darwin (MacOS 12) (tested frequently on eng workstation)
  • aarch64-apple-darwin (MacOS 12) (tested frequently on eng workstation)

As for other platforms: patches welcome!

πŸ”§ Tools Setup

Building the extension requires valid rust (we build and test on 1.65), rustfmt, and clang installs, along with the postgres headers for whichever version of postgres you are running, and pgx. We recommend installing rust using the official instructions:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

and build tools, the postgres headers, in the preferred manner for your system. You may also need to install OpenSSl. For Ubuntu you can follow the postgres install instructions then run

sudo apt-get install make gcc pkg-config clang postgresql-server-dev-14 libssl-dev

Next you need cargo-pgx, which can be installed with

cargo install --version '=0.7.1' --force cargo-pgx

You must reinstall cargo-pgx whenever you update your Rust compiler, since cargo-pgx needs to be built with the same compiler as Toolkit.

Finally, setup the pgx development environment with

cargo pgx init --pg14 pg_config

Installing from source is also available on macOS and requires the same set of prerequisites and set up commands listed above.

πŸ’Ύ Building and Installing the extension

Download or clone this repository, and switch to the extension subdirectory, e.g.

git clone https://github.com/timescale/timescaledb-toolkit && \
cd timescaledb-toolkit/extension

Then run

cargo pgx install --release && \
cargo run --manifest-path ../tools/post-install/Cargo.toml -- pg_config

To initialize the extension atfer installation, enter the following into psql:

CREATE EXTENSION timescaledb_toolkit;

✏️ Get Involved

The TimescaleDB Toolkit project is still in the initial planning stage as we decide our priorities and what to implement first. As such, now is a great time to help shape the project's direction! Have a look at the list of features we're thinking of working on and feel free to comment on the features, expand the list, or hop on the Discussions forum for more in-depth discussions.

πŸ”¨ Testing

See above for prerequisites and installation instructions.

You can run tests against a postgres version pg12, pg13, pg14, or pg15 using

cargo pgx test ${postgres_version}

🐯 About TimescaleDB

TimescaleDB is a distributed time-series database built on PostgreSQL that scales to over 10 million of metrics per second, supports native compression, handles high cardinality, and offers native time-series capabilities, such as data retention policies, continuous aggregate views, downsampling, data gap-filling and interpolation.

TimescaleDB also supports full SQL, a variety of data types (numerics, text, arrays, JSON, booleans), and ACID semantics. Operationally mature capabilities include high availability, streaming backups, upgrades over time, roles and permissions, and security.

TimescaleDB has a large and active user community (tens of millions of downloads, hundreds of thousands of active deployments, Slack channels with thousands of members).

More Repositories

1

timescaledb

An open-source time-series SQL database optimized for fast ingest and complex queries. Packaged as a PostgreSQL extension.
C
16,259
star
2

promscale

[DEPRECATED] Promscale is a unified metric and trace observability backend for Prometheus, Jaeger and OpenTelemetry built on PostgreSQL and TimescaleDB.
Go
1,330
star
3

tsbs

Time Series Benchmark Suite, a tool for comparing and evaluating databases for time series data
Go
1,196
star
4

tobs

tobs - The Observability Stack for Kubernetes. Easy install of a full observability stack into a k8s cluster with Helm charts.
Shell
549
star
5

timescaledb-tune

A tool for tuning TimescaleDB for better performance by adjusting settings to match your system's CPU and memory resources.
Go
397
star
6

timescaledb-parallel-copy

A binary for parallel copying of CSV data into a TimescaleDB hypertable
Go
345
star
7

prometheus-postgresql-adapter

Use PostgreSQL as a remote storage database for Prometheus
Go
335
star
8

timescaledb-docker

Release Docker builds of TimescaleDB
Dockerfile
279
star
9

helm-charts

Configuration and Documentation to run TimescaleDB in your Kubernetes cluster
Shell
260
star
10

pg_prometheus

PostgreSQL extension for Prometheus data
C
213
star
11

timescaledb-docker-ha

Create Docker images containing TimescaleDB, Patroni to be used by developers and Kubernetes.
Python
134
star
12

examples

Collection of example applications and tools to help you get familiar with TimescaleDB
JavaScript
119
star
13

nft-starter-kit

Timescale NFT Starter Kit
Python
110
star
14

outflux

Export data from InfluxDB to TimescaleDB
Go
83
star
15

vector-cookbook

Timescale Vector Cookbook. A collection of recipes to build applications with LLMs using PostgreSQL and Timescale Vector.
Jupyter Notebook
77
star
16

opentelemetry-demo

A demo system for exploring the tracing features of Promscale
Python
61
star
17

streaming-replication-docker

TimescaleDB Streaming Replication in Docker
Shell
56
star
18

docs

Timescale product documentation πŸ“–
JavaScript
46
star
19

timescaledb-extras

Helper functions and procedures for timescale
PLpgSQL
39
star
20

benchmark-postgres

Tools for benchmarking TimescaleDB vs PostgreSQL
Go
37
star
21

promscale_extension

[DEPRECATED] Tables, types and functions supporting Promscale
PLpgSQL
37
star
22

docs.timescale.com-content

Content pages for TimescaleDB documentation
JavaScript
35
star
23

timescaledb-backup

Go
33
star
24

pgspot

Spot vulnerabilities in postgres SQL scripts
Python
28
star
25

timescaledb-wale

Dockerized WAL-E with an HTTP API
Python
21
star
26

terraform-provider-timescale

Timescale Cloud Terraform Provider
Go
17
star
27

homebrew-tap

TimescaleDB Homebrew tap, containing formulas for the database, tools, etc.
Ruby
17
star
28

pg_influx

InfluxDB Line Protocol Listener for PostgreSQL
C
16
star
29

python-vector

Jupyter Notebook
16
star
30

tsv-timemachine

Sample application for time aware RAG with Streamlit, LlamaIndex and Timescale Vector. Learn more at https://www.timescale.com/ai
Python
8
star
31

promscale-benchmark

Makefile
8
star
32

templates

Templates to get started with Timescale on Finance or Sensors (IoT)
PLpgSQL
7
star
33

timescale-extension-utils-rs

Rust
5
star
34

doctor

Rule-based recommendations about your timeseries database.
Python
4
star
35

web-developer-assignment

HTML
3
star
36

wikistream-docker

A Docker environment for https://github.com/timescale/wikistream
Shell
3
star
37

mta-timescale

Demo: Load MTA bus feeds into TimescaleDB
3
star
38

cloud-actions

Cloud public actions
Shell
3
star
39

aws-lambda-example

A sample serverless AWS Lambda time-series application.
Python
2
star
40

frontend-developer-assignment

HTML
2
star
41

pg_traceam

Simple table access method that just prints out what functions in the access methods and related functions that are called.
C
2
star
42

state_of_postgres

2019
SCSS
1
star
43

build-actions

GitHub actions for release pipelines (building, publishing, checking, etc.)
Shell
1
star
44

pgschema

1
star
45

docs-htmltojsx

A fork of react-magic html-to-jsx specifically modified to parse timescale docs
JavaScript
1
star
46

postgres_cheat_sheet

1
star
47

promscale_specs

Formal specifications for Promscale components
TLA
1
star