CrateDB lets you handle large amounts of data from various sources at scale while allowing real-time queries with a familiar SQL interface.
With the release of CrateDB v4.7, we continue to improve CrateDB to achieve these goals even better. Based on our customer and user feedback, we're adding improvements in SQL compatibility, scalar and aggregate functions, and PostgreSQL compatibility.
Having a familiar and well-known interface to access data is one of the key features with CrateDB, and with this release, we add additional functionality to our SQL compatibility.
Among improvements for NULL handling in window functions and type handling improvements, we have added the FAIL_FAST option to the COPY FROM statement. This allows the COPY FROM command to stop when an error is observed without having to wait for the complete statement to be finished. This greatly improves error handling and detection in a quick way.
Scalar and aggregate functions are critical for analytics or other use of your data, and CrateDB already offers a large set of functions to help with this.
In this release, we are enhancing the available functions for handling arrays, like appending values to an array or slicing arrays, among others.
Besides array handling, we also focused on additional functions for timeseries use cases. We have added the age function that will provide the time passed between two timestamps, providing an easier way to get to the age of a data entry or the interval between two data entries. But when handling time data we are often interested in truncated timestamps, for instance to group metrics into specific intervals. CrateDB already supports the DATE_TRUNC function that allows for this.However, it’s currently not possible to truncate custom intervals . With CrateDB 4.7 we are introducing the DATE_BIN function which lets you truncate timestamps with any interval, thereby greatly improving the possibilities for timeseries use cases. On top the CrateDB DATE_BIN function is fully compatible with the PostegreSQL DATE_BIN function.
Being compatible with PostgreSQL is another important function within CrateDB, and with the release of CrateDB 4.7, we further enhance this compatibility. We have added additional tables in the pg_catalog for PostgreSQL compatible tools to receive the expected information from CrateDB.
Besides this, we have also added a PostgreSQL compatible JSON data type. While CrateDB already supported storing JSON data, it only allowed this in the OBJECT data type. With the new JSON data type, we enhance the compatibility with PostgreSQL tools that are utilizing JSON data, that is why the new JSON data type is only supported as a cast operator and can’t be utilized for table definitions.
Read the full release notes here.