[datasource]: Configurar orígenes de datos
Para comparar datos tabulares procedentes de una base de datos o de un archivo CSV, los orígenes de datos que se van a comparar deben definirse de forma que incluyan los detalles de conexión a la base de datos y otros parámetros relevantes. Debe haber un origen de datos por cada tabla de BD, vista o consulta SQL personal que quiera incluir en la comparación. Si la comparación incluye archivos CSV, cada uno de ellos debe tener un origen de datos.
Configurar orígenes de datos
Un origen de datos se define en la sección [datasource:<nombre>] de un archivo de configuración. Abra el archivo de configuración del cliente y agregue una nueva sección [datasource:<nombre>], donde <nombre> es el nombre único con el que desea identificar este origen de datos.
Los orígenes de datos también se pueden agregar al archivo de configuración del servidor . Esto puede ser útil si necesita conectarse al origen de datos desde el equipo en el que se está ejecutando DiffDog Server (no desde el cliente de línea de comandos de DiffDog). Sin embargo, tenga en cuenta que las conexiones del lado del servidor que requieren autenticación de Windows para bases de datos como SQL Server pueden presentar problemas en este caso. Esto se debe a que el servicio DiffDog Server se ejecuta como un usuario separado que podría no tener acceso a la base de datos. En este caso, la solución consiste en definir el origen de datos en el archivo de configuración del cliente, ya que el cliente de línea de comandos de DiffDog se ejecuta como el usuario que ejecuta el comando data-diff.
Información general sobre orígenes de datos
Cada fuente de datos debe proporcionar una tabla, vista o algún conjunto de registros con nombre personalizado recuperado mediante una consulta SQL. Para especificar esto, configure las opciones table o sql tal y como se explica más abajo. Estas opciones se excluyen mutuamente. Es importante que cada tabla, vista o conjunto de registros tenga al menos una columna que garantice que cada fila es única. Esta columna (o columnas) se denominará en adelante columna «clave». Si la tabla tiene una clave primaria, entonces ya existe una columna clave que garantiza que la fila es única. De lo contrario, recomendamos que indique qué columna o columnas deben tratarse como columnas «clave». Para ello configure las opciones key-columns-by-name y key-columns-by-ordinal, que se explican más abajo.
En la sección [datadiff] (que define un trabajo de comparación) se nombrará un origen de datos como uno de los lados de una comparación.
A continuación se enumeran los parámetros que pueden estar presentes en una sección [datasource] del archivo de configuración. Consulte los ejemplos de datasource en el siguiente tema.
type
Parámetro obligatorio. Indica el tipo de conexión de BD. Los valores válidos son ado, adonet, csv, jdbc, odbc, postgresql y sqlite.
type=sqlite
Las conexiones de tipo csv, postgresql y sqlite vienen ya integradas y no necesitan controladores. Para otros tipos de BD, elija un método de conexión de BD apropiado para el equipo en el que se vaya a ejecutar el trabajo de comparación. Tales conexiones requieren que los controladores de BD correspondientes estén instalados en el equipo. Para más información, consulte Bases de datos compatibles.
path
Especifica la ruta de acceso del archivo de base de datos. Puede utilizarse con archivos CSV y bases de datos SQLite. No configure este parámetro si quiere usar el parámetro connection, ya que se excluyen mutuamente.
path=C:\Articles.sqlite
path=C:\data.csv
connection
Parámetro condicional. Indica la cadena de conexión a la BD.
•No configure este parámetro si quiere usar el parámetro path, ya que se excluyen mutuamente.
•Llame al comandocomando db-drivers para ver las conexiones disponibles en el equipo local en un formato que pueda copiar y pegar.
•Además, si tiene una licencia de DatabaseSpy, puede usar esta aplicación para crear una conexión de BD y después volver a utilizar los detalles de la conexión tal y como aparecen en la ventana Propiedades.
SQL Server (ADO)
connection=Data Source=DBSQLSERV;UserID=altova_user;Password=dhjdf84h;
Provider=SQLNCLI11.1;Initial Catalog=NANONULL;Persist Security Info=true
DB2 (JDBC)
connection=jdbc:db2://mydb2-105:50000/NANONULL
Oracle (JDBC)
connection=jdbc:oracle:thin:@dbora12c:1521:orcl12c
PostgreSQL (nativa)
connection=my.dbserver.com
•Para conexiones nativas PostgreSQL, connection también puede ser la dirección IP del servidor de BD, por ejemplo 127.0.0.1.
•La BD y el puerto de una conexión nativa PostgreSQL se indican en las opciones database y port.
extender-classpath
Este parámetro se utiliza solo para conexiones JDBC. Es opcional y le permite extender la ruta de la clase Java en el equipo donde se ejecuta DiffDog Server. Esto podría ser útil, por ejemplo, cuando no disponga de los medios o privilegios para cambiar la variable de entorno CLASSPATH del sistema operativo. Tenga en cuenta que no es necesario configurar este valor si todas las rutas de clase que requiere la conexión JDBC ya están configuradas a través de la variable de entorno CLASSPATH. Si configura este valor, se tendrá en cuenta además del valor que ya pueda estar configurado en la variable de entorno CLASSPATH.
Por ejemplo, el siguiente valor agrega dos archivos .jar a la ruta de de la clase para establecer una conexión a una base de datos IBM DB2:
extend-classpath=C:\jdbc\db2\db2jcc.jar;C:\jdbc\db2\db2jcc_license_cu.jar
Las rutas del controlador JDBC definidas en la variable CLASSPATH, así como cualquier ruta de archivo .jar especificada en el parámetro extend-classpath se envían a Java Virtual Machine (JVM). La JVM decide entonces qué controladores utilizar para establecer una conexión. Se recomienda hacer un seguimiento de las clases Java que se cargan en la JVM para evitar conflictos con el controlador JDBC y resultados inesperados al conectarse a la base de datos.
database
Parámetro obligatorio y aplicable únicamente a conexiones PostgreSQL nativas. Indica la BD de la conexión PostgreSQL.
database = ZooDB
port
Indica el puerto de la conexión de BD PostgreSQL. Se utiliza solamente para conexiones de BD PostgreSQL nativas.
separator
Parámetro opcional. Se utiliza solamente para orígenes de datos CSV. Indica el separador de campos utilizado en el archivo CSV. Si no se especifica, se asume que el separador predeterminado es la coma. Los valores válidos son: comma (predeterminado), tab y semicolon.
separator=comma
table
Parámetro condicional. Indica el nombre completo de la tabla o vista de BD que se va a usar en el lado derecho o izquierdo de la comparación. Si configura este parámetro, no configure sql, ya que se excluyen mutuamente.
SQL Server
table=[HR].[dbo].[Employees]
IBM DB2
table="ALTOVA_ADMIN"."customers"
Consejo: Si tiene instalado DatabaseSpy, puede obtener el nombre completo de la tabla haciendo clic en la tabla en el explorador y seleccionando Mostrar en Editor SQL | Ruta de acceso en el menú contextual.
key-columns-by-name
Por cada tabla, vista o conjunto de registros, debe haber al menos una columna que garantice que cada fila es única. Esta columna (o columnas) se denominará en adelante columna «clave». Si la tabla tiene una clave primaria, entonces ya existe una columna clave que garantiza que la fila es única. De lo contrario, recomendamos que indique qué columna o columnas deben tratarse como columnas «clave». No es necesario que sean columnas que formen parte de una clave primaria o única en la tabla.
key-columns-by-name="guid"
key-columns-by-name="first_name","last_name","email"
Definir columnas «clave» es opcional, pero es la mejor práctica. Si no las define, la aplicación las definirá de forma automática, pero puede que no lo haga de forma uniforme para todos los controladores de BD. Además, esa detección solo funciona para tablas o vistas, por lo que recomendamos que defina las columnas «clave» de forma explícita si está usando consultas SQL que devuelven valores computados o resultados devueltos por procedimientos almacenados.
Si especifica columnas clave, el número de columnas clave debe ser el mismo para el origen de datos izquierdo y derecho. Por ejemplo, si especifica dos columnas clave para el origen de datos izquierdo y solo una columna clave para el origen de datos derecho, la comparación dará error.
En el caso de los archivos CSV, puede referirse a las columnas clave por nombre:
•Si la primera fila del archivo CSV contiene los nombres de columna, puede usar el nombre de columna. Por ejemplo: key-columns-by-name="first","last".
•Si no hay ninguna fila de encabezado en el archivo CSV, puede usar nombres como c1, c2, c3, etc., donde cada número identifica la columna correspondiente. Por ejemplo: key-columns-by-name=c1,c2.
key-columns-by-ordinal
Puede especificar una columna «clave» ya sea por su nombre (ver más arriba) o por su número ordinal en la tabla, comenzando por 1. Esta opción le permite especificar columnas clave por su número ordinal.
key-columns-by-ordinal=1
key-columns-by-ordinal=1,2,5
Nota: Si especifica columnas clave, el número de columnas clave debe ser el mismo para el origen de datos izquierdo y derecho.
user
Parámetro condicional. Especifica el nombre de usuario necesario para conectarse a la base de datos. Este parámetro no es necesario si la base de datos acepta conexiones anónimas o si la cadena de conexión ya incluye el nombre de usuario (consulte el parámetro connection).
pass
Parámetro condicional. Especifica el contraseña necesaria para conectarse a la base de datos. Este parámetro no es necesario si la base de datos acepta conexiones anónimas o si la cadena de conexión ya incluye la contraseña (consulte el parámetro connection).
assembly
Esta opción es obligatoria para conexiones ADO.NET. Ejecute el comando db-drivers para ver los ensamblajes .NET disponibles en el equipo local en un formato que pueda copiar y pegar.
Proveedor de datos .NET Framework para SQL Server
assembly=System.Data.SqlClient.SqlClientFactory, System.Data,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Proveedor de datos .NET Framework para IBM i
assembly=IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries,
Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26
class
Esta opción es obligatoria para conexiones ADO.NET y JDBC. Ejecute el comando db-drivers para ver los controladores JDBC disponibles en el equipo local en un formato que pueda copiar y pegar.
IBM DB2 por JDBC
class=com.ibm.db2.jcc.DB2Driver
MySQL por JDBC
class=com.mysql.jdbc.Driver
SQL Server por ADO.NET
class=System.Data.SqlClient
sql
Parámetro condicional. Especifica una consulta SELECT en la sintaxis de la base de datos actual. El conjunto de registros recuperado por la consulta SELECT se puede utilizar como la parte izquierda o derecha de la comparación. Si configura este parámetro, no configure sql, ya que se excluyen mutuamente. Si indica una llamada a un procedimiento almacenado, se espera que este devuelva un conjunto de registros, no solo parámetros de salida.
Consulta SELECT
sql="SELECT * FROM employees WHERE a > 5 and b < 6 ORDER BY c"
Procedimiento almacenado
sql="EXEC dbo.uspGetEmployeeManagers @BusinessEntityID = 50"
has-header-row
Parámetro opcional. Se utiliza solamente para archivos CSV. Los valores válidos son true o false. Si se configura como true, la primera fila del archivo CSV se trata como una columna de encabezado y no participa en la comparación.
has-header-row=true