Altova DiffDog Server 2025 

[datadiff]: Configurar una comparación

Inicio Anterior Inicio Siguiente

Una comparación de datos se define en una sección [datadiff] de un archivo de configuración del cliente o archivo de configuración del servidor y luego se ejecuta llamando al comando data-diff con DiffDog Server de la siguiente manera:

 

diffdogcmdlclient data-diff --c=client_config.ini reports

 

Para crear la comparación de datos en la configuración, añada una nueva sección [datadiff:<nombre>], donde <nombre> es el nombre único con el que desea identificar esta comparación de datos. En la sección [datadiff], se especifica básicamente cuáles deben ser los orígenes de datos del lado izquierdo y del lado derecho. Los orígenes de datos ya deben estar previamente configurados como se describe en [datasource]: Configurar orígenes de datos.

 

Más abajo se enumeran los parámetros que pueden aparecer en una sección [datadiff].

 

enable-driver-logging

Parámetro opcional. Actívelo si necesita que el controlador de la BD devuelva información más detallada en caso de errores. Tenga en cuenta que activar esta opción podría ralentizar la ejecución.

 

enable-driver-logging=true

 

server-left, server-right

Parámetro condicional. Esta opción le permite especificar que el origen de datos izquierdo o derecho de la comparación se defina en el archivo de configuración del servidor (no en el archivo de configuración del cliente). La opción debe apuntar a un origen de datos con nombre tal como se define en el archivo de configuración del servidor en el equipo donde se ejecuta DiffDog Server. Para apuntar a un origen de datos en el equipo donde se ejecuta el ejecutable de la línea de comandos del cliente, utilice en su lugar las opciones left y right (ver más abajo).

 

server-left=products

server-right=resourcesdb

 

left, right

Parámetro condicional. Esta opción configura el lado derecho o izquierdo de la comparación. La opción debe hacer referencia a un origen de datos con nombre [datasource:<algún_nombre>], tal como se define en el archivo de configuración del cliente en el equipo donde se ejecuta la comparación.

 

left=hr

right=testdb

 

Si no configura estas opciones, entonces debe configurar las opciones server-left o server-right (ver más arriba). También se pueden hacer comparaciones combinadas entre orígenes de datos del cliente y orígenes de datos del servidor. Por ejemplo:

 

left=hr

server-right=testdb

 

En el ejemplo anterior, el origen de datos hr está en el equipo donde se ejecuta el ejecutable de la línea de comandos del cliente, mientras que el origen de datos testdb está definido en el archivo de configuración del servidor en el equipo donde se ejecuta DiffDog Server.

 

map

Parámetro opcional. Esta opción especifica qué columnas del lado izquierdo deben compararse con qué columnas del lado derecho. Por ejemplo, puede que quiera comparar las columnas col1, col2 y col3 del lado izquierdo de la tabla con las columnas colA, colB y colC del conjunto de registros del lado derecho. Para indicar una columna, puede usar el número ordinal de esa columna, empezando por el 1, o el nombre de dicha columna. Si usa el nombre, este debe ir entre comillas.

 

map = 1=>"col2", 2=>"col3", "h"=>6, "i"=>"x"

 

Para cada par de columnas del ejemplo anterior, la asignación es: left-side column  => right-side column.

 

En el caso de los archivos CSV, puede hacer referencia a las columnas usando el nombre de la columna (si la primera fila es de encabezado) o usando nombres como c1, c2, etc., donde el número corresponde al índice de la columna, empezando por el 1. Por ejemplo, el lado izquierdo de esta asignación es una base de datos, mientras que el lado derecho es un archivo CSV:

 

map=1=>c1,2=>c2

 

Si no define las asignaciones de las columnas, la aplicación intentará asignar las columnas de forma automática basándose en su nombre y tipo de datos. Sin embargo, esas asignaciones pueden no funcionar correctamente, sobre todo si las columnas de uno y otro lado tienen nombres y tipos distintos.

 

xml-aware

Parámetro opcional. Si se habilita, esta opción realiza comparaciones XML (no de texto) para campos de BD de tipo XML. Esto solo se utiliza para los campos cuyo tipo de datos es reconocido por el controlador como XML. Los campos de base de datos que almacenan XML como varchar o clob no se ven afectados por esta opción. Si necesita tratar estos campos como datos de tipo XML, utilice la opción sql en lugar de table y realice la conversión de tipos a XML mediante consultas SQL.

 

Si establece esta opción, se aplicarán también todas las opciones de comparación XML presentes en el archivo de configuración o especificadas en la línea de comandos. En Windows, si DiffDog está instalado en el mismo equipo que el ejecutable de la línea de comandos del cliente, también se aplicarán las opciones XML presentes en el registro. DiffDog Server no lee las opciones de registro de Windows. Puede ver las opciones configuración actuales del cliente en todo momento ejecutando el comando showcfg. Para ver las opciones de configuración del servidor, ejecute el comando showcfg del ejecutable del servidor.

 

Para ver la referencia de todas las opciones de comparación XML consulte el comando diff.

 

whitespace-mode

Parámetro opcional. Solamente se utilizan para campos de BD de tipo texto, como varchar, clob, etc. Define cómo deben tratarse en la comparación los espacios en blanco. Se consideran espacios en blanco todos estos caracteres: espacios, tabulaciones, retornos de carro y avances de línea.

 

normalize

El texto A es igual que el texto B si, tras la normalización, los caracteres del texto A se corresponden con los del texto B. El término normalización significa que las repeticiones consecutivas de espacios en blanco se reemplazan por un solo carácter de espacio. Además, los espacios en blanco iniciales y finales de cada línea del texto se eliminan.

strip

Se considera que el texto A es igual que el texto B si, tras la eliminación de los espacios en blanco, los caracteres del texto A se corresponden con los del texto B. En otras palabras, todos los espacios en blanco se eliminan del texto y no se tienen en cuenta para la comparación.

 

ignore-case

Parámetro opcional. Solamente se utilizan para campos de BD de tipo texto, como varchar, clob, etc. Los valores válidos son false (valor predeterminado) y true, que especifican, respectivamente, comparaciones que distinguen mayúsculas de minúsculas y comparaciones que no distinguen mayúsculas de minúsculas.

 

server-output-path

Parámetro opcional. Especifica la ruta en la que se guardarán los resultados de la comparación en el equipo servidor. Si no se configura este parámetro, los resultados de la comparación se mostrarán en la línea de comandos (suponiendo que no se haya configurado la opción -quiet=true).

 

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

 

Si el cliente y el servidor se ejecutan en el mismo equipo, puede usar indistintamente server-output-path y client-output-path.

 

client-output-path

Parámetro opcional. Especifica la ruta en la que se guardarán los resultados de la comparación en el equipo cliente. Si no se configura este parámetro, los resultados de la comparación se mostrarán en la línea de comandos (suponiendo que no se haya configurado la opción -quiet=true).

 

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

 

Si el cliente y el servidor se ejecutan en el mismo equipo, puede usar indistintamente server-output-path y client-output-path.

 

output-mode

Parámetro opcional. Indica el formato de salida de los resultados de la comparación. Los valores válidos son text, xml y sql. Por ejemplo:

 

output-mode=xml

 

Si esta opción no está activada, el valor predeterminado es text. Tenga en cuenta que el valor sql debe usarse solo cuando el lado derecho de la comparación es una base de datos. Si output-mode=sql, entonces el informe de la comparación incluirá los scripts SQL necesarios para combinar los datos de izquierda a derecha.

 

treat-null-as-empty

Parámetro opcional. Habilite esta opción solo si necesita tratar los valores de BD NULL como cadenas vacías.

 

treat-null-as-empty=false

 

Por ejemplo, por defecto, una comparación entre los dos conjuntos de registros del ejemplo siguiente encontraría una diferencia porque la segunda fila de la izquierda está vacía, por lo que no es igual que la fila correspondiente de la derecha. Sin embargo, si configura la opción treat-null-as-empty como true, los dos conjuntos de registros se consideran iguales.

dds_null_recordsets

 

© 2019-2025 Altova GmbH