Superset¶
Objetivo¶
Documentar método de instalação e conexão ao Clickhouse.
Links¶
Dependências¶
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¶
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)
Em “SUPPORTED DATABASES” procure “Clickhouse Connect(Superset)” (ou algo próximo)
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)
Caso ainda hajam dúvidas conferir as duas imagens neste mesmo diretório
Clique em finalizar