What is new ?
- SQL: Support for PostgreSQL dialect "truncate table ONLY tab"
- SQL: 20% performance gain for vector aggregations
- SQL: vector min() and max() for TIMESTAMP and DATE types
- SQL: table and database backup
- SQL: added support for quoted literals to comply with PostgreSQL dialect
- SQL: timestamp function dateadd(), datediff()
- SQL: ksum() and nsum() - vector implementation of compensated summation. Kahan and Neumaier respectively
- SQL: stable random generator for generating test data repeatedly
- SQL: copy supports 'with header' now
- Web Console: shows more query timing values
- Web Console: it is possible to specify nominated timestamp & partition type (thanks to @clickingbuttons)
What we fixed ?
- Server may fail to start when OS language setting is not EN.
- SQL: select distinct .... could have ignored the
where
clause - Web Console: fixed tooltips on import buttons
- Web Console: build is now using webpack. Refer for instructions to run console here
- Web Console: fixed grid rendering issues during fast scrolling
- SQL: fixed order of
where
clause inlatest by
query - SQL: fixed timestamp less that search
- SQL: symbol table reload did not work properly
- SQL: where clause could produce false error
Clickhouse benchmark
Hardware
c5.metal
AWS instance, which has two Intel 8275CL 24-core CPUs and 192GB of memory. QuestDB was running on 16 threads pinned to NUMA zone 0. Clickhouse is using all threads (96 - hyperthreadin on)
With NULLs
Description | QuestDB | Clickhouse |
---|---|---|
DDL | CREATE TABLE test_double AS(SELECT rnd_double(2) FROM long_sequence(1000000000L);
| CREATE TABLE test_double (val Nullable(Float64)) Engine=Memory;
|
Import | Not required | clickhouse-client --query="INSERT INTO test_double FORMAT CSVWithNames;" < test_double.csv
|
Naive sum | SELECT sum(val) FROM test_double;
| SELECT sum(val) FROM test_double;
|
Kahan sum | SELECT ksum(val) FROM test_double;
| SELECT sumKahan(val) FROM test_double;
|
Result
Without NULLs
Description | QuestDB | Clickhouse |
---|---|---|
DDL | CREATE TABLE test_double AS(SELECT rnd_double() FROM long_sequence(1000000000L);
| CREATE TABLE test_double (val Float64) Engine=Memory;
|
Import | Not required | clickhouse-client --query="INSERT INTO test_double FORMAT CSVWithNames;" < test_double.csv
|
Naive sum | SELECT sum(val) FROM test_double;
| SELECT sum(val) FROM test_double;
|
Kahan sum | SELECT ksum(val) FROM test_double;
| SELECT sumKahan(val) FROM test_double;
|