Utiliser Superset en local avec Duckdb

Superset est une outil trop pratique pour explorer les données, il permet de faire des graphiques, dashboard avec des filtrages en quelques clics. En vrai c’est assez fou d’avoir cette qualité gratuitement, en opensource. Merci Apache Foundation !

Duckdb lui est une base de données qu’on installe très facilement sur sa machine, son utilisation est similaire à celle de Sqlite mais en ultrapuissant de fou sur l’analyse des données. Il permet de faire des stats sur des volumes qui semblent totalement inaccessibles avec un ordinateur classique et Sqlite ou une base de donnée avec un serveur (PostgreSQL, MariaDB, Mysql..).

Mais Duckdb, au lieu de ranger ses données en ligne (comme dans un fichier CSV), il les range en colonnes et le fait d’avoir les données par colonne en proximité dans la mémoire fait qu’il peut faire des choses impensables et traiter des millions de données sans avoir le temps de dire ouf. C’est totalement bluffant.
Il y a des traitements que je n’imaginais possible que dans BigQuery et qui deviennent largement envisageable avec Duckdb et avec simplicité en plus !

Par exemple Duckdb peut ouvrir un CSV gigantesque sans souci, il nomme et fait le typage des colonnes tout seul.

Superset permet d’ailleurs d’importer des CSV et autres fichier directement depuis le navigateur.

Installation en local avec docker-compose

https://superset.apache.org/docs/installation/docker-compose

git clone --depth=1  https://github.com/apache/superset.git

puis

cd superset/
docker compose -f docker-compose-non-dev.yml up

Login

admin admin 🙂

Ajouter duckdb

vi docker/requirements-local.txt

Et y ajouter ces deux lignes :

duckdb
duckdb-engine

Puis

docker compose up

Connecter Superset à un fichier duckdb

Ajouter un bind pour avoir un répertoire accessible dans le docker

vi docker-compose-non-dev.yml

y ajouter dans la section x-superset-volumes:le volume - ~/Perso/superset/test-docker-compose/duckdb:/app/duckdb

Ajouter la connecion à la db dans l’admin

Dans l’admin ajouter une database du type duckdb et ne pas oublier de mettre les nom du fichier préfixé par le répertoire duckdb/ Par exemble duckdb/data.duckdb

Ensuite avec superset et duckdb c’est que du bonheur !


Publié

dans

par

Étiquettes :