Altova DiffDog Server 2025 

Configurer les comparaisons de CSV et base de données

Accueil Préc Haut Suivant

Une comparaison de données de base de données implique la comparaison d'une source de données "gauche" (table, mode ou recordset extrait par une requête SQL) avec une source "droite".

 

Pour configurer une comparaison de données, ouvrir le fichier de configuration client et ajouter une nouvelle section [datadiff:<name>], où <name> est le nom unique par lequel vous souhaitez identifier cette comparaison de base de données. Dans la tâche de comparaison de base de données, vous spécifiez essentiellement, ce qui doit être la source de données "gauche" et ce qui doit être le côté "droit". On part du principe que vous avez déjà créé deux ou plusieurs sources de données tel que décrit dans Configurer des sources de données.

 

Les paramètres qui doivent être présents dans une section [datadiff] qui sont recensés ci-dessous.

 

enable-driver-logging

Paramètres optionnels. À activer si vous souhaitez que le pilote de base de données retourne des informations plus détaillées en cas d'erreur. Exemple :

 

enable-driver-logging=true

 

Veuillez noter que l'activation de cette option peut ralentir l'exécution.

 

server-left, server-right

Paramètres conditionnels. Cette option vous permet de spécifier que la source de données gauche ou droite de la comparaison est défini dans le fichier de configuration de serveur (pas dans le fichier de configuration client). L'option doit pointer vers une source de données nommée telle que définie dans le fichier de configuration de serveur sur l'appareil sur lequel DiffDog Server est exécuté. Exemple :

 

server-left=products

server-right=resourcesdb

 

Pour pointer vers une source de données sur l'appareil sur lequel le DiffDog Command Line Client est exécuté, utiliser les options left et right à la place (voir ci-dessous).

 

left, right

Paramètres conditionnels. Cette option définit le côté gauche ou droit de la comparaison. L'option doit se référer à une source de données nommée [datasource:<some_name>] telle qu'elle a été définie dans le fichier de configuration client sur l'appareil sur lequel la comparaison est exécutée. Exemple :

 

left=hr

right=testdb

 

Si vous ne configurez pas ces options, les options server-left ou server-right doivent être configurées à la place. Il est également possible de réaliser des comparaisons combinées entre les sources de données de client et les sources de données de serveur, par exemple :

 

left=hr

server-right=testdb

 

Dans l'exemple ci-dessus, la source de données "hr" se trouve sur l'appareil sur lequel le client DiffDog Command Line est exécuté (sans un serveur). La source de données "testdb" est définie dans le fichier de configuration de serveur sur l'appareil sur lequel DiffDog Server est exécuté.

 

map

Paramètres optionnels. Cette option spécifie quelles colonnes du côté gauche doivent être comparées à celles du côté droit de la comparaison. Par exemple, vous pourriez comparer des colonnes col1, col2, col3 depuis la table "left" avec des colonnes colA, colB, colC provenant du recordset "right". Pour indiquer une colonne, vous pouvez spécifier soit le nombre ordinal de la colonne, en commençant avec 1, ou le nom de la colonne. Si vous utilisez le nom de la colonne, le nom doit être contenu dans des guillemets. Exemple :

 

map = 1 => "col 2", 2 => "col1", "h" => 6, "i" => "x"

 

Pour chaque paire de colonnes affiché ci-dessus, la partie située avant "=>" signifie "du côté gauche" et la partie après "=>" signifie "du côté droit".

 

Dans le cas des fichiers CSV, vous pouvez vous référer aux colonnes en utilisant soit le nom de la colonne (si la première ligne est un en-tête), ou en utilisant c1c2, etc. où le nombre correspond à l'index de colonne, en commençant avec 1.

 

map=1=>c1,2=>c2

 

Si vous ne définissez pas de mappages de colonne, l'application tentera de mapper des colonnes automatiquement sur la base du nom et du type de données. Néanmoins, cela n'est pas garanti pour travailler correctement si les colonnes à gauche et à droite ont des noms et des types différents.

 

xml-aware

Paramètres optionnels. Si vous les activez, cette option effectue une comparaison XML (pas le texte) pour les champs de base de données de type XML. Cela s'applique uniquement aux champs dont le type de données est reconnu par le pilote en tant que XML. Les champs de base de données qui stockent XML en tant que varchar ou clob ne sont pas touchés par cette option. Si vous souhaitez traiter ce type de champs en tant que type XML, utiliser l'option sql à la place de table et effectuer une conversion de type sur XML au moyen de requêtes SQL.

 

Si vous définissez cette option, toutes les options de comparaison XML présentes dans le fichier de configuration ou spécifiées dans la ligne de commande s'appliqueront également. Sur Windows, si DiffDog est installé sur le même appareil que le Client DiffDog Command Line, alors les options XML présentes dans le registre s'appliqueront également. DiffDog Server ne lit pas les options de registre Windows. Vous pouvez toujours consulter les options de configuration actuels du client en exécutant la commande showcfg. Pour consulter les options de configuration du serveur, exécuter la commande showcfg du programme d'exécution du serveur.

 

Pour une référence à toutes les options de comparaison XML, voir la commande diff.

 

whitespace-mode

Paramètres optionnels. Ne s'applique qu'aux champs de base de données de type texte comme varchar, clob, etc. L'option définit comment les caractères d'espaces blancs doivent être traités pour la comparaison. Des caractères d'espaces blancs peuvent être les caractères suivants : espace, tabulateur, retour de chariot et saut de ligne.

 

normalize

Le Texte A est égal au Texte B si, après normalisation, les caractères dans le Texte A correspondent à ceux dans le Texte B. « Normalisation » signifie que plusieurs occurrences consécutives des caractères d'espace blanc sont remplacés par un seul caractère d'espace. De plus, les caractères d'espace blanc de début et de fin sont réduits pour chaque ligne de texte.

strip

Texte A est considéré égal au Texte B si, après avoir supprimé les caractères d'espaces blancs, des caractères dans le Texte A correspondent à ceux du Texte B. Autrement dit, tout caractère d'espace blanc est supprimé du texte et considéré comme n'étant pas pertinent pour la comparaison.

 

ignore-case

Paramètres optionnels. Ne s'applique qu'aux champs de base de données de type texte comme varchar, clob, etc. Valeurs valides :

 

true

Effectue une comparaison insensible à la casse (par exemple, "A" et "a" sont traités comme des égaux).

false

(Défaut) Effectue une comparaison sensible à la casse (par exemple, "A" et "a" ne sont pas traités comme des égaux).

 

server-output-path

Paramètres optionnels. Spécifie le chemin vers lequel les résultats de comparaison seront enregistrés sur le serveur, par exemple :

 

server-output-path=/path/on/server.xml

 

Si DiffDog Command Line Client et DiffDog Server sont tous les deux exécutés sur le même appareil, vous pouvez utiliser server-output-path et client-output-path de manière interchangeable.

 

Si ce paramètre n'est pas défini, la sortie de comparaison sera affiché dans la ligne de commande (si vous n'avez pas configuré l'option -quiet=true).

 

client-output-path

Paramètres optionnels. Spécifie le chemin vers lequel les résultats de comparaison seront enregistrés sur l'appareil client, par exemple :

 

client-output-path=/path/on/client.xml

 

Si ce paramètre n'est pas défini, la sortie de comparaison sera affiché dans la ligne de commande (si vous n'avez pas configuré l'option -quiet=true).

 

output-mode

Paramètres optionnels. Spécifie le format de sortie du résultat de comparaison. La valeurs valides sont text. xml et sql par exemple :

 

output-mode=xml

 

Lorsque cette option n'est pas définie, la valeur par défaut est text.

 

Veuillez noter que la valeur sql est importante uniquement si le côté droit de la comparaison est une base de données. Si output-mode=sql, le rapport de comparaison contiendra des scripts SQL nécessaires pour fusionner des données du côté gauche vers le côté droite.

 

treat-null-as-empty

Paramètres optionnels. Activer cette option uniquement si vous souhaitez traiter les valeurs de base de données NULL en tant que strings vides.

 

treat-null-as-empty=false

 

Par exemple, par défaut, une comparaison entre deux recordsets illustrée ci-dessous résultera en une différence, parce que la deuxième ligne à gauche est vide et n'est pas égal à la deuxième ligne à droite. Néanmoins, si vous définissez l'option treat-null-as-empty sur true, les deux recordsets seront considérés égaux.

dds_null_recordsets

© 2018-2024 Altova GmbH