Skip to content

KDB.AI Server Setup

This section details the steps to setup KDB.AI Server. Ensure your environment meets all the necessary pre-requisites before proceeding.

Hardware requirements

KDB.AI Server requires an Intel or AMD CPU that support AVX2 instructions or later:

  • Intel CPUs starting from the Haswell architecture.
  • AMD CPUs starting from the Zen architecture.

KDB.AI Server is currently not supported for users on Apple Macs.

Software requirements

KDB.AI Server requires the following software to be installed on your machine:

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 three of Start the KDB.AI docker image for more details.

Sign up

Ensure you have signed up for KDB.AI Server Edition here.

If running a KDB.AI Server version before 1.0.0, you must register for a new KDB.AI Server license here and complete a new installation process. For further details, follow the Upgrade KDB.AI Server instructions.

Bearer token

Once you receive your registration email, obtain a bearer token by doing the following.

  1. Log into the KX downloads portal.
  2. Once authenticated, navigate to https://portal.dl.kx.com/auth/token.
  3. Click ADD NEW BEARER TOKEN.
  4. Click COPY BEARER.

Download the KDB.AI image

Using the credentials provided after you register, you can download the image for the specified version of KDB.AI Server.

  1. Login to the docker registry in the downloads portal:

    export USERNAME=<Signup email address>
    export BEARER=<Copied from KX downloads portal>
    docker login portal.dl.kx.com -u $USERNAME -p $BEARER
    

    Your username is your email address registered with KX, your password is the bearer token.

  2. Pull the kdbai-db image:

    docker pull portal.dl.kx.com/kdbai-db:latest
    

Download your KDB.AI license

In your registration email, click Download License. Your license is either a k4.lic or kc.lic file and is needed to access your KDB.AI Server database.

Provide a license

  1. Create the environment variable using the corresponding command depending on the format of your license:

    kc.lic

    export KDB_LICENSE_B64=$(base64 path-to/kc.lic)
    

    k4.lic

    export KDB_K4LICENSE_B64=$(base64 path-to/k4.lic)
    

Start the KDB.AI docker image

  1. Create a location on the local disk to write data, indexes, and logs:

    tree .
    .
    └── vecdb
        ├── data
        └── logs
    
    3 directories, 0 files
    
  2. Set permissions to read and write to these directories:

    chmod 0777 vecdb/data vecdb/logs
    
  3. Run the container in detached mode using the following command:

    docker run -d \
        -p 8082:8082 \
        -e KDB_LICENSE_B64 \
        -e KXI_RT_LOG_PATH=/logs \
        -v $PWD/vecdb/data:/data \
        -v $PWD/vecdb/logs:/logs \
        portal.dl.kx.com/kdbai-db:latest
    

    If you do not see a success message, try removing -d from the above command to view the container logs and any potential errors.

    The first port in the -p line is configurable, but the second port 8082 must not be changed.

    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 this, add a --cpuset-cpus parameter to the Docker run command, for example --cpuset-cpus 1-24.

  4. Check the KDB.AI container is running:

    docker ps 
    

    If you see an error message and are running docker using sudo, add the -E flag so enviromental variables like KDB_LICENSE_B64 are picked up. Therefore, the command becomes: -E docker ps.

Install the KDB.AI client

  1. Install the latest version of KDB.AI client using pip from PyPI using the following command:

    pip install kdbai-client
    

    KDB.AI supports Python versions >= 3.8

    Ensure curl is installed, for example, `which curl` 
    
  2. Establish and verify the connection with the KDB.AI Server:

    import kdbai_client as kdbai
    session = kdbai.Session(endpoint='http://localhost:8082')
    session.list()
    # expected response
    []
    
    curl -H http://localhost:8082/api/v1/ready
    # expected response
    OK
    

An empty list should be returned as no tables have been created yet.

Export the KDB.AI docker logs

If you encounter an issue, we recommend you export your log file.

  1. To export, run:

    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, do the following.

  1. To stop the container, run:

    docker stop <your-container-name>
    

Next steps

Go to our Quickstart Guide page to set up your table schema and start inserting data.