Could not load database driver: KylinEngineSpec

8/18/2021

Just install Apache Superset within Kubernetes. Already have a working Apache Kylin Cluster in the same Kubernetes Cluster. While trying to connect Kylin within Superset i get the following error message:

ERROR: Could not load database driver: KylinEngineSpec

Superset is installed using this repo:

helm repo add superset https://apache.github.io/superset

The connection string which is used:

kylin://<username>:<password>@<hostname>:<port>/<project name>

Any ideas?

-- Stavros Koureas
apache-superset
cluster-computing
kubernetes
kylin

1 Answer

8/18/2021

By default superset comes with no KylinEngineSpec driver installed. You need to provide it as an additional requirement at install.

Recommended driver for Apache Kylin is kylinpy <sup>[reference]</sup>.

Update

The documentation is a bit misleading. Specifying additional packages in additionalRequiremets does not properly install them. Instead you have to add those to bootstrapScript.
Create a file with overrides (in my case it will be my-values.yaml), add below to this file

bootstrapScript: |
  #!/bin/bash
  rm -rf /var/lib/apt/lists/* && \
  pip install \
    kylinpy \
    psycopg2==2.8.5 \
    redis==3.2.1 && \
  if [ ! -f ~/bootstrap ]; then echo "Running Superset with uid {{ .Values.runAsUser }}" > ~/bootstrap; fi

<sup>Rembember, this will override bootstrapScript not add to it</sup>
Then, to install superset with new values

helm upgrade --install --values my-values.yaml <release-name> superset/superset

<sup>Replace <release-name> witho your desired name</sup>
or upgrade, if you already have superset installed

helm upgrade --values my-values.yaml <release-name> superset/superset

<sup>Again replace <release-name> with your release name</sup>
Then, after execing into a pod, you can see kylinpy was installed

root@superset-868c768599-24xc2:/app# pip list | grep kylinpy
kylinpy                2.8.4

To install it specify additionalRequirements with --set flag <sup>[reference]</sup>

helm install --set additionalRequirements={kylinpy} <release-name> superset/superset

<sup>replace <release-name> with your desired name</sup>

If you already have superset installed, you can perform an upgrade:

helm upgrade --set additionalRequirements={kylinpy} <release-name> superset/superset

<sup>Again, replace <release-name> with your release name</sup>

Use helm get values to see whether that new setting took effect. You should see something like

USER-SUPPLIED VALUES:
additionalRequirements:
- kylinpy

I strongly recommend going through official docs about running superset in Kubernetes. There are a lot more settings to change other than database drivers.

-- p10l
Source: StackOverflow