Connecteurs de base de données
Le connecteur de base de données est utilisé pour extraire des données de bases de données prenant en charge Open Database Connectivity (ODBC).
Ce connecteur n'est pas disponible par défaut. Veuillez contacter Opendatasoft pour l'activation de ce connecteur sur un espace de travail Opendatasoft donné.
Les bases de données supportées par Opendatasoft sont :
Base de données | Ressources du fournisseur | Version de base de données prise en charge |
Tous | ||
>= 8.0 mise à jour 20220126 | ||
Si vous souhaitez qu'Opendatasoft supporte d'autres bases de données, n'hésitez pas à contacter votre équipe de support locale pour partager vos retours et cas d'utilisation.
Le connecteur de base de données fonctionne au niveau de la base de données. Pour configurer une source de données à l'aide de ce connecteur, vous devrez rassembler :
Les détails de connexion (comme login et mot de passe, adresse du serveur, nom de la base de données)
La requête SQL pour extraire les données pertinentes de votre base de données
Comme ce connecteur prend en charge les connexions réutilisables, vous aurez la possibilité de réutiliser facilement les détails de connexion d'un jeu de données à un autre jeu de données.
Création
Vous pouvez configurer une source à l'aide du connecteur de base de données en créant un nouveau jeu de données ou en ajoutant une nouvelle source à un jeu de données existant.
Sélectionnez l'une des bases de données prises en charge sur l'écran de création de la source.
Configurez les détails de connexion pour connecter Opendatasoft à votre base de données. Si vous avez déjà créé et enregistré une connexion à la base de données, vous souhaiterez peut-être la réutiliser.
Dans Requête , configurez la requête SQL personnalisée à utiliser pour extraire les données de votre base de données. Cette requête peut être arbitrairement complexe.
Dans Requête d'aperçu [facultatif] , configurez la requête SQL personnalisée à utiliser pour extraire les données de votre base de données en mode aperçu, lors de la configuration du jeu de données dans le back-office Opendatasoft.
Dans Requête incrémentielle [facultatif] , configurez la requête SQL personnalisée à utiliser pour extraire les données en mode incrémentiel. Voir ci-dessous pour plus de détails sur le mode d'extraction incrémentielle.
Dans Champ incrémentiel [facultatif] , configurez le nom du champ de résultat de la requête utilisé pour créer la clause de mise à jour incrémentielle. Voir ci-dessous pour plus de détails sur le mode d'extraction incrémentielle.
Détails de connexion
Base de données | Configuration des détails de connexion |
Snowflake | |
Denodo | |
Databricks | |
Azure SQL |
Utilisation d'une requête d'aperçu pour les ensembles de résultats volumineux
Il peut arriver que la requête que vous configurez mette du temps à s'exécuter et ralentisse considérablement (voire détériore) les écrans de configuration dans le back-office d'Opendatasoft.
Disons par exemple que vous souhaitez interroger une table de base de données cities_in_the world
table listant toutes les villes du monde. Le schéma de la base de données contient les champs city_name
, city_country
et number_of_inhabitants
.
La requête que vous utiliseriez dans le paramètre Query serait :
SELECT city_name, city_country, number_of_inhabitants FROM cities_in_the_world;
Cependant, pour diverses raisons dépendant du moteur de base de données utilisé en arrière-plan, cette requête peut prendre du temps à s'exécuter. Dans ce cas, utilisez le paramètre de requête Aperçu et définissez une requête plus légère dont vous savez qu'elle sera exécutée en temps opportun :
SELECT city_name, city_country, number_of_inhabitants FROM cities_in_the_world LIMIT 20;
Les requêtes de requête et de prévisualisation doivent générer des ensembles de résultats avec un schéma de table identique (liste de champs et types de champs).
Mise à jour incrémentielle d'un jeu de données avec une source de base de données
Lorsqu'un jeu de données avec une source de base de données est à nouveau publié manuellement ou via la planification, le contenu du jeu de données précédent est effacé et tout le contenu de la table de base de données est à nouveau traité. Cependant, il existe de nombreux cas d'utilisation où cette approche ne convient pas. Vous pouvez, par exemple, créer un ensemble de données à partir d'une table de base de données contenant une mesure de température quotidienne pour des emplacements spécifiés.
Les temperatures
de la table de la base de données contiendraient les champs :
Nom de domaine | Type de champ |
| VARCHAR |
| DATE |
| FLOTTANT |
Vous configurerez ensuite le paramètre Query suivant :
SELECT location, date, temperature FROM temperatures;
Vous configurez ensuite le jeu de données pour qu'il soit mis à jour quotidiennement grâce au planificateur interne d'Opendatasoft. La première mise à jour récupère toutes les données historiques. Et tous les deux jours, au moment de la mise à jour, le contenu de l'ensemble de données est nettoyé et tout le contenu de la table est à nouveau récupéré. Ce n'est probablement pas ce à quoi vous vous attendez, car cette approche n'est certainement pas adaptée à la consommation de ressources.
Pour minimiser le volume de données synchronisées à chaque mise à jour, vous pouvez paramétrer le connecteur en mode incrémentiel. Pour ce faire, vous devez configurer les paramètres Requête incrémentielle et Champ incrémentiel .
Le paramètre de requête incrémentielle contient une requête basée sur un modèle, utilisée par le connecteur lors de la deuxième exécution de la mise à jour et des autres. Il doit contenir un espace réservé {INCR_CONDITION}
qui est automatiquement rempli par le connecteur. Par exemple:
SELECT location, date, temperature FROM temperatures WHERE {INCR_CONDITION};
Le paramètre Champ incrémentiel contient un nom de champ, dont la valeur est utilisée pour créer l'espace réservé {INCR_CONDITION}
. Ici, vous définiriez la date
de valeur . Par conséquent, le connecteur va scanner les valeurs de ce champ, garder la valeur la plus élevée en mémoire et l'utiliser pour la prochaine exécution du connecteur.
Considérons que les valeurs initiales dans la base de données sont :
emplacement | date | température |
Paris | 2023-04-01 | 25 |
Londres | 2023-04-01 | 22 |
Boston | 2023-04-01 | 29 |
Paris | 2023-04-02 | 24 |
Londres | 2023-04-02 | 23 |
Boston | 2023-04-02 | 22 |
Pour le traitement initial, le connecteur de base de données exécutera la requête SQL définie dans le paramètre Query :
SELECT location, date, temperature FROM temperatures;
Il ira donc chercher les 6 enregistrements ci-dessus.
Disons que l'ensemble de données est configuré pour être mis à jour quotidiennement. Et que le 2023-04-03, 3 nouveaux enregistrements sont ajoutés au tableau :
emplacement | date | température |
Paris | 2023-04-03 | 21 |
Londres | 2023-04-03 | 19 |
Boston | 2023-04-03 | 18 |
Lors du second traitement, le connecteur base de données récupère la valeur la plus élevée du champ date
identifié lors du premier traitement (2023-04-02) et l'utilise pour réécrire la requête Incrémentale :
SELECT location, date, temperature FROM temperatures WHERE date >= '2023-04-02';
De cette façon, seuls les enregistrements du 2023-04-02 et du 2023-04-02 seront récupérés.
Les types pris en charge pour le champ de paramètre Incrémental sont : INT, DOUBLE, DATE et DATETIME.
Le connecteur de base de données utilise une condition greater or equals pour s'assurer que les enregistrements qui ont été ajoutés récemment (après l'exécution du connecteur précédent) ne sont pas manqués.
Base de données Snowflake
Les détails de connexion à remplir pour une base de données Snowflake sont décrits dans le tableau ci-dessous.
Le nom du paramètre | Description |
Serveur | Compte Snowflake auquel se connecter, sous la forme |
Identifiant de l'utilisateur | Identifiant d'utilisateur Snowflake |
Mot de passe | Mot de passe utilisateur Snowflake |
Rôle | Rôle Snowflake utilisé par Opendatasoft lors de l'exécution de requêtes (doit être un rôle valide pour l'utilisateur sélectionné) |
Base de données | Nom de la base de données à laquelle se connecter |
Schéma | Schéma de base de données |
Entrepôt | Entrepôt Snowflake (ressource de calcul) utilisé pour exécuter des requêtes effectuées par Opendatasoft |
Base de données Denodo
Les détails de connexion à renseigner pour une base de données Denodo sont décrits dans le tableau ci-dessous.
Le nom du paramètre | Description |
Serveur | Nom d'hôte du serveur qui héberge votre Denodo Virtual DataPort |
Port | Numéro de port du serveur qui héberge votre Denodo Virtual DataPort |
SSL requis | Si une connexion SSL doit être requise (définie uniquement si SSL est configuré sur le serveur Virtual DataPort) |
Identifiant de l'utilisateur | Identifiant utilisateur Denodo |
Mot de passe | Mot de passe utilisateur Denodo |
Base de données | Nom de la base de données à laquelle se connecter |
Base de données Azure SQL
Les détails de connexion à renseigner pour une base de données Azure SQL sont décrits dans le tableau ci-dessous.
Parameter name | Description |
Serveur | Nom d'hôte du serveur qui héberge votre Azure SQL Virtual DataPort |
Identifiant de l'utilisateur | Identifiant utilisateur Azure SQL |
Base de données | Nom de la base de données à laquelle se connecter |
Mot de passe | Mot de passe utilisateur Azure SQL |