data-diff, compare-data
El comando data-diff ejecuta uno o más trabajos de comparación de datos de BD configurados previamente. Por defecto, los resultados de la comparación se muestran en la línea de comandos en formato XML.
Para ejecutar archivos *.dbdif con DiffDog Server recomendamos ejecutar DiffDog Server en el mismo equipo que la aplicación de escritorio DiffDog o bien en un equipo Windows. Si DiffDog Server se ejecuta en un equipo o en un sistema operativo distinto, debe tener en cuenta estas limitaciones:
•Si la comparación incluye archivos CSV, solo puede ejecutar archivos .dbdif en servidores Windows. Para que la comparación se realice con éxito todas las rutas de acceso a los archivos CSV que eran válidas en el equipo de escritorio deben serlo también en el equipo servidor.
•Si la comparación incluye bases de datos, el equipo servidor debe estar configurado y ser capaz de establecer y mantener la conexión de BD. Es decir, debe tener instalados los controladores de la BD y cumplir con cualquier otro requisito necesario para la conexión también en el equipo de destino. Por ejemplo, si el archivo *.dbdif incluye una conexión que necesita un controlador ODBC del proveedor de BD, debe tener ese controlador instalado también en el equipo servidor. Tenga en cuenta que algunos métodos de conexión a bases de datos admitidos en Windows no son compatibles con Linux y macOS. Para más información consulte Bases de datos compatibles.
Si configura los trabajos de comparación directamente en DiffDog Server (en vez de con archivos .dbdif) puede ejecutarlos independientemente de la plataforma.
Sintaxis
diffdogserver data-diff [opciones] {job} ...
diffdogcmdlclient data-diff [opciones] {job} ...
Notas
•El argumento job hace referencia a una sección [datadiff] definida en el archivo de configuración del cliente.
•El argumento job se puede especificar más de una vez para ejecutar múltiples trabajos de comparación de BD en una sola ejecución del comando.
•Las opciones --server y --port solo se utilizan con diffdogcmdlclient. Especifican los detalles de conexión del servidor.
•Controle el tipo de resultado (texto, XML) configurando la opción output-mode, ya sea en el archivo de configuración o en la línea de comandos (ver Opciones más abajo).
•La ruta del archivo de salida se establece a partir de las opciones client-output-path o server-output-path(ver Ejemplo más abajo).
•Para obtener los resultados de la comparación como valor numérico compruebe el valor de la variable de entorno %ERRORLEVEL% después de ejecutar este comando. Estos son los valores posibles:
Código de salida | Significado |
0 | No existen diferencias |
1 | Existen diferencias |
2 | Ha ocurrido un error |
Opciones
Especifica la ruta de acceso a un archivo de configuración de cliente que contiene la información de datadiff y los detalles de la conexión a DiffDog Server.
Si no configura la opción --c, entonces diffdogcmdlclient intenta leer el archivo de configuración del cliente desde el mismo directorio que el ejecutable. Si no hay ningún archivo de configuración en el mismo directorio, se utilizan los valores predeterminados que muestra el comando showcfg de la línea de comandos (los mismos valores del tema Archivo de configuración del cliente).
|
Establece el nivel de información que se ofrece en los mensajes de información, advertencia y error. Los valores válidos son:
•none: No informa de nada. •info: Informa acerca de mensajes de información, advertencia y error. •warning: Informa acerca de mensajes de advertencia y error. •error: (Predeterminado) Solo informa acerca de mensajes de error.
|
Indica el puerto desde el que DiffDog Server escucha las solicitudes. Si esta opción no está configurada, se utilizará el puerto especificado en el archivo de configuración del cliente (29800 por defecto). La opción --port anula lo configurado en el archivo de configuración.
|
Indica el servidor desde el que DiffDog Server escucha las solicitudes. Si esta opción no está configurada, se utilizará el servidor especificado en el archivo de configuración del cliente (127.0.0.1 por defecto). La opción --server anula lo configurado en el archivo de configuración.
|
Evita que el resultado estándar sea visible en la línea de comandos. Los valores válidos son:
•true: No muestra el resultado estándar en la ventana del terminal. •false: (Predeterminado) Muestra el resultado estándar en la ventana del terminal.
|
Indica el formato de salida del informe generado. Estos son los valores disponibles: text, sql, xml, html. La opción predeterminada es sql.
Tiene sentido generar el informe en formato SQL cuando el lado derecho de la comparación de datos es una base de datos. Contiene instrucciones SQL que combinan datos del lado izquierdo con datos del lado derecho de la comparación. Por ejemplo, si faltan filas en el lado derecho, entonces se generan instrucciones INSERT. En cambio, si en el lado derecho sobran filas, entonces se generan instrucciones DELETE. Para los valores modificados, se generan instrucciones UPDATE.
Sin embargo, cuando el lado izquierdo de la comparación es una base de datos y el lado derecho es un archivo CSV, entonces la opción predeterminada es text.
|
Ejemplos
Este comando ejecuta un único trabajo de comparación de BD llamado reports.
diffdogserver data-diff reports
Se presume que el archivo de configuración del cliente contiene una sección [datadiff:reports], como en este fragmento:
[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
En el archivo de configuración anterior los orígenes de datos [datasource:left_data] y [datasource:right_data] proporcionan los datos para los lados derecho e izquierdo de la comparación. El origen de datos left_data apunta a la tabla products de una BD SQLite local. El origen de datos right_data apunta a la tabla PRODUCTS de una BD SQL Server. Las dos tablas tienen una clave principal, por lo que no es necesario especificar una columna clave usando la opción key-column-by-name.
La sección [datadiff:reports] indica que ambos orígenes de datos mencionados más arriba son los lados izquierdo y derecho de la comparación. También hace la asignación de las columnas que se van a comparar. En este ejemplo, las columnas primera, segunda y tercera de la izquierda están asignadas, respectivamente, a las columnas primera, segunda y tercera de la derecha. Se ha configurado que el resultado de la comparación debe estar en formato texto y guardarse en un archivo de texto local.
Para ver todas las opciones que se pueden definir en un origen de datos, consulte Configurar orígenes de datos . Para ver las opciones que puede definir en un trabajo de comparación de BD, consulte Configurar comparaciones de CSV y BD .