AN EMBEDDED ENGINE, MonetDB/e,
Embed the power of an analytical SQL database engine
in your Python, C/C++ applications
"An embedded database system is a database management system (DBMS) that is tightly integrated with 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 was mandatory. Most embedded database offerings are proprietary. This space lacks a mature open-source SQL DBMS, deemed essential to push the performance envelope for data analytics applications. It's time for MonetDBe to go public.
What is the solution?
Wouldn't it be great if a full-fledged analytics SQL database server is harnessed to the point it can work as an embedded DBMS? A fully parallel execution engine to exploit the common multi-core platforms. This way, addressing the needs for data analytics and machine learning without relying on expensive interprocess communication or ETL. Strongly embedded in the application program 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.
How does it work?
A large part of the server code could be decoupled to reach an embeddable SQL database system, illustrated at the right above with a focus on the programming language C. A single library to be linked into the application code directly suffices. With the obvious benefits:
It works on Linux, Mac and Windows.
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 data frames/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
Use the Python package monetdbe or the libmonetdbe.so library in your programs.
How to purchase?
MonetDB/e is for 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 the summer of 2020. For those eager to give it a try, check out the pre-release or contact us.