Hypercore is the TimescaleDB hybrid row-columnar storage engine, designed specifically for real-time analytics and powered by time-series data. The advantage of hypercore is its ability to seamlessly switch between row-oriented and column-oriented storage. This flexibility enables Timescale Cloud to deliver the best of both worlds, solving the key challenges in real-time analytics.

Hypercore’s hybrid approach combines the benefits of row-oriented and column-oriented formats in each Timescale Cloud service:

  • Fast ingest with rowstore: new data is initially written to the rowstore, which is optimized for high-speed inserts and updates.

  • Efficient analytics with columnstore: you create columnstore_policies that automatically move your data to the columnstore as it cools.

  • Faster queries on compressed data in columnstore: in columnstore conversion, hypertable chunks are compressed by more than 90%, and organized for efficient, large-scale queries more suitable for analytics. This saves on storage costs, and keeps your queries operating at lightning speed.

  • Full mutability with transactional semantics: regardless of where data is stored, hypercore provides full ACID support.

Since TimescaleDB v2.18.0

Best practice for using Hypercore is to:

  1. Enable columnstore

  2. Add a policy to move chunks to the columnstore at a specific time interval

    For example, 7 days after the data was added to the table:

    CALL add_columnstore_policy('crypto_ticks', after => INTERVAL '7d');

    See add_columnstore_policy.

  3. View the policies that you set or the policies that already exist

    SELECT * FROM timescaledb_information.jobs
    WHERE proc_name='policy_compression';

    See timescaledb_information.jobs.

You can also convert_to_columnstore and convert_to_rowstore manually for more fine-grained control over your data.

Chunks in the columnstore have the following limitations:

Keywords

Found an issue on this page?Report an issue or Edit this page in GitHub.