.03 Conexiones a Bases de Datos
Conexiones a Bases de Datos
Una conexión de base de datos describe el método mediante el cual Kettle se conectará a una base de datos. Se pueden crear conexiones específicas para un Trabajo o Transformación o guardarlas en el catálogo de Kettle para reutilizarlas en múltiples Transformaciones o Trabajos.
En esta sección se cubren los siguientes temas:
- #Crear una nueva Conexión de Base de Datos
- #Editar una Conexión
- #Duplicar una Conexión
- #Copiar a portapapeles
- #Eliminar una Conexión
- #Ejecutar Comandos SQL en una Conexión
- #Opción Vaciar la Caché de Base de Datos
- #Entrecomillado
- #Tabla de Bases de Datos utilizadas
- #Configurar Conexiones JNDI
- #Bases de Datos no soportadas
Crear una nueva Conexión de Base de Datos
Esta sección describe cómo crear una nueva conexión de base de datos e incluye una descripción detallada de cada propiedad de la conexión.
Para crear una nueva conexión seleccionar en el panel izquierdo "Arbol Principal", hacer clic derecho en "Conexiones a bases de datos" y seleccionar "Nuevo" o "Asistente Nueva Conexión".
También se puede hacer doble clic en "Conexiones a bases de datos", o presionar F3.
Los siguientes apartados describen las opciones de configuración disponibles en cada pestaña del editor de conexión.
Pestaña General
La pestaña General es en donde se configura la información básica sobre la conexión, tal como nombre de la conexión, tipo, método de acceso, nombre del servidor y acceso al mismo.
Lo primero que se debe hacer es dar un nombre a la conexión ("Connection Name").
Luego debe seleccionarse en el listado "Connection Type" el tipo de base de datos que utilizaremos. De acuerdo a lo que se elija, las opciones disponibles en "Setting" y "Access" irán variando.
Una vez que se han completado los datos de "Connection Name" , "Connection Type", "Connection Access" y "Connection Setting" es recomendable presionar el botón "Probar" para verificar la correcta configuración de la conexión.
El botón "Explorar" permite navegar interactivamente en la base de datos en cuestión, visualizar tablas, vistas y datos, generar DDL, etc.
El botón "Lista de" (Lista de funciones) muestra una tabla con variables y valores relacionados a la conexión actual.
Pestaña Advanced
En esta pestaña es en donde se configura la información avanzada sobre la conexión. Las opciones disponibles son las siguientes:
- Soporte de tipo de datos booleanos.
- Encomillado.
- Forzar a mayúscula.
- Forzar a minúscula.
- Esquema por defecto.
- Sentencias SQL a ejecutarse luego de realizada la conexión.
Pestaña Options
Esta pestaña permite configurar opciones de bases de datos específicas para la conexión, agregando parámetros a la URL generada.
Para agregar un parámetro seguir los siguientes pasos:
- Seleccionar la siguiente fila en la tabla de parámetros.
- Ingresar un nombre de parámetro válido y su valor correspondiente. Para más información acerca de los parámetros disponibles presionar el botón "Help...".
Pestaña Pooling
Esta pestaña permite configurar la conexión para usar pooling y definir las opciones relacionadas con la misma, como el tamaño inicial de pool, tamaño máximo de pool y los parámetros de la conexión.
La siguiente tabla proporciona una descripción detallada de las opciones disponibles de esta pestaña:
Característica |
Descripción |
---|---|
Enable Connection Poolin |
Habilita/Deshabilita la conexión pooling. |
Pool Size: Initial |
Configura el tamaño inicial de la conexión pool. |
Pool Size: Maximum |
Configura la cantidad máxima de conexiones de la conexión pool. |
Parameters |
Permite definir parámetros personalizados adicionales al pool. |
Pestaña Clustering
Esta pestaña permite habilitar el clustering para la conexión a la base de datos y crear conexiones a particiones de datos.
Para crear una nueva partición de datos, ingresar un ID de partición y el nombre del host, puerto, base de datos, nombre de usuario y contraseña.
Editar una Conexión
Para editar una conexión existente, solo basta con hacer doble clic en el nombre de la conexión en el Árbol principal o clic derecho y seleccionar "Editar".
Duplicar una Conexión
Para duplicar una conexión existente, hay que hacer clic derecho en el nombre de la conexión y seleccionar "Duplicar".
Copiar a portapapeles
Esta opción permite copiar el XML que define al paso en el portapapeles. Luego se puede pegar este XML en otra transformación.
En el caso de las conexiones, hay que seleccionar la conexión deseada, hacer clic derecho sobre la misma y seleccionar "Copiar a portapapeles".
Eliminar una Conexión
Para eliminar una conexión a base de datos existente, hacer clic derecho en el nombre de la conexión en el Árbol principal y seleccionar Eliminar.
Ejecutar Comandos SQL en una Conexión
Para ejecutar comandos SQL contra una conexión existente, hacer clic derecho sobre el nombre de la conexión y seleccionar "Editor SQL".
Opción Vaciar la Caché de Base de Datos
Para obtener mayor performance al momento de generar las conexiones, Spoon utiliza una caché de base de datos. Cuando los datos de la caché ya no coinciden con la base de datos en cuestión, hacer clic derecho sobre la conexión en el Árbol Principal y seleccionar la opción 'Vaciar caché de ...'.
Este comando se usa generalmente cuando las tablas de las bases de datos han sido cambiadas, creadas o eliminadas.
Entrecomillado
Pentaho ha implementado un sistema de entrecomillado específico de base de datos que permite usar cualquier nombre o caracter aceptable por las convenciones de nomenclatura de las bases de datos soportadas.
PDI contiene una lista de palabras reservadas de la mayoría de las bases de datos soportadas.
Para asegurarse de que el entrecomillado se comporta correctamente, Pentaho ha implementado una separación estricta entre el esquema (usuario/propietario) de una tabla y el nombre de la tabla. De otro modo, hace que sea imposible entrecomillar tablas o campos con uno o más puntos en ellos correctamente.
Colocar puntos en nombres de tablas y campos es una práctica común en algunos sistemas ERP (Por ejemplo, campos como "V.A.T.").
Para evitar errores relacionados al entrecomillado, Pentaho agregó una nueva regla en la versión 2.5.0 que detiene la realización de la actividad de entrecomillado de PDI cuando hay comillas al principio o al final del nombre de tabla o esquema.
Esto le permite especificar su propio mecanismo de entrecomillado.
Nota: Contacte a Pentaho si encuentra otras formas de mejorar los algoritmos de entrecomillado.
Tabla de Bases de Datos utilizadas
Base de Datos |
Método de acceso |
Nombre del Servidor o Dirección IP |
Nombre de la Base de Datos |
Puerto (por defecto) |
Nombre de Usuario y Contraseña |
---|---|---|---|---|---|
Oracle |
Nativo |
Requerido |
SID Base de Datos Oracle |
Requerido (1521) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
|
OCI |
|
Nombre Base de Datos TNS |
|
Requerido |
MySQL |
Nativo |
Requerido |
Nombre Base de Datos MySQL |
Opcional (3306) |
Opcional |
|
ODBC |
|
Nombre ODBC DSN |
|
Opcional |
AS/400 |
Nativo |
Requerido |
Nombre AS/400 Library |
Opcional |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
MS Access |
ODBC |
|
Nombre ODBC DSN |
|
Opcional |
MS SQL Server |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido (1433) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
IBM DB2 |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido (50000) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
PostgreSQL |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido (5432) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
Intersystems Caché |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido (1972) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
Sybase |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido(5001) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
Gupta SQL Base |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido (2155) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
Dbase III,IV o 5.0 |
ODBC |
|
Nombre ODBC DSN |
|
Opcional |
Firebird SQL |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido (3050) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
Hypersonic |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido (9001) |
Requerido |
MaxDB (SAP DB) |
Nativo |
Requerido |
Nombre Base de Datos |
|
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
Ingres |
Nativo |
Requerido |
Nombre Base de Datos |
|
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
Borland Interbase |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido (3050) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
ExtenDB |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido (6453) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
Teradata |
Nativo |
Requerido |
Nombre Base de Datos |
|
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
Oracle RDB |
Nativo |
Requerido |
Nombre Base de Datos |
|
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
H2 |
Nativo |
Requerido |
Nombre Base de Datos |
|
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
Netezza |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido (5480) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
IBM Universe |
Nativo |
Requerido |
Nombre Base de Datos |
|
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
SQLite |
Nativo |
Requerido |
Nombre Base de Datos |
|
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Requerido |
Apache Derby |
Nativo |
Opcional |
Nombre Base de Datos |
Opcional (1527) |
Opcional |
|
ODBC |
|
Nombre ODBC DSN |
|
Opcional |
Generic |
Nativo |
Requerido |
Nombre Base de Datos |
Requerido (cualquiera) |
Requerido |
|
ODBC |
|
Nombre ODBC DSN |
|
Opcional |
La conexión a bases de datos genéricas (Generic) también necesita especificar la URL y el tipo de Controlador. Pentaho también permite especificar estos campos utilizando una variable, de este modo se puede acceder a datos de múltiples tipos de bases de datos utilizando las mismas Transformaciones y Trabajos. En este caso, asegurarse de usar ANSI SQL puro, que trabaja con todos los tipos de bases de datos utilizados.
Configurar Conexiones JNDI
Si se desarrollan Transformaciones y/o Trabajos que se desplegarán en un servidor de aplicaciones como la Plataforma Pentaho corriendo sobre JBoss, Tomcat, etc, se puede configurar las conexiones a bases de datos utilizando JNDI.
Debido a que no se desea tener un servidor de aplicaciones corriendo todo el tiempo durante el desarrollo o la prueba de las Transformaciones/Trabajos, Pentaho proporciona una forma de configurar una conexión JNDI para utilizar Kettle "local".
Para configurarlo, editar el archivo de propiedades llamado "jdbc.properties", que se encuentra en: "data-integration/simple-jndi/"
Por ejemplo, para conectar a la base de datos utilizada en la Demo de la plataforma Pentaho, descargar y usar esta información en el archivo de propiedades:
SampleData/type=javax.sql.DataSource SampleData/driver=org.hsqldb.jdbcDriver SampleData/url=jdbc:hsqldb:hsql://localhost/sampledata SampleData/user=pentaho_user SampleData/password=password Quartz/type=javax.sql.DataSource Quartz/driver=org.hsqldb.jdbcDriver Quartz/url=jdbc:hsqldb:hsql://localhost/quartz Quartz/user=pentaho_user Quartz/password=password Hibernate/type=javax.sql.DataSource Hibernate/driver=org.hsqldb.jdbcDriver Hibernate/url=jdbc:hsqldb:hsql://localhost/hibernate Hibernate/user=hibuser Hibernate/password=password Shark/type=javax.sql.DataSource Shark/driver=org.hsqldb.jdbcDriver Shark/url=jdbc:hsqldb:hsql://localhost/shark Shark/user=sa Shark/password=
Nota: Es importante que la información almacenada en este archivo refleje el contenido de las fuentes de datos del servidor de aplicaciones.
Bases de Datos no soportadas
Contactar a Pentaho si se desea acceder a un tipo de base de datos que todavía no es posible. Unos pocos tipos de bases de datos no están soportados en esta versión debido a la falta de una muestra de la base de datos y/o el software.
En general, se puede leer desde bases de datos no soportadas utilizando el controlador de base de datos Generic a través de una conexión ODBC o JDBC.