KDB.AI Server Setup
This page details the steps to set up KDB.AI Server.
Hardware requirements
KDB.AI Server works on Intel, AMD, ARM, and Apple CPUs that meet the below specifications:
- Intel CPUs that support AVX2 instructions (Haswell architecture).
- AMD CPUs that support AVX2 instructions (Zen architecture).
- ARM (aarch64) CPUs that support NEON instructions.
- Apple MX CPUs (M1, M2, and M3) that support NEON instructions.
KDB.AI Server supports Linux ARM-based CPUs via Docker and on Apple Silicon via Docker desktop or Rancher desktop.
For Rancher desktop on Apple Silicon, we recommend the following setup:
- Go to Preferences > Virtual Machine.
- In the Volumes tab > tick
virtiofs
as Mount type. - Emulation tab > select
VZ
as the Virtual Machine Type.
Software requirements
You can run KDB.AI Server under Docker or Rancher.
For demonstration purposes, the following steps provide guidance for running the KDB.AI Server under Docker:
-
A Linux kernel of 4.18.0 or later is required to run the KDB.AI container. Examples of such distros include:
- CentOS 8 or later
- Red Hat Enterprise Linux (RHEL) 8 or later
- Ubuntu 18.04 or later
-
If you run KDB.AI Server on Windows, we recommend using the Windows Subsystem for Linux (WSL) instead of running it directly on Windows. This way, the volume mounts are from a Linux filesystem (for example,
ext4
) and avoid any related errors.
System requirements
The KDB.AI Server Standard Edition license is limited to 24 cores. When running the Docker container, if the machine contains more than 24 cores, adjust the Docker run command to include --cpuset-cpus
, for example --cpuset-cpus 1-24
. See step 3 of Start the KDB.AI docker image for more details. If you're using Rancher, make sure to tick dockered(moby)
in General > Preferences > Container Engine > General.
Sign up
Ensure you have signed up for KDB.AI Server Edition here.
Having trouble finding the Welcome email? Expand for more.
- Check your spam folder. The subject of the Welcome email is Your KDB.AI Server: Standard Edition evaluation is ready.
- Add support@kdb.ai to the Safe senders list to prevent your personal or corporate antivirus or email protection software to block the email from being delivered.
- Contact the Support team.
Start the KDB.AI docker image
-
Create a location on the local disk to write data:
mkdir vdbdata
-
Set permissions to read and write to this directory:
chmod 0777 vdbdata
-
Log into the KX Docker registry using the email you signed up with and the Bearer Token string from your Welcome email:
docker login portal.dl.kx.com -u <the email you signed up with> -p <long Bearer Token string from your Welcome email>
-
Run the container in detached mode, including the KDB_LICENSE_B64 string from your Welcome email:
docker run -d \ -p 8081:8081 \ -p 8082:8082 \ -e KDB_LICENSE_B64=<long b64 License string from your Welcome email> \ -e VDB_DIR="/tmp/kx/data/vdb" \ -v "$PWD/vdbdata":/tmp/kx/data \ -e THREADS="8" \ portal.dl.kx.com/kdbai-db
The first port in the
-p
line is configurable, but the second port8082
must not be changed.The
THREADS
environment variableThe THREADS environment variable determines the number of threads utilized by each worker in multithreaded operations. Setting this variable helps optimize performance by allowing parallel execution of tasks.
- Syntax:
THREADS=<number_of_threads>
- Example:
THREADS="8"
We recommend setting
THREADS
to the number of CPU cores available on the machine running KDB.AI Server. For a comprehensive understanding of how multithreading works and how to optimize theTHREADS
variable, refer to the dedicated multithreading page.Troubleshooting tips. Expand for more.
- Didn't get a success message? Try removing
-d
from the above command to view the container logs and any potential errors. - If you attempt to run the Docker container on a machine with more than 24 cores, the execution fails with a cores error. To work around it, add a
--cpuset-cpus
parameter to the Docker run command, for example--cpuset-cpus 1-24
.
- Syntax:
-
Check if the KDB.AI container is running:
docker ps
Do you receive an error message while running docker using sudo? Expand for more.
Add the
-E
flag so environmental variables likeKDB_LICENSE_B64
are picked up. Therefore, the command becomes:-E docker ps
.
Install the KDB.AI client
-
Install the latest version of KDB.AI client using pip from PyPI using the following command:
pip install kdbai-client
Ensure curl is installed, for example, `which curl`
KDB.AI supports Python (versions 3.8 to 3.11).
-
Establish and verify the connection with the KDB.AI Server:
import kdbai_client as kdbai session = kdbai.Session(endpoint='http://localhost:8082') database = session.database('default') print(database.tables) # expected response should be an empty list [] because you haven't created any tables yet
curl http://localhost:8081/api/v2/ready # expected response 'OK'
Export the KDB.AI docker logs
If you encounter an issue, we recommend exporting your log file by running the following:
docker logs <your-container-name> > yourDocker.log 2>&1
Send your log file yourDocker.log
to the Support team.
Stop the KDB.AI docker image
If you wish you stop the KDB.AI Server, stop the container by running:
docker stop <your-container-name>
KDB.AI Server License Validity
The KDB.AI Server setup is valid for 90 days. To continue using the server after this period, you need to update the license by following the steps in the email reminder and contacting Sales for the paid license.
Next steps
Go to our Quickstart Guide page to set up your table schema and start inserting data.