Introduction to Development with BangDB
Embedded
C++
Java
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/flavours 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
BangDBDatabase
BangDBTable
BangDBMLHelper
BangDBStreamManager
BangDBNotificationManager
DBParam
Table
Env
ScanFilter
DataQuery
//enums
OpenType
CloseType
TableType
KeyType
ScanOperator
JoinOperator
Then BangDB Stream Manager is another type which abstracts all details and provide simple way to work with streaming data for time-series 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 BangDBMLHelper. 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 patterns, we use notification manager implicitly (through stream manager)