Get Started with BangDB Server
BangDB 2.0 Server is available for following:
- Arch - x86_64
- OS - Ubuntu16, Ubuntu18, Ubuntu20, Centos7, Centos8, Rhel8
- Language - 3.1 Server : C++ 3.2 Client : C++, Java, Python [ upcoming ]
- License - 4.1 Community : BSD 3 4.2 Enterprise : Custom
Get the BangDB2.0 from Github Repository or BangDB download page If you take from GitHub then it downloads all the packages and files which my not be necessary for you, hence it’s preferable to download it from the website if you just want specific binary. Go to download page and select Network, client server model tab. Then pick the appropriate binary based on your OS (ubuntu16, ubuntu18 or Centos7) Name of these server packages/binaries are:
bangdb_2.0_centos7.tar.gz bangdb_2.0_centos8.tar.gz bangdb_2.0_rhel8.tar.gz bangdb_2.0_ubuntu16.tar.gz bangdb_2.0_ubuntu18.tar.gz bangdb_2.0_ubuntu20.tar.gz
If you extract these files, you will following dir structure
agent [ folder which contains agent to help stream data into the db ] bangdb-server [ script file to start | stop | status the server ] bangdb_udf [ folder that contains headers to write UDF that can be deployed at run time ] bench [ bench folder to run simple benchmark for BangDB ] bin [ folder that contains the bangdb-server-2.0 and bangdb.config file ] cli [ folder that contains bangdb-cli-2.0, a command line tool for the server ] helpers [ some of the helper files for the BangDB, esp related to IE/ML ] install.sh [ during install, this script should be run to set up various libs and links ] jars [ various jar files needed at runtime, esp for IE ] lib [ dlib and mitie libs needed by the server, for IE ] README [ some basic info and instructions ]
Let’s see some of the important things here.
User should run this to get necessary libraries on the server and also to set the links to the libraries present in the lib folder. User should run this file without sudo but as and when sudo access is needed, it will ask for the same
This is the script file for running BangDB server. This allows user to start | status | stop the server. It runs the server in the background. bangdb-server script runs the BangDB in the background. It also doesn’t take any command line arguments.
See the command line args or the config important to run the server at bangdb.config page. You may see some logs being flushed to the terminal even when you run the server using this script in the background. To stop this you should change the config file as described in the bangdb.config page
bin folder is where the bangdb-server-2.0 binary is present. BangDB needs bangdb.config to run, therefore the default config is also present there.
lib folder is where two libraries, namely dlib and mitie are placed. These are important due to IE (Information Extraction) features supported by BangDB. We can have BanGDB compiled for non IE feature support as well and in that case these libs are not required.
jars folder contains the gson, reverb and bangdb-reverb jar files. There are also required for IE only
This folder contains helper files for IE. It has bangdb-reverb exe which is used by BangDB during Information extraction. It also has wordrep exe to generate knowledge-base needed for IE. Finally it contains several python files during the IE processes required by the BangDB
cli is a command line tool for BangDB server. This allows users to interact to BangDB for DB, Stream, AI related features. It also allows server configurations, agent setting, configuration and maintenance remotely. It supports SQL like query for db interactions. It also allows users to draw charts in the terminal itself or save the graphs/charts as images on FS
This folder contains headers for writing user defined functions that could be ingested and installed/used by the server at run time or otherwise.
This folder contains bench files that could be compiled and run by the user. See the server bench page for more details.
This folder contains agent exe that could be used to send/stream data into BangDB. Agent can monitor set of files and as and when data is written to the file, it will send the data to the db. While sending, user can also set the configuration to parse and structure the data. The agent can be used to read data from log files, connect to other end to pull data and send [ ex; RDBMS, Services etc. ] and many other different ways to pull data