Superset

Objetivo

Documentar método de instalação e conexão ao Clickhouse.

Dependências

  1. Docker, 26.0.0

Criar Conexão

docker network create --driver bridge local-network 

Superset

Start

Para subir um simples contêiner de superset siga os seguintes passos. Atenção: Não subir dessa maneira para sistemas críticos ou de produção, para isso utilize o arquivo de docker compose docker-compose-non-dev.yaml

# Download superset image
docker run -d -p 8088:8088 \
             -e "SUPERSET_SECRET_KEY=$(openssl rand -base64 42)" \
             -e "TALISMAN_ENABLED=False" \
             --network local-network \
             --name superset apache/superset:3.1.0

# Create the admin account
docker exec -it superset superset fab create-admin \
              --username admin \
              --firstname Admin \
              --lastname Admin \
              --email admin@localhost \
              --password admin

# Upgrade db
docker exec -it superset superset db upgrade

# Optional (load datasets and dashboards examples)
docker exec -it superset superset load_examples

# Initialize superset
docker exec -it superset superset init

Login

Acesse o Superset na porta 8088 e conecte com o usuário e a senha definidos ao criar a conta.

Mudar senha de usuário

No docker do superset:

flask fab reset-password --username user --password newPassword

or

superset fab reset-password --username user --password newPassword

Ambiente de produção

Instalar ambiente de produção para o Superset.

Instalação

Na versão de produção padrão, o Superset usa PostgreSQL como banco de dados para seus metadados e usa ferramentas de cache pré-configuradas. O ambiente de produção subirá 5 contêineres Docker.

Siga os seguintes comandos (OBS: há um bug na versão 4.0.1 do Superset disponível no Github, então usaremos a versão 3.1.3):

wget https://downloads.apache.org/superset/3.1.3/apache-superset-3.1.3-source.tar.gz

tar -xzf apache-superset-3.1.3-source.tar.gz

cd apache-superset-3.1.3rc1

echo "clickhouse-connect" >> ./docker/requirements-local.txt
echo "MAPBOX_API_KEY=<INSERT>" >> docker/.env-non-dev

# Comente a seguinte linha no arquivo docker/.env-non-dev:
# SUPERSET_LOAD_EXAMPLES=yes

docker compose -f docker-compose-non-dev.yml up

Clickhouse

1. Execução em Docker:

docker run -d -p 8123:8123 -p 9000:9000 \
                -e "CLICKHOUSE_USER=default" \
                -e "CLICKHOUSE_PASSWORD=admin" \
                --network local-network \
                --name my-clickhouse-server \
                --ulimit nofile=262144:262144 clickhouse/clickhouse-server

Acesso ao Clickhouse

docker exec -it my-clickhouse-server /bin/bash
clickhouse client

2. Execução local:

Com o Clickhouse instalado, certifique-se que a seguinte linha em clickhouse-server/config.xml não esteja comentada:

<listen_host>::</listen_host>

Depois de uma mudança nesse arquivo, reinicie o Clickhouse.

Conexão do Clickhouse ao Superset

Configuração

Para conectar o Clickhouse ao Superset você deve acessar o container do superset e instalar o conector e modificar(ou criar) o arquivo de requerimentos.

# access the container
$ docker exec -it superset /bin/bash

# write and create file
$ echo "clickhouse-connect>=0.6.8" >> ./requirements/local.txt

# check if it's right
$ cat requirements/local.txt

# install the connector
$ pip install -r ./requirements/local.txt

E então sair do container e reiniciar o superset

docker restart superset

Conexão

  1. Procure onde criar uma nova conexão no Superset (no momento da escrita deste documento se encontrava em um símbolo “+” no canto superior direito)

  2. Em “SUPPORTED DATABASES” procure “Clickhouse Connect(Superset)” (ou algo próximo)

  3. Preencha os dados de acordo com as informações nos passos “Clickhouse/Execução em Docker (única maneira que deu certo)”. Exemplo com os dados deste documento:

  • HOST = my-clickhouse-server (–name)

  • PORT = 8123 (-p 8123:8123, default do clickhouse)

  • DATABASE NAME = default (default do Clickhouse)

  • USERNAME = default (CLICKHOUSE_USER)

  • PASSWORD = admin (CLICKHOUSE_PASSWORD, default é vazio)

  • DISPLAY NAME = Clickhouse (Nome que irá aparecer no superset, fica a cargo do usuário)

  1. Caso ainda hajam dúvidas conferir as duas imagens neste mesmo diretório

  2. Clique em finalizar