BBoxDB

BBoxDB is a key-boundingbox-value store for multi-dimensional big data

License

License

GroupId

GroupId

org.bboxdb
ArtifactId

ArtifactId

bboxdb
Last Version

Last Version

0.3.6
Release Date

Release Date

Type

Type

jar
Description

Description

BBoxDB
BBoxDB is a key-boundingbox-value store for multi-dimensional big data
Project URL

Project URL

http://bboxdb.org
Source Code Management

Source Code Management

https://github.com/jnidzwetzki/bboxdb/tree/master

Download bboxdb

How to add to project

<!-- https://jarcasting.com/artifacts/org.bboxdb/bboxdb/ -->
<dependency>
    <groupId>org.bboxdb</groupId>
    <artifactId>bboxdb</artifactId>
    <version>0.3.6</version>
</dependency>
// https://jarcasting.com/artifacts/org.bboxdb/bboxdb/
implementation 'org.bboxdb:bboxdb:0.3.6'
// https://jarcasting.com/artifacts/org.bboxdb/bboxdb/
implementation ("org.bboxdb:bboxdb:0.3.6")
'org.bboxdb:bboxdb:jar:0.3.6'
<dependency org="org.bboxdb" name="bboxdb" rev="0.3.6">
  <artifact name="bboxdb" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.bboxdb', module='bboxdb', version='0.3.6')
)
libraryDependencies += "org.bboxdb" % "bboxdb" % "0.3.6"
[org.bboxdb/bboxdb "0.3.6"]

Dependencies

compile (16)

Group / Artifact Type Version
log4j : log4j jar 1.2.17
org.slf4j : slf4j-log4j12 jar 1.7.25
junit : junit jar 4.12
org.yaml : snakeyaml jar 1.19
org.apache.zookeeper : zookeeper jar 3.4.11
com.jgoodies : forms jar 1.2.1
org.openstreetmap.osmosis : osmosis-pbf jar 0.46
com.google.guava : guava jar 23.0
org.json : json jar 20171018
org.jxmapviewer : jxmapviewer2 jar 2.2
org.mockito : mockito-core jar 2.11.0
com.sleepycat : je jar 7.3.7
commons-cli : commons-cli jar 1.4
io.prometheus : simpleclient jar 0.1.0
io.prometheus : simpleclient_hotspot jar 0.1.0
io.prometheus : simpleclient_httpserver jar 0.1.0

Project Modules

There are no modules declared in this project.


Build Status Coverity Scan Build Status Codecov Join the chat at https://gitter.im/bboxdb/Lobby Maven Central Version

Please Note: The master branch may be in an unstable state during development. Please use our releases for productive environments.

What is BBoxDB?

BBoxDB is a highly available distributed storage manager (NoSQL database), designed to handle multi-dimensional big data. Primarily, the software is a research project to explore new ways to handle multi-dimensional data in a distributed environment.

In contrast to existing key-value stores, BBoxDB can handle multi-dimensional efficiently. Existing key-value stores are using one-dimensional keys to address the values. Finding a proper key for multi-dimensional data is hard and often impossible; this is especially true when the data has an extent (non-point data / regions). To retrieve multi-dimensional data from a key-value store, a full data scan is often required. BBoxDB was developed to avoid the expensive full data scan and to make the work with multi-dimensional data more convenient.

Key features

  • The well-known key-value data model is enhanced by a bounding box to describe the location of n-dimensional data in space.

  • Data (point and non-point) of any dimension is supported.

  • The data is indexed, which enables efficient range query processing.

  • BigData is supported by spreading the data across a cluster of systems. Each node stores only a small part of the whole dataset.

  • Multi-dimensional shards are created dynamically on the actual distribution of the data (automatically scale-up/scale-down).

  • Data of multiple tables is stored co-partitioned, and spatial-joins can be executed efficiently without data shuffling between nodes.

  • Data are re-distributed in the background without any service interruption.

  • Continuous queries with bounding box query predicates are supported.

  • User defined filters for query processing on custom data types.

Documentation

The documentation of the project is located at https://jnidzwetzki.github.io/bboxdb/. The documentation also contains the changelog of the project.

Getting started

For a guided tour through the features of BBoxDB, see the getting started chapter in the documentation. We also recommend reading the creating client code section. The install guide explains the needed steps to deploy an own BBoxDB cluster. The guide also describes how you can setup a virtualized cluster with 5 BBoxDB nodes in under two minutes, by using Docker and Docker Compose.

Screenshots

BBoxDB ships with a GUI that allows observing the global index structure. Below you find two screenshots of the GUI. The screenshots show how the space is partitioned. In addition, some details about the discovered nodes are shown.




(The screenshots contain content from OpenStreetMap - CC-BY-SA 2.0)

When 2-dimensional bounding boxes with WGS 84 coordinates are used, a map overlay visualization is supported by the GUI. On the top right picture, some spatial data about Germany was imported and the Figure shows, how Germany in partitioned after the data was imported. In addition, the GUI provides operations to explore 2 dimensional GeoJSON encoded data.

Contact / Stay informed

License

BBoxDB is licensed under the Apache 2.0 license. See the LICENSE file for details.

Versions

Version
0.3.6
0.3.5