Подключение к ClickHouse из Apache Superset 3.1.1
Для того, чтобы для Apache Superset при развертывании образа через Docker Compose установить драйвер ClickHouse, необходимо всего лишь добавить файл requirements-local.txt
в директорию docker (по умолчанию он отсутствует):
superset │ └── docker ├── README.md ├── docker-bootstrap.sh ├── docker-ci.sh ├── docker-entrypoint-initdb.d │ └── examples-init.sh ├── docker-frontend.sh ├── docker-init.sh ├── frontend-mem-nag.sh ├── nginx │ └── nginx.conf ├── pythonpath_dev │ ├── superset_config.py │ └── superset_config_local.example ├── requirements-local.txt └── run-server.sh
Внутрь файла requirements-local.txt
нужно вписать строку:
clickhouse-connect>=0.6.8
После того, как вы запустите команду развертывания контейнеров с помощью docker compose, драйверы из файла будут установлены на одном из этапов инсталляции.
Установка библиотек из файла requirements-local.txt
осуществляется при выполнении скрипта /superset/docker/docker-bootstrap.sh
:
А сам файл попадает через монтирование docker директории через docker compose файл /superset/docker-compose-non-dev.yml
:
То есть, внесенные изменения в локальную директорию docker в проекте, будет доступна в контейнере /app/docker
. Это внутренняя фишка docker compose.
Создание подключения к ClickHouse из Apache Superset
Для того, чтобы создать подключение к ClickHouse, необходимо зайти в меню Settings (справа сверху) и выбрать Database Connections:
Затем появится список всех созданных ранее подключений. Для создания нового подключения нажмите кнопку «+ Database»:
После этого, вы сможете найти в списке доступных драйверов для создания подключения ClickHouse:
Далее вводим параметры подключения, проверяем и сохраняем наше новое подключение:
Как установить драйвер в Apache Superset в образ принудительно?
Если у вас образ развертывается отличным способом от docker compose, то либо вы можете добавить команду установки драйверов из файла requirements-local.txt
, либо заранее установить драйвер в образ.
Для этого, также в директории docker нужно создать файл requirements-local.txt
clickhouse-connect>=0.6.8
Затем создать Dockerfile, например, назвать его Dockerfile_CH и внести туда код:
###################################################################### # Official Superset image ###################################################################### FROM apachesuperset.docker.scarf.sh/apache/superset:3.1.1 AS superset-official ###################################################################### # Install Drivers for Clickhouse ###################################################################### USER root COPY ./docker/requirements-local.txt /app/requirements/ # Cache everything for dev purposes... RUN cd /app \ && pip install --no-cache -r requirements/requirements-local.txt USER superset
Supersert Image Building с кастомным Dockerfile_CH
Запускаем сборку образа командой:
sudo docker build -f Dockerfile_CH --force-rm -t clickhouse-superset:3.1.1 .
После локальной сборки образа, его нужно добавить в качестве источника, для развертывания в контейнерах:
clickhouse-superset:3.1.1
Leave a Reply