Embed the power of an analytical SQL database engine

in your Python or C/C++ applications

"An embedded database system is a database management system (DBMS) that is tightly integrated with an application software that requires access to stored data, such that the database system is 'hidden' from the application’s end-user and requires little or no ongoing maintenance." [wikipedia]

The embedded database market has for a long time been dominated by traditional row-stores, often with limited SQL functionality, scalability or performance, and where a code footprint in terms of a few KBs is mandatory. Furthermore, most embedded database offerings are still proprietary. This space lacks a mature open-source SQL DBMS, something which has been deemed essential to push the performance envelope for data analytics applications.


What is the MonetDB solution?

Wouldn't it be great if a full-fledged analytics SQL database server could be harnessed to the point at which it can work as an embedded DBMS? Equipped with a fully parallel execution engine to exploit the common multi-core platforms, it would address the needs for data analytics and machine learning without relying on expensive interprocess communication or ETL. It would be strongly embedded in the application programme to easily use the UDFs at close range without overhead in data exchanges. All this based on international awarded technology and enterprise-grade hardened code. Look no further: MonetDB/e has arrived.

How does it work?

The solution brough to you can be seen above. A large part of the server code has been decoupled to arrive at an embeddable SQL database system, called MonetDB/e. This is shown on the right. A single library to be linked into the application code directly suffices. The benefits are obvious:

  • No client-server communication overhead

  • No result-set serialization, but binary columnar access

  • Full use of the multi-core parallel query execution

  • A rich type system, including boolean, blob, HUGEINT, UUID, JSON, and DECIMAL

  • Seamless integration with the programming language, such as DataFrames and NumPy

  • Single user control over the resources.

  • Working with :memory: databases with controlled RAM footprint.

  • Hybrid set up with concurrent :memory: and server-based storage

  • Boost your data analytics programmes with stateful User-Defined Functions

  • Statistics, Windowing functions, grouped sets, CUBE and ROLLUP

Look at the documentation for further details and explore a small collection of examples in the MonetDB/e repository

What does it cost?

MonetDB/e is free. It is an integral part of the MonetDB software suite and is distributed for free under its liberal MPL2.0 license. An official release is to be expected in autumn 2020. For those eager to give it a try,  check out the pre-release or contact us.