data-diff, compare-data
La commande data-diff exécute une ou plusieurs tâches de comparaison des données de base de données configurées précédemment. Par défaut, le résultat de comparaison est affiché dans la ligne de commande dans le format XML.
L'exécution de fichiers *.dbdif avec DiffDog Server est plus pratique si DiffDog Server est exécuté soit sur le même ordinateur que DiffDog desktop, ou sur un appareil Windows. Si DiffDog Server est exécuté sur un autre appareil ou un autre système d'exploitation, les limitations suivantes s'appliquent :
•Si la comparaison implique des fichiers CSV, l'exécution de fichiers .dbdif est prise en charge uniquement sur des serveurs Windows. Pour que la comparaison soit réussie, tous les chemins de fichier CSV qui ont été valides sur l'appareil desktop doivent être valides sur l'appareil serveur.
•Si des connexions de base de données sont impliquées, l'appareil de serveur doit être configuré et doit être capable de gérer la connexion de la base de données. Concrètement, les pilotes de base de données et tout autre exigences préalables exigées par la connexion doivent être présents sur le système d'exploitation cible également. Par exemple, si le fichier .dbdif comprend une connexion qui nécessite un pilote ODBC de la part du fournisseur de base de données, ce pilote doit être installé sur le serveur également. Veuillez noter que certaines méthodes de connexion de base de données prises en charge par Windows ne sont pas prises en charge sur Linux et macOS. Pour plus d'informations, voir Bases de données prises en charge.
Si vous configurez les tâches de comparaison directement dans DiffDog Server (par opposition à l'utilisation de fichiers *.dbdif), vous pouvez les exécuter tout de même sur la plate-forme.
Syntaxe
diffdogserver data-diff [options] {job} ...
diffdogcmdlclient data-diff [options] {job} ...
Notes
•L’argument job fait référence à une section [datadiff] définie dans le fichier de configuration client.
•L'argument job peut être spécifié plus d'une fois pour exécuter plusieurs tâches de comparaison de base de données en une exécution de la commande.
•Les options --server et --port s’appliquent à diffdogcmdlclient uniquement. Elles spécifient les détails de connexion du serveur.
•Contrôlez le genre de sortie (texte, XML) en définissant l’option output-mode, soit dans le fichier de configuration ou sur la ligne de commande (voir lesOptions ci-dessous).
•Le chemin du fichier de sortie est défini soit depuis les options client-output-path ou server-output-path (voir l’Exemple ci-dessous).
•Pour obtenir la sortie de comparaison en tant que valeur numérique, contrôlez la valeur de la variable d'environnement %ERRORLEVEL% après avoir exécuté cette commande. Les valeurs possibles sont :
Code Exit | Signification |
0 | Aucune différence n'existe |
1 | Des différences existent |
2 | Une erreur s'est produite |
Options
Spécifie le chemin vers un fichier de configuration client contenant l’information datadiff et les détails de la connexion à DiffDog Server.
Si vous ne configurez pas l’option --c, alors diffdogcmdlclient tente de lire le fichier de configuration client depuis le même répertoire que l’exécutable. S'il n'y a pas de fichier de configuration dans le même répertoire, alors les valeurs par défaut sont décrites par la commande CLI showcfg et dans la rubrique Fichier de configuration Client utilisée.
|
Définit le niveau de rapport pour les informations, avertissements et messages d'erreur. Les valeurs valides sont :
•aucun : Supprimer toutes les journalisations. •info : Rapporter des informations, avertissements et messages d'erreur. •avertissement : Rapporter des messages d'erreur et d'avertissements. •erreur : Rapporter (par défaut) uniquement des messages d'erreur.
|
Spécifie le port sur lequel DiffDog Server écoute les requêtes. Si cette option n’est pas définie, alors le port spécifié dans le Fichier de configuration Client sera utilisé (29800 par défaut). L’option -- port écrase le paramètre dans le fichier config.
|
Spécifie le serveur sur lequel DiffDog Server écoute les requêtes. Si cette option n’est pas définie, alors le serveur est spécifié dans le Fichier de configuration Client sera utilisé (127.0.0.1 par défaut). L’option --server écrase le paramètre dans le fichier config.
|
Évite la sortie standard d'être affichée dans la ligne de commande. Les valeurs valides sont :
•true : Ne pas afficher la sortie standard dans la fenêtre de terminal. •false : Affiche (par défaut) la sortie standard dans la fenêtre du terminal.
|
Spécifie le format de sortie du rapport généré. Les valeurs suivantes sont disponibles : text, sql, xml, html. L'option par défaut est sql.
Générer le rapport dans le format SQL est significatif lorsque le côté droit de la comparaison des données est une base de données. Il contient des instructions SQL qui fusionnent les données du côté gauche au côté droit de la comparaison. Par exemple, s'il manque des lignes à droite, des instructions INSERT sont générées. De même, s'il y a trop de lignes du côté droit, des instructions DELETE sont générées. Dans le cas de valeurs modifiées, des instructions UPDATE sont générées.
Néanmoins, lorsque le côté gauche de la comparaison est une base de données et que le côté droit est un fichier CSV, l'option par défaut est text.
|
Exemples
L'exemple suivant exécute une seule tâche de comparaison de données de base de données dénommée reports.
diffdogserver data-diff reports
On part du principe que le fichier de configuration client contient une section [datadiff:reports], comme la liste ci-dessous :
[datasource:left_data]
type = sqlite
path = c:\comparisons\db\Nanonull_Left.sqlite
table = "main"."products"
[datasource:right_data]
type = adonet
connection = Data Source=SQLSERV16;Initial Catalog=NANONULL;MultipleActiveResultSets=True;Password=7hiu57;Persist Security Info=True;User ID=altova
assembly = System.Data.SqlClient.SqlClientFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
class = System.Data.SqlClient
table = [NANONULL].[dbo].[PRODUCTS]
[datadiff:reports]
left = left_data
right = right_data
map = 1 => 1, 2 => 2, 3 => 3
output-mode=text
client-output-path=c:\comparisons\db\result.txt
Dans le fichier de configuration ci-dessus, [datasource:left_data] et [datasource:right_data] sont deux sources de données qui fournissent des données pour le côté gauche et droit de la comparaison. left_data pointe vers la table products provenant d'une base de données SQLite locale. right_data pointe vers la table PRODUCTS d'une base de données SQL Server. Les deux tables ont une clé primaire, il n'est donc pas nécessaire de spécifier une colonne clé en utilisant l'option key-column-by-name.
La section [datadiff:reports] définit les deux sources de données ci-dessus, respectivement, comme étant le côté gauche et le côté droit de la comparaison. De plus, elle mappe les colonnes qui doivent être comparées. Dans cet exemple, les première, deuxième et troisième colonnes en partant de la gauche sont mappées avec, respectivement, les première, deuxième et troisième colonnes en partant de la droite. Le résultat de comparaison est défini pour se trouver dans un format texte et sera enregistré sous un fichier de texte local.
Pour un ensemble d’options complètes qui peuvent être définies dans une source de données, voir comment Configurer Sources de données. Pour plus d'options que vous pouvez définir dans une tâche de comparaison de base de données, voir Configurer CSV et des comparaisons de base de données.