Developing with BangDB – Embedded C++ – BangDB = NoSQL + AI + Stream

Developing with BangDB – Embedded C++


Developing with BangDB

Embedded C++

To get started with BangDB, we need to create database and table(s) at the minimum.
Basic operations, while developing with BangDB are around tables since we do all data modification, retrieval using table only.
Therefore database and tables are two most important types to work with and most of the time developers will deal with these two types.

Note: The client code or the user code is to large extent (~95% of code) is same across all different modes/flavors of BangDB. For ex; if we write our app in C++ for embedded, then we can run the same code for server or for distributed BangDB with less than 5% of code changes. The changes are only limited to the way we get database instance and close the instance. Everything else, more or less remains constant across different BangDB flavours.
This is very convenient and simplifies the development process. Since it's very easy to develop, test, debug with embedded BangDB, it is always faster and easier to do so at the development level. Once it's build and tested, we can simply take the code and run it for server or distributed BangDB

Another important thing would be to get familiar with following enums and types as they are used most of the places;
// types db_param table_env scan_filter dataQuery // enums bangdb_open_type bangdb_close_type bangdb_table_type bangdb_key_type scan_operator join_operator
Please see the useful types & enums for more info on this

Then bangdb_stream_manager is another type which abstracts all details and provide simple way to work with streaming data for timeseries analysis. User will be working with this when it comes to the streaming use cases. There is no table concept here but with very few APIs, most of the task could be achieved in simple manner

To work with ML and IE, user may use bangdl_ml_helper. This again hides all complexity and provides very few simple API to do all the job

To deal with deep learning, BangDB has bangdb_dl_helper. Here as well it provides simple APIs to deal with to do complex stuff in the area of deep learning

bangdb_notification_manager can be used as well, explicitly or implicitly. When we deal with streaming and notifications for interesting patters, we use notification manager implicitly (through stream manager)