Skip to content

TimescaleDB

Bases: Spout

__init__(output, state, **kwargs)

Initialize the TimescaleDB class.

Parameters:

Name Type Description Default
output BatchOutput

An instance of the BatchOutput class for saving the data.

required
state State

An instance of the State class for maintaining the state.

required
**kwargs Any

Additional keyword arguments.

{}

Using geniusrise to invoke via command line

genius TimescaleDB rise \
    batch \
        --output_s3_bucket my_bucket \
        --output_s3_folder s3/folder \
    none \
    fetch \
        --args host=localhost port=5432 user=postgres password=postgres database=mydb query="SELECT * FROM hypertable" page_size=100

Using geniusrise to invoke via YAML file

version: "1"
spouts:
    my_timescaledb_spout:
        name: "TimescaleDB"
        method: "fetch"
        args:
            host: "localhost"
            port: 5432
            user: "postgres"
            password: "postgres"
            database: "mydb"
            query: "SELECT * FROM hypertable"
            page_size: 100
        output:
            type: "batch"
            args:
                bucket: "my_bucket"
                s3_folder: "s3/folder"

fetch(host, port, user, password, database, query, page_size=100)

📖 Fetch data from a TimescaleDB hypertable and save it in batch.

Parameters:

Name Type Description Default
host str

The TimescaleDB host.

required
port int

The TimescaleDB port.

required
user str

The TimescaleDB user.

required
password str

The TimescaleDB password.

required
database str

The TimescaleDB database name.

required
query str

The SQL query to execute.

required
page_size int

The number of rows to fetch per page. Defaults to 100.

100

Raises:

Type Description
Exception

If unable to connect to the TimescaleDB server or execute the query.