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
- Docker
- Enterprise
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
Run ApertureDB on-prem using docker
We have packaged ApertureDB and all the dependencies in a set of docker images that can be pulled from our DockerHub or cloud-specific container registry (terms of use available on DockerHub).
ApertureDB is currently dependent on optimizations only available on x86-64 machines. Write to us if you want to run on a different platform (team@aperturedata.io).
For a quick install without ApertureDB UI, you can execute this command:
docker run\
-p 55555:55555\
aperturedata/aperturedb-standalone
To examine the contents of the database, you may want to map /aperturedb/db
and /aperturedb/logs
as volumes.
See docker compose example below.
We recommend using a machine with 8 cores, with 32 GB memory, and 200 GB storage for common use cases, e.g. EC2 VM of type m6i.4xlarge or GCP VM of e2-standard-8.
ApertureDB can be installed as a distributed database for high availability and performance. Contact us for access (team@aperturedata.io)
Run ApertureDB along with WebUI using Docker Compose
ApertureDB has an associated Web UI that provides a lightweight web interface.
Save the following as docker-compose.yml
(or download here, make
sure to match the name),
and follow the instructions below to start the two services together.
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
To start the database and the web frontend together, simply run:
docker compose up --detach
This will launch the dockers in the background. You can remove --detach
to launch them in the foreground.
To make sure you get the latest versions of the docker:
docker compose pull
docker compose up --detach
To stop the database server, simply run:
docker compose down
Troubleshooting
- Join our slack channel and post the example causing trouble
- Email us at team@aperturedata.io with a description of the problem
Enterprise installation, SaaS or on-prem
Along with ApertureDB server, we provide a web frontend, Grafana monitoring and logging functionality, and other distributed systems' components required for installing our distributed database. We package these together for deployment in a Kubernetes environment.
You can reach out to us at team@aperturedata.io to get access for your "on-premises" or "self-hosted" trial and installation.
We can also host and manage the database for you to get started more easily.
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
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:
- You can define your application schema,
- Ingest data, and
- Start querying and visualizing data.
Check out the adb
command line tool for various ETL and query options.