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: TheBuffercan be written from Pandas at hundreds of MiB/s per CPU core. The newdataframe()method continues working with theauto_flushfeature. See API documentation and examples for the newdataframe()method available on both theSenderandBufferclasses. -
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_flushis triggered. This should improve throughput when using theSenderfrom multiple threads.
Errata
- In previous releases the documentation for the
from_datetime()methods of theTimestampNanosandTimestampMicrostypes 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