<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Handling Time-Series Data in a Relational DBMS: Challenges and Solutions - Abstract</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jan Kristof Nidzwetzki</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Timescale, Inc</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Storing and analyzing time-series data, such as stock prices or sensor readings, is crucial for many applications, and database management systems (DBMS) are often used for this purpose. However, handling timeseries data poses challenges for DBMS, as the system needs to continuously be able to insert new data without blocking due to parallel running queries or maintenance operations. Additionally, datasets can become large, and analytical queries that utilize aggregates are common (e.g., obtaining the maximum and average temperature per sensor per hour over the last 24 hours). To meet the requirements of these time-based use cases, specialized DBMS tailored for time-series data have been developed. However, many developers already know how to write queries using the structured query language (SQL), and most application architectures already rely on a relational DBMS like PostgreSQL. Moreover, they prefer to use a familiar, well-established, and proven software component rather than introducing new technology. Unfortunately, PostgreSQL does not handle time-series data well. TimescaleDB is an open-source extension for PostgreSQL that enhances its ability to eficiently handle timeseries data. The extension introduces several features to PostgreSQL: 1. Operators for managing time-series data within SQL, including functions like time_bucket(), which facilitates grouping and aggregation queries over specific time intervals. 2. Automatic partitioning of large tables. TimescaleDB uses hypertables to partition data. A hypertable consists of multiple PostgreSQL tables called chunks. 3. Optimized query plans, which are designed to handle time-series data efectively. For instance, plan-time and execution-time partition pruning allow it to process only partitions that contain the required data.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>In my presentation, I will discuss the core principles of
managing time-series data using TimescaleDB, as well as
the challenges I have worked on in the past few months.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>