Article - 15 oct. 2024

DuckDB 1.0.0 avec Kestra

Comment mettre à jour Kestra pour exécuter des tâches DuckDB avec la version 1.0.0 ?

A l'heure où j'écris cet article, Kestra est capable d'utiliser la dernière version de DuckDB.
L'article est conservé car il décrit la procédure pour mettre en place le build d'un plugin spécifique.

Pour plus d'information sur l'origine du soucis :

Si vous utilisez la version open-source de Kesta, la méthode suivante vous permettra d'exécuter des tâches DuckDB avec la version 1.0.0 ou supérieur.

Première étape : le fork

Commencez par réaliser un fork de kestra-io/plugin-jdbc et appliquez le diff ci-dessous :

diff --git plugin-jdbc-duckdb/build.gradle plugin-jdbc-duckdb/build.gradle
index 47d610b..81e80cf 100644
--- plugin-jdbc-duckdb/build.gradle
+++ plugin-jdbc-duckdb/build.gradle
@@ -13,7 +13,7 @@ jar {
 }

 dependencies {
-    implementation("org.duckdb:duckdb_jdbc:0.8.1")
+    implementation("org.duckdb:duckdb_jdbc:1.0.0")
     implementation project(':plugin-jdbc')

     testImplementation project(':plugin-jdbc').sourceSets.test.output

Deuxième étape : Java build

Je ne suis pas développeur Java, mais cette seconde étape est assez simple.
Grâce à la CLI ./gradlew shadowJar, vous allez obtenir un build au format .jar.
Note : Il est probable le JDK Java soit nécessaire.

Le build sera disponible à cet endroit plugin-jdbc-duckdb/build/libs/plugin-jdbc-duckdb-0.17.0.jar.

Dernière étape : Mettre à jour Kestra

J'utilise Docker Compose pour exécuter Kestra. Copier plugin-jdbc-duckdb-0.17.0.jar dans un répertoire de votre projet docker-compose, par exemple ./libs.

Mettez à jour le docker-compose.yaml.

services:
  kestra:
    volumes:
      - ./libs/plugin-jdbc-duckdb-0.17.0.jar:/app/plugins/plugin-jdbc-duckdb-0.17.0.jar

Relancez Kestra : docker compose up -d.