1.1.0
What's Changed
Features
-
High-performance ingestion of Pandas dataframes into QuestDB via ILP. We now support most Pandas column types. The logic is implemented in native code and is orders of magnitude faster than iterating the dataframe in Python and calling the
Buffer.row()
orSender.row()
methods: TheBuffer
can be written from Pandas at hundreds of MiB/s per CPU core. The newdataframe()
method continues working with theauto_flush
feature. See API documentation and examples for the newdataframe()
method available on both theSender
andBuffer
classes. -
New
TimestampNanos.now()
andTimestampMicros.now()
methods. These are the new recommended way of getting the current timestamp. -
The Python GIL is now released during calls to
Sender.flush()
and whenauto_flush
is triggered. This should improve throughput when using theSender
from multiple threads.
Errata
- In previous releases the documentation for the
from_datetime()
methods of theTimestampNanos
andTimestampMicros
types recommended callingdatetime.datetime.utcnow()
to get the current timestamp. This is incorrect as it will (confusingly) return object with the local timezone instead of UTC. This documentation has been corrected and now recommends callingdatetime.datetime.now(tz=datetime.timezone.utc)
or (more efficiently) the newTimestampNanos.now()
andTimestampMicros.now()
methods.
Full Changelog: v1.0.2...v1.1.0