Il est possible de configurer pour une connexion source plusieurs bases de données. Cela permet de les consolider automatiquement lors d'un ETL.
Les bases de données d'une connexion sont listées dans la partie gauche de la fenêtre de propriétés de la connexion.
Le mode multi-bases s'applique automatiquement dès qu'une deuxième base est ajoutée.
Les bases de données doivent avoir la même structure :
- La même syntaxe.
- Les mêmes tables (celles utilisées dans le mapping) avec les mêmes champs.
Si les noms des tables varient un peu, il est possible d'utiliser les variables de connexions.
Tout modèle d'une connexion multi-bases comprend un champ Base (nom SQL `DATABASE_NAME`). Ce champ contient, pour chaque enregistrement, le nom de la base de données de la connexion dont il provient. Le champ "Base" ne peut être ni supprimé ni dupliqué tant que la connexion comprend plusieurs bases de données. Sa formule et la plupart de ses propriétés ne sont pas modifiables. Seuls son nom, sa description et son indexation peuvent être modifiés.
Lors de l'ETL, les données de chaque base sont insérées les unes à la suite des autres.
Important
Les bases d'une connexion sont classées selon l'ordre alphabétique de leur nom, et cet ordre ne peut pas être modifié. La première base est la première de ce classement. C'est elle qui sert de référence pour l'ajout d'une table et pour la définition des champs de même nom.
Spécificités :
Champ absent dans une base :
- Lorsqu'un champ est absent d'une ou plusieurs bases, la valeur "NULL" est insérée pour les enregistrements de ces bases. Cette règle s'applique uniquement si les champs de la table ont été actualisés sur toutes les bases de la connexion (choix "Oui"). Après une actualisation sur la première base uniquement, l'absence d'un champ dans une autre base provoque une erreur lors de l'ETL.
- Le chargement des modèles d'une connexion multi-bases est obligatoire.
- Le champ Base fait partie de la clé primaire du modèle lorsqu'il en existe une. Sinon, il est indexé. Il est conservé si la connexion revient à une seule base de données ; il peut alors être supprimé.
Lors de l'actualisation des tables, les choix ci-dessous sont possibles :
Oui : les informations des champs sont recherchées sur toutes les bases de la connexion.
- Recommandé pour couvrir le cas de colonnes absentes de certaines bases.
- Première base uniquement : les informations des champs sont recherchées uniquement sur la première base de la connexion.
- Annuler : aucune actualisation.
Spécificités
Colonne homonyme de type divergent entre bases :
- Si deux bases exposent la même colonne (même nom) avec des types / tailles différents, seule la définition de la première base est retenue.
La pop-up d'actualisation des tables apparaît lors des actions suivantes :
- Actualisation des champs des tables (ruban) ou d'une table (menu contextuel).
- Changement de la source d'une table.
- Ajout d'une table au mapping.
- Validation des propriétés de la connexion, sauf si l'option d'actualisation automatique des tables est activée.
- Une table ne peut être ajoutée au mapping que si elle existe dans la première base de la connexion. Lors de l'ETL, l'absence d'une table dans une base provoque une erreur sur cette base.

