DuckDB pour QGIS : nouveautés de QDuckDB version 1.0.0

By mercredi 9 octobre 2024NewsFR

Le plugin

Il y a près d’un an, en novembre 2023, dans cet article, nous vous avions présenté le plugin QDuckDB, financé par l’IFREMER et développé par Oslandia. Dans ce précédent article, nous présentions DuckDB et les caractéristiques fonctionnelles du plugin.

Depuis, en plus du financement de l’IFREMER, Oslandia a auto-investi du temps de maintenance pour corriger les bugs remontés par les utilisateurs et stabiliser les performances du fournisseur de données (provider) que contient le plugin.

Pour rappel, un provider QGIS est une interface ou une couche logicielle qui lui permet d’accéder à différentes sources de données géospatiales. Autrement dit, c’est un composant qui gère la connexion entre QGIS et les données géospatiales dans différents formats.

Cas d’usage

  • Récupérer les données Overtures Maps directement dans une base de données DuckDB puis les charger dans QGIS via le plugin pour les représenter ou bien effectuer des analyses spatiales. Cela apporte un vrai cas d’usage au plugin puisqu’il n’est pas possible de récupérer les données Overtures Maps dans un format SIG plus classique (shapefile, geojson par exemple)
  • Chargement des données INSEE et croisement avec la BD TOPO chargée en gpkg. L’INSEE fournit des données au format parquet et avec l’extension spatiale DuckDB est bien sûr capable de charger des gpkg.
  • Ce plugin est utilisable aussi bien dans l’application bureau de QGIS qu’avec QGIS Serveur. Ainsi, l’IFREMER utilise ce plugin pour diffuser sur le web des données enregistées dans une base de données DuckDB. Elles peuvent être représentées sous forme d’images (flux WMS) ou de données géométriques (flux WFS). Cette solution a l’avantage d’être facile à mettre en place (il n’y a pas besoin d’un service de base de données, les données étant enregistrées dans un fichier), tout en profitant de la vitesse du format DuckDB.

Quoi de neuf Duck ?

Depuis l’année passée, les deux grands axes de développement ont été les performances du plugin et la stabilité.

Par performance, on entend augmenter la vitesse de chargement des entités dans QGIS. Nous avions par exemple des coins d’ombre sur la latence, voire des crash lorsqu’une table provenant de DuckDB possédait beaucoup d’entités.

Le provider initial avait été implémenté avec le strict minimum pour fonctionner. Depuis nous avons ajouté tous les composants nécessaires à QGIS pour permettre d’être plus performant.

Enfin, le second axe de développement a été la stabilité. Ce travail a été permis par les utilisateurs qui ont remonté des bugs, que nous avons corrigés. Nous avons aussi renforcé la partie test unitaire. Parmi les choses que nous avons améliorées, on peut citer par exemple, le support des tables non géographiques, le support des vues ou encore la prise en charge des types de colonnes DATE et TIME.

Si vous souhaitez plus de détail sur ces deux points, vous pouvez consulter le changelog du projet.

Nous répercutons également chaque nouvelle version de DuckDB dans le plugin dans les jours qui suivent celle-ci, comme par exemple la sortie de DuckDB 1.1.0.

Release 1.0.0

Après avoir amélioré les performances et la stabilité, nous sommes donc arrivés à un premier jalon important du provider. Nous avons implémenté tous les composants que propose QGIS pour la construction d’un provider tiers personnalisé.

Cet article annonce donc officiellement la en version 1.0.0 du plugin QDuckDB ainsi que la disparition du flag experimental.

Et ensuite

Mais le travail n’est pas fini pour autant. Pour rappel le plugin ne fait actuellement que du read only (lecture seule). L’étape suivante serait donc de développer le mode écriture.

On souhaite également améliorer l’intégration du plugin dans QGIS, par exemple en ajoutant une nouvelle entrée DuckDB dans l’explorateur des sources de données natif de QGIS.

Pour toutes ces nouvelles fonctionnalités à développer, nous sommes à la recherche de financement. Vous pouvez retrouver une liste non exhaustive des développements à venir en regardant les tickets taggés To be funded dans le projet Gitlab. Il est également possible d’ouvrir de nouveaux tickets pour des fonctionnalités auxquelles nous n’aurions pas pensé.

Si vous êtes intéressé(e), vous pouvez vous signaler dans les tickets, nous contacter sur Linkedin ou bien par email à qgis@oslandia.com. Toute contribution est la bienvenue : code, documentation, financement…

Liens importants