Skip to main content

Setup ApertureDB

Like a typical database, ApertureDB needs a server and a client for creating an application.

ApertureDB is offered as a public docker image or as SasS in form of a demo.

ApertureDB Server

Demo trial

You can do a quick trial of ApertureDB using one of our demo examples.

We currently offer a choice of pre-loaded datasets which lend themselves to specific use-cases. These use-cases are also provided as a collection of notebooks in jupyterlab environment.

This requires no setup, and is the quickest way to get interacting with ApertureDB

ApertureDB Client

Our Python client package is available to install via pip with source code in our repository. It comes with a command line utility called adb that's very useful when setting up.

To start using the database, regardless of how the server was setup, we need to establish a connection profile and validate that the SDK is able to connect to your DB.

pip install aperturedb

adb config create local

adb utils execute summary

ApertureDB server supports a JSON-based query language described in this documentation.

We have clients to talk to the ApertureDB server in both Python and C++. Both clients allow you to send JSON queries to the server and receive JSON responses.

Hello World Example

Try this quick start example with just images and some metadata, to test out the ApertureDB server.

Troubleshooting

caution

Setting up (or updating) the virtual environment for the python client can sometimes cause version dependencies mismatches. This is because the ApertureDB SDK does not pin the version numbers of some of its dependencies, and those get released in separate cycles.

There's a docker image that is built during the CI process and is a guaranteed stable environment in such a case. This image also includes a installation of Jupyter Lab. It can be run as follows

docker run --interactive --tty aperturedata/aperturedb-notebook

The docker compose file would include the following service in such a case.

services:

aperturedb:
image: aperturedata/aperturedb-standalone
restart: always
privileged: true
volumes: # Map ApertureDB storage and logs into local directory
- ./aperturedb/db:/aperturedb/db
- ./aperturedb/logs:/aperturedb/logs
ports:
- 55555:55555 # HOST_PORT:CONTAINER_PORT
environment:
ADB_PORT: 55555

webui:
image: aperturedata/aperturedb-webui
ports:
- 80:80 # HOST_PORT:CONTAINER_PORT
restart: always
depends_on:
- aperturedb
environment:
- APP_PRIVATE_VDMS_SERVER_ADDR=aperturedb
- APP_PRIVATE_VDMS_SERVER_PORT=55555

notebook:
image: aperturedata/aperturedb-notebook
ports:
- 8888:8888 # HOST_PORT:CONTAINER_PORT
restart: always
command: bash -c "adb config create aperturedb_docker --host aperturedb --no-interactive && /start.sh"
depends_on:
- aperturedb

Deploying Your Own Application

Once ApertureDB server and client are ready and you are ready to define your application:

  1. You can define your application schema,
  2. Ingest data, and
  3. Start querying and visualizing data.
tip

Check out the adb command line tool for various ETL and query options.