October has arrived, and with it the fall. According to an interesting character, it's also Libra β season, a phase of balance. It works for us, as this release restores the balance within QuestDB's production reliability. Chasing maximum performance and cutting-edge features is our favourite game. But every now and then, it's essential to double-back and smooth out the edges so that the overall experience presents consistent excellence. And, well, we'll keep improving performance too.
Download, upgrade, and prepare for the seasonal feasts. π
For the full release notes and bug fixes, see GitHub.
Breaking Changes π₯β
Though not generally breaking, please be aware of the following:
- Logging level adjustments: Some log messages previously logged at the
INFO
level have been changed toDEBUG
. This reduction in log verbosity may impact monitoring systems relying on these messages. Adjust logging configurations as necessary.
New features π£β
Web Console UI tabsβ
The QuestDB Web Console features tabs for better query management. Tabs are archived upon closing and can be brought back from the history section as needed. They can be labelled, too, for easy identification.
Whether you're comparing multiple queries or switching between datasets, tabs streamline your workflow β no more losing track of open queries.
New financial function spread_bps
β
Introducing the spread_bps
function, designed for quick financial insights. By
calculating the difference between two numeric values (e.g., bid and ask prices)
in basis points, this function streamlines your financial data analysis.
SELECT spread_bps(1.5760, 1.5763)
Perfect for traders looking to analyze bid-ask spreads, spread_bps
quickly
calculates the basis point difference between prices, speeding up your analysis.
Read the docs for more information.
By demand! New greatest
and least
functionsβ
We've added greatest and least, two simple yet powerful functions that help you find the maximum or minimum value from a list of expressions, making it easier to compare data across multiple columns or values.
SELECT greatest(11, 3, 8, 15)
Returns:
greatest |
---|
15 |
SELECT least(11, 3, 8, 15)
Returns:
least |
---|
3 |
Interval functions for quick date filteringβ
To simplify date queries, weβve introduced today()
, tomorrow()
, and
yesterday()
, which return intervals representing entire days in UTC. No more
need to manually define time ranges.
SELECT true as in_today FROM trades
WHERE now() IN today()
LIMIT -1;
Read the docs for more information.
Flexible timezone support for date intervalsβ
These interval functions also support timezone adjustments, allowing you to work with localized day intervals effortlessly. Specify a timezone string to adjust the interval accordingly.
SELECT today() as today, today('CEST') as adjusted
Returns:
today | adjusted |
---|---|
('2024-10-08T00:00:00.000Z', '2024-10-08T23:59:59.999Z') | ('2024-10-07T22:00:00.000Z', '2024-10-08T21:59:59.999Z') |
This function allows the user to specify their local timezone and receive a UTC
interval that corresponds to their 'day'. In this example, CEST
is a +2h
offset, so the CEST
day started at 10:00 PM
UTC
the day before.
New aggregate function string_distinct_agg
β
The string_distinct_agg
function concatenates unique string values into a
single, delimited string, making it perfect for creating summaries of distinct
dataset entries.
To see it in action, suppose we want to find all the distinct sky cover types observed in the weather tablein our public demo:
SELECT string_distinct_agg(skyCover, ',') AS distinct_sky_covers
FROM weather;
Read the docs for more information.
New integrationsβ
We're always looking for popular tools and projects to connect with QuestDB.
This release brings two more:
-
Bento by Warpstream Labs: In the words of Bento they provide: Fancy stream processing made operationally mundane. Indeed, and now even fancier with a fresh QuestDB component.
-
Redpanda Connect: Formerly Benthos. Comes with a QuestDB output component that can be used as a sink for your stream processing data. Read our docs for more information.
Performance πππβ
As always!...
-
Static metadata cache: Implemented a static metadata cache to improve performance by reducing the overhead associated with frequent metadata access. This enhancement speeds up query compilation and execution.
-
Optimized partition reloads: Reduced unnecessary reloads of
TableReader
partitions, which enhances query performance, especially in environments with high data ingestion rates and frequent queries. -
Improved parallel
GROUP BY
execution: Optimized parallelGROUP BY
operations by eliminating redundant bytecode generation. This results in faster execution times for complex aggregation queries. -
Faster Web Console queries: You'll notice improved performance during the highlighting and execution of queries with SQL comments in the editor.
General improvements π οΈβ
From community feedback...
-
Enhanced log compatibility: Added a configuration option to control verbose log levels, improving compatibility with log readers and monitoring tools that require specific log formats or verbosity levels.
-
RedHat OpenShift Compatible Docker Image: Beginning with this release, QuestDB Docker images with a
-rhel
suffix are now compatible with RedHat's OpenShift container orchestration platform.
InfluxDB Line Protocol improvements πͺβ
Our core ingestion format, InfluxDB Line Protocol (ILP) keeps getting better:
-
Detailed ILP error messages: Enhanced the server logs to include specific error messages indicating the exact line that caused a receive buffer overflow during ILP ingestion. This aids in troubleshooting and correcting data formatting issues.
-
ILP client row cancellation: The ILP client now supports cancelling the current row during data ingestion. This allows for greater control when writing data and helps prevent incomplete or erroneous data from being committed.
-
ILP traffic to Prometheus: Introduced metrics to monitor ILP (Influx Line Protocol) traffic volumes over both TCP and HTTP. These metrics help in tracking data ingestion rates and diagnosing network-related issues.
Summaryβ
QuestDB 8.1.2 balances innovation and stability with new features like Web Console tabs, financial functions, and timezone supportβwhile boosting performance and improving reliability. Dive in, and as always, weβre here to help in our Slack community and Discourse community.