Altova DiffDog Server 2024 

Configurar comparaciones de CSV y BD

Inicio Anterior Inicio Siguiente

Una comparación de datos de BD supone comparar un origen de datos "izquierdo" (tabla, vista o conjunto de registros obtenido con una consulta SQL) con uno "derecho".

 

Para configurar una comparación de datos abra el archivo de configuración del cliente y añada una sección [datadiff:<name>] nueva donde <name> sea el nombre único con el que quiere identificar esta comparación de BD. En el trabajo de comparación de BD lo que hace es indicar qué origen de datos es el "izquierdo" y cuál es el "derecho". Se asume que ya ha creado anteriormente dos o más orígenes de datos, como se explica en 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. Ejemplo:

 

enable-driver-logging=true

 

Tenga en cuenta que activar esta opción podría ralentizar la ejecución.

 

server-left, server-right

Parámetro condicional. Esta opción permite definir una de las partes (derecha o izquierda) de la comparación en el archivo de configuración del servidor (no el archivo de configuración del cliente). La opción debe apuntar a un origen de datos designada, tal y como está definida en el archivo de configuración del servidorc DiffDog Server. Ejemplo:

 

server-left=products

server-right=resourcesdb

 

Para hacer que apunte a un origen de datos en el equipo en el que se ejecuta el cliente de línea de comandos de DiffDog, use las opciones left y right (véase más abajo).

 

left, right

Parámetro condicional. Esta opción configura las partes derecha o izquierda de la comparación. La opción debe hacer referencia a un origen de datos designada [datasource:<some_name>] tal y como está definida en el archivo de configuración del cliente en el equipo en que se ejecuta la comparación. Ejemplo:

 

left=hr

right=testdb

 

Si no define estas opciones, entonces debe definir las opciones server-left o server-right. 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 en que se ejecuta el cliente de línea de comandos DiffDog (sin servidor). El origen de datos "testdb" se define en el archivo de configuración del cliente, en el equipo en que se ejecuta DiffDog Server.

 

map

Parámetro opcional. Esta opción indica qué columnas del lado izquierdo de la comparación se deben comparar con cuáles 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 estar entrecomillado. Ejemplo:

 

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

 

Por cada par de columnas del ejemplo anterior, la parte que va antes de "=>" corresponde al lado izquierdo y la parte que va después de esa flecha corresponde al lado derecho.

 

En el caso de los archivos CSV puede hacer referencia a las columnas usando el nombre de la columna (si la primera columna es un encabezado) o usando nombres como c1, c2, etc., donde el número corresponde al índice de la columna, empezando por el 1.

 

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 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 aplica a los campos que tengan un tipo de datos que el controlador reconozca como XML. Esta opción no afecta a los campos de BD que almacenen XML, como varchar o clob. Si necesita tratar estos campos como si fueran de tipo XML use la opción sql y realice una conversión de tipo a XML con consultas SQL.

 

Si define esta opción se siguen aplicando las opciones de comparación que pueda haber en el archivo de configuración o que se hayan indicado en la línea de comandos. En Windows, si DiffDog está instalado en el mismo equipo que el cliente de línea de comandos de DiffDog, entonces también se aplican las opciones XML del registro. DiffDog Server no lee las opciones del registro de Windows. Siempre puede ver las opciones actuales de la configuración del cliente ejecutando el comando showcfg. Para ver las opciones de la 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. Se aplican solamente a campos de BD de tipo texto, como varchar, clob, etc. Define cómo deben tratarse en la comparación los espacios en blanco. Estos caracteres pueden ser los siguientes: espacios, tabulaciones, retornos de carro y avances de línea

 

normalize

Se considera que 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 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. Se aplica solamente a campos de BD de tipo texto, como varchar, clob, etc. Son valores válidos:

 

true

Realiza una comparación que no distingue entre minúsculas y mayúsculas (por ejemplo, "A" y "a" se consideran iguales).

false

(Predeterminada) Realiza una comparación que distingue entre minúsculas y mayúsculas (por ejemplo, "A" y "a" se consideran distintas).

 

server-output-path

Parámetro opcional. Indica la ruta en el servidor donde se guardarán los resultados de la comparación, por ejemplo:

 

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

 

Si tanto el cliente de la línea de comandos de DiffDog como DiffDog Server están instalados en el mismo equipo puede usar indistintamente server-output-path y client-output-path.

 

Si este parámetro no está definido, entonces los resultados de la comparación aparecerán en la línea de comandos (siempre y cuando no haya activado la opción -quiet=true).

 

client-output-path

Parámetro opcional. Indica la ruta en el equipo cliente donde se guardan los resultados de la comparación, por ejemplo:

 

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

 

Si este parámetro no está definido, entonces los resultados de la comparación aparecerán en la línea de comandos (siempre y cuando no haya activado la opción -quiet=true).

 

output-mode

Parámetro opcional. Indica el formato de salida de los resultados de la comparación. Son valores válidos 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 solo es sirve para comparaciones en las que el lado derecho sea 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 resultarán en una diferencia porque la segunda fila de la tabla izquierda está vacía, por lo que no equivale a la fila correspondiente en la tabla de la derecha. Sin embargo, si establece la opción treat-null-as-empty en true, los dos conjuntos de registros se consideran como iguales.

dds_null_recordsets

© 2017-2023 Altova GmbH