47
Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Pentaho Semestre: I -2012 Prof. Wilfredo Rangel Sistemas de Información Semestre I - 2012 Prep. Adriana López. Prep. José Zambrano. Prep. Leonardo Da Silva.

Lab ETL Pentaho

Embed Size (px)

Citation preview

Page 1: Lab ETL Pentaho

Universidad Central de Venezuela

Facultad de Ciencias Escuela de Computación

Pentaho

Semestre: I -2012

Prof. Wilfredo Rangel

Sistemas de Información Semestre I - 2012

Prep. Adriana López. Prep. José Zambrano. Prep. Leonardo Da Silva.

Page 2: Lab ETL Pentaho

HISTORIAL DE REVISIONES

Fecha Versión Descripción Autor

15/06/2012 1.2 José Zambrano

1.Escenario de entrenamiento:

1.1 Vista general del Negocio

· Nombre de Compañía: Open Logistics. · Negocio Primario: Transporte/Camioneros

Empresa basada en Indianápolis (Midwest). Tiene una clientela variada, desde empresas

Fortune 500 a PYMES y departamentos dentro de grandes organizaciones. Las Rutas son de instalaciones a instalaciones, nunca son envíos directos al cliente.

Tiene un fuerte crecimiento anual desde 2001. Es una pequeña compañía con < 100 empleados, en donde muchos de sus servicios (camiones, conductores, etc.) son subcontratados/outsourcing.

Open Logistics trata de reducir al mínimo los costos de transporte a través de acciones como la consolidación de carga, movimientos continuos, la selección de modo de transporte, selección de transportista, la entrega a tiempo, la satisfacción del cliente, el cumplimiento de las guías de rutas, el uso preferido de los transportistas

1.2Vista General de Indicadores Claves de Rendimiento (KPI)

· Estado de salud de la empresa derivada de:o Ingreso por Milla, Ganancia por Milla, % Vacío · Se desea analizar estas métricas (y otras) en el contexto del tiempo, cliente, origen de envío, destino de envío, entre otras dimensiones. El rendimiento optimo del negocio es medido por la habilidad para mantener los camiones lo mas llenos posibles en todo momento.

1.3Vista General de los Datos

· Única fuente de todos los datos contenidos en la base de datos "OL_OLTP". Datos operacionales estructurados en Tercera Forma Normal (3FN). · El objetivo es una tabla fact (hecho en ingles) con dimensiones basado en un Data Warehouse en Esquema Estrella. Esta base de datos se conoce como la base de datos "OL_OLAP".

Page 3: Lab ETL Pentaho

Volumen de Datos. Actual tasa de corrida es ~20.000 ordenes por año siendo cada orden aproximadamente equivalente a un "movimiento" (envío de lugar A a lugar B). Los datos de la OL_OLTP contienen registros de diciembre del 2000 a julio del 2006. ~70.000 ordenes distintas en total. · Contenido de Datos. Se especificarán las definiciones específicas de medidas y dimensiones. Se especificarán los mapeos de la BD OL_OLTP a la BD OL_OLAP.

Page 4: Lab ETL Pentaho

Camiones

Page 5: Lab ETL Pentaho

Para este laboratorio utilizaremos Postgres 9.1 o superior.

Instalación PostgresSQL 9.1.4 en Windows.

La contraseña de este instalador es: postgre.

Page 6: Lab ETL Pentaho
Page 7: Lab ETL Pentaho

Conexión a Bases de Datos.

Entramos a pgs admin III

Page 8: Lab ETL Pentaho

Luego hacemos doble clip donde aparece la X e ingresamos la clave de conexión dada en la instalación => postgre.

Hacemos clip derecho en login roles para añadir los roles que usaremos; y le damos a New login role…

Page 9: Lab ETL Pentaho

El password => postgre.

NOTA: (Añadir role ol_olap).Repita los procedimientos anteriores, pero ahora para el caso ol_olap.

Page 10: Lab ETL Pentaho

Ya creado el rol, pasamos a crear la BD. Para ello nos dirigimos a Data Bases.

Hacemos clip derecho -> New Object -> New DataBase…

NOTA: (Añadir database ol_olap).Repita los procedimientos anteriores, pero ahora para el caso ol_olap.

Page 11: Lab ETL Pentaho

Actualizamos pgAdmin haciendo clic en el icono de las flechas circulares. Esto mostrará sus nuevas bases de datos y las funciones de inicio de sesión.

Restaurar la "ol_oltp" Base de datos. Haga clic derecho sobre la Base de datos "ol_oltp" -> Seleccione Restore…(restaurar).

Page 12: Lab ETL Pentaho

Display object

Page 13: Lab ETL Pentaho

Para ol_olap

Page 14: Lab ETL Pentaho

Display objet ,OK.

Link para la descarga de postgres 9.1.4 para Windows 64 bits -> http://www.enterprisedb.com/crossover-thankyou Link para la descarga de postgres 9.1.4 dependiendo del OS -> http://www.enterprisedb.com/products-services-training/pgbindownload Link para descargar kettle para Windows -> http://sourceforge.net/projects/pentaho/files/Data%20Integration/4.3.0-stable/pdi-ce-4.3.0-stable.zip/download Link para descargar kettle para Ubuntu -> http://sourceforge.net/projects/pentaho/files/Data%20Integration/4.3.0-stable/pdi-ce-4.3.0-stable.tar.gz/download Link para descargar base de datos a usar (mencionadas en los pasos anteriores) -> https://www.dropbox.com/sh/7med23pu6ybw4j2/YsL3_88eVy

Page 15: Lab ETL Pentaho

QUE ES ETL? ETL es un proceso de integración de datos en la construcción de un data warehouse que involucra

extraer datos de las bases de datos fuentes, transformarlos para que se ajusten a la base de datos destino, y por último cargarlos (loading) al data warehouse.

ETL es necesario porque: Integra datos de fuentes heterogéneas Limpia los datos removiendo problemas transaccionales y asegurando consistencia en los datos Reestructura los datos para procesamiento analítico óptimo

EXTRACCIÓN.

Acceso a las fuentes de datos Extracción eficiente de cada fuente de datos

La menor cantidad de procesamiento posible Solo se busca los datos que sean requeridos Solo se ejecutan con la frecuencia necesaria para satisfacer los requerimientos de procesamiento analíticos requeridos

Generación de formatos de datos que pueden ser consumidos en una forma consistente por parte de procesos de carga y transformación Se puede almacenar datos temporalmente en un área especializada para su transformación e integración con otras fuentes

Esto puede involucrar un paso de “transporte” para mover datos extraídos de la base de datos fuente al servidor destino TRANSFORMACION.

Transformar datos extraídos del formato fuente al formato destino. Esto puede involucrar:

Sumar valores de múltiples filas de datos Enforzar reglas de calidad de datos y procesamiento de excepciones Segregar columnas específicas para la carga Decodificar valores codificados Codificar valores de forma libre para que correspondan al formato de base de datos destino Procesar cálculos de datos Generar valores de claves sustitutas Intercambio de ejes de datos (convertir columnas a filas o viceversa)

CARGAR. Mover datos transformados a la base de datos destino de forma correcta y eficiente Puede requerir secuenciamiento de cargas (e.g. dimensiones antes de hechos) Carga en lotes para grandes volúmenes de datos Puede requerir re-indexación u otras tareas de afinamiento de datos físicos antes y/o después del proceso de carga

TRANSFORMACION VS TAREA.

Transformación Un proceso atómico que obtiene una o más entradas fuente, y ejecuta transformaciones y las carga a una o más salidas A veces llamado un “mapeo” Entradas pueden ser tablas, archivos, XML, etc.

Page 16: Lab ETL Pentaho

Salidas pueden ser tablas, archivos, servicios web, etc. Puede tener lógica de excepción que genera “archivos malos”, usa remediación inteligente o genera fallas programáticas,

dependiendo del diseño. Genera estadísticas de auditoría atómicas (e.g. registros leídos, escritos, etc.)

Tarea Un proceso de coordinación a través de una o más transformaciones Generalmente es pautada para ejecutase en un horario determinado Introduce lógica de procesos como ramas, paralelismo, etc. Generalmente permite la notificación automatizada de notificación de resultados por correo, alertas, etc. Rastrea corridas de ejecución a través de un rastro de auditoría

DISEÑAR ETL. Los pasos analíticos requeridos antes de desarrollar código ETL incluyen:

Entender los requerimientos del negocio para determinar los requerimientos de datos “dentro del alcance” Analizar disponibilidad, calidad e interdependencias de los datos fuentes

Perfiles de datos Análisis de calidad de datos Análisis de dependencia de datos

Diseñar base de datos destino Documentar mapeos origen a destino

Hay mucha iteración en este proceso COMPONENETES DE KETTLE

Spoon Es una herramienta gráfica orientada al usuario final que permite modelar transformaciones y tareas. Las transformaciones modelan el flujo de datos desde su entrada, a través de sus transformaciones y finalmente su salida. Una tarea esta compuesta de entradas de tarea como transformaciones, descargas de FTP, etc. que son colocados en un flujo de

control.

Pan Es una herramienta de línea de comando que ejecuta transformaciones modeladas con Spoon.

Kitchen Es una herramienta de línea de comando para ejecutar tareas creadas con Chef.

TRANSFORMACIONES:

Las transformaciones son una serie de tareas lógicas organizadas en una secuencia: Leer archivo plano Filtrarlo Ordenarlo Cargarlo a MySQL

Page 17: Lab ETL Pentaho
Page 18: Lab ETL Pentaho

SALTOS. Un salto es una conexión entre pasos Permite a la metadata del esquema ser pasado de paso a paso Saltos determinan el flujo de datos a través de pasos Cuando un paso manda salidas a más de un salto, los datos pueden ser copiado a cada salto o distribuido entre ellos

REPOSITORIO.

Kettle puede guardar su metadata en un archivo XML o en un repositorio de base de datos Objetos almacenados en el repositorio incluyen conexiones, transformaciones, tareas, esquemas y definiciones de usuarios y perfiles

VISTA LOG. • Muestra las estadísticas asociadas con la ejecución de una transformación • Se usa para entender el rendimiento y revisar los resultados de una tarea • Puede ser muy granular – hasta el nivel de fila si es necesario

PASOS CUBIERTOS

Pasos de Entrada Entrada de archivo de texto Entrada de Tabla Entrada de Excel Entrada de Xbase Generar Filas Obtener Información del Sistema

Page 19: Lab ETL Pentaho

Pasos de Salida Salida de Archivo de Texto Salida de Tabla Insertar / Actualizar Actualizar Borrar Salida XML

Pasos Especiales de Dimensiones

Actualización/Consulta de Dimensión Combinación de Actualización/Consulta

Entrada de Archivo de Texto Lee una gran cantidad de distintos archivos de texto, incluyendo archivos CSV generados por hojas de cálculo, etc.

Las opciones provistas por la interfaz de Kettle para aceptar entradas de archivos de texto incluyen:

Opciones de especificación de nombre de archivo- un archivo puede ser agregado a una lista de “archivos seleccionados”.

Aceptar nombre de archivos de un paso previo- el nombre de archivo puede venir de cualquier fuente, como un archivo de texto, tabla de base de dato, etc.

Espeficación de Contenido- le permite al usuario especificar el formato de los archivos que

Page 20: Lab ETL Pentaho

se están leyendo. Manejo de Errores- le permite

al usuario definir como reaccionar cuando se encuentra un error.

Filtros- le permite al usuario especificar las líneas que deberán ser saltadas en el archivo de texto.

Campos- le permite al usuario definir las características de los campos.

Formatos- incluye formatos para números y fechas.

Entrada de Tabla Lee información de una base de datos, usando una conexión y SQL.

Las opciones provistas por la interfaz de Kettle para aceptar entradas de tabla incluyen:

Nombre de Paso- Este nombre debe ser único para una transformación.

Conexión- La conexión de base de datos de la cual se debe leer los datos

SQL- La sentencia usada para leer la información de la conexión de la base de datos. (i.e. “tabla” no es un término correcto, es el conjunto de resultados de cualquier

Page 21: Lab ETL Pentaho

sentencia SQL que es usada como una entrada)

Insertar datos de un paso- Especificar el nombre del paso de entrada del cual vienen los parámetros para el SQL, si aplica.

Límite- Fija el número de líneas que son leídas de la base de datos.

Entrada de Excel Lee información de uno o más archivos de Excel.

Las opciones provistas por la interfaz de Kettle para aceptar entradas de Excel incluyen:

Nombre del paso- Nombre del paso.

Tab de Archivo- Para definir los nombres de archivos, con soporte de variables.

Tab de Hojas- Para definir las hojas a importar.

Tab de Campos- Para especificar los campos que deben ser leídos de los archivos de Excel.

Tab de Manejo de Errores- permite al usuario definir como reaccionar cuando un error es encontrado.

Tab de Contenido- Incluye las

Page 22: Lab ETL Pentaho

sub-opciones de Cabecera, Sin Filas Vacías, Detener al Encontrar Filas Vacías, Nombre de Campo, Campo Nombre de Hoja, Número de Fila y Límite.

Entrada XBase Lee datos de la mayoría de los archivos DBF derivados, denominados la familia XBase. (dBase III/IV, Foxpro, Clipper, ...)

Las opciones provistas por la interfaz de Kettle para aceptar entradas de XBase incluye:

Nombre de paso- Nombre del paso. Este nombre debe ser único en una transformación.

Nombre de Archivo- Con soporte de variables.

Límite de tamaño- Solo leer esta cantidad de filas, 0 significa: sin límite.

Agregar número de fila?- Esta opción agrega un campo a la salida con el nombre especificado que contiene el número de fila.

Generar Filas Produce una cantidad de filas, por defecto vacías, pero con la opción de contener una cantidad de campos estáticos.

Page 23: Lab ETL Pentaho

Las opciones provistas por la interfaz de Kettle para generar filas incluye:

Nombre del paso – Nombre del paso. Debe ser único en una transformación.

Límite- La cantidad de filas que un usuario quiere producir.

Campos- Campos estáticos que un usuario querrá incluir en las filas de salida.

Obtener información del sistema Obtiene información del ambiente de Kettle.

Las opciones provistas por la interfaz de Kettle para este tipo de dato de entrada incluye:

Nombre del – Nombre del paso. Debe ser único en una transformación.

Campos- Los campos de salida.

Tipos de Información del Sistema: Información de Hora y Fecha Metadata en tiempo de

ejecución de la transformación

Argumentos de línea de comando

Salida de archivos de texto Exporta datos a distintos formatos de archivo de texto, incluyendo CVS

Page 24: Lab ETL Pentaho

Las opciones provistas por la interfaz de Kettle para generar salidas de archivos de texto, además de aquellas provistas por aceptar entradas de archivos de texto son:

• Nombre del paso • Extensión • Adjuntar • Separador • Límite de alcance (enclosure) • Cabecera/ Pie de Página • Comprimido • Incluir número / fecha/ hora

de paso en el nombre de archivo

• Codificar • Rellenar campos a la derecha • Separar cada “n” filas

Salida de tabla Inserta información en una tabla de una base de datos.

Las opciones provistas por la interfaz de Kettle para generar salidas de tablas, además de aquellos provistos para aceptar entradas de tablas son:

• Tabla destino • Tamaño de commit • Truncar tabla • Ignorar errores de inserción • Particionar datos sobre tablas • Usar actualizaciones en lote para

inserciones

Page 25: Lab ETL Pentaho

• Retornar clave auto-generada • Nombrar campo clave auto-generado • Es el nombre de la tabla definida en

un campo

Insertar/Actualizar Automatiza el procesamiento de unión:

Consulta una fila usando una o más claves de consulta.

Si una fila no es encontrada, insertar nueva fila.

Si se encontró y los campos son idénticos, no se hace nada

Si encontrado y los campos no son idénticos, actualizar la fila.

Las opciones provistas por la interfaz de Kettle para las salidas de insertar/actualizar incluyen:

Nombre del paso Conexión Tabla destino Tamaño commit Claves Campos para actualización No realizar actualización (Si es

usado, opera como una Salida de Tabla, pero sin Insertar errores causados por claves duplicadas)

Page 26: Lab ETL Pentaho

Actualizar Igual que el paso Insertar / Actualizar, excepto que no se hace una inserción a la tabla de base de datos.

Solo se llevan a cabo actualizaciones.

Borrar Igual que el paso de actualización, salvo que en vez de actualizar, las filas se borran.

Salida XML Le permite al usuario escribir filas de una fuente a uno o más archivos XML.

Las opciones que provee la interfaz gráfica de Kettle para generar salidas XML incluyen:

Nombre del paso Nombre del Archivo Extensión Incluir número de paso en

nombre de archivo Incluir fecha en nombre de

archivo Incluir hora en nombre de

archivo Separar cada … filas

• Elemento XML padre • Elemento XML fila • Campos • Comprimido

Codificación

Page 27: Lab ETL Pentaho

Consulta/Actualización de Dimensión Implementa dimensiones que cambian lentamente en el tiempo: Tipo I y Tipo II

Puede ser usado para actualizar una tabla dimensión y para buscar valores en una dimensión. (Consulta, si no es encontrado, entonces actualizar/insertar)

En la implementación de dimensión cada entrada en la tabla de dimensión tiene los siguientes campos:

Clave técnica- Esta es la clave primaria (sustituta) de la dimensión.

Campo de versión- Muestra la versión de la entrada de dimensión (un número para revisiones).

Rango de fecha inicial- Este es el nombre del campo que contiene la fecha de comienzo de validez.

Rango de fecha final- Este es el nombre del campo que contiene la fecha de terminación de validez.

Claves- Estas son las claves usadas en los sistemas fuentes, como el número de cliente, identificador de producto, etc. Estos son usados para funcionalidades

Page 28: Lab ETL Pentaho

de consulta Campos- Estos campos

contienen la información real de una dimensión y pueden ser configuradas individualmente para actualizar todas las versiones o para agregar una nueva versión cuando un nuevo valor aparece.

Combinación Actualización/Consulta Permite a los usuarios almacenar información en una tabla dimensión basura.

Una tabla de dimensión que está compuesta de una o más combinaciones de atributos de dimensión simples, en la cual cada combinación es una clave distinta

La acción de este paso se puede explicar de la siguiente manera:

Consulta de combinación de clave de negocio clave 1,…, clave n de flujo de entrada en una tabla dimensión;

Si esta combinación de claves de negocio existe, entonces retornar su clave técnica (id sustituto);

Si esta combinación de claves de negocio no existe todavía,

Page 29: Lab ETL Pentaho

insertar una fila con los nuevos campos claves y retornar su clave técnica;

Colocar todos los campos de entrada en el flujo de salida incluyendo la clave técnica retornada, pero remover todos los campos claves de negocio si “remover campos de consulta” es verdadero.

Este paso solo mantendrá la información clave, la información no clave en la dimensión deberá ser actualizada por separado.

Construir Cargas Simples Objetivo: Crear transformaciones para cargar el las tablas dimensión Tipo Viaje y Terminal Tareas:

Correr Spoon Desarrollar mapeo de Tipo Viaje, ejecutar/probar, confirmar carga apropiada de datos

Definir tabla de entrada y consulta Obtener información del sistema y obtener la fecha/hora actual Definir el paso Consulta/Actualización de Dimensión, usando la fecha/hora actual como el campo fecha en el flujo

Desarrollar mapeo Terminal, ejecutar/probar, confirmar carga apropiada de datos Definir tabla de entrada y consulta Obtener información del sistema y obtener la fecha/hora actual Definir el paso Consulta/Actualización de Dimensión, usando la fecha/hora actual como el campo fecha en el flujo.

Page 30: Lab ETL Pentaho

Solución a lo requerido anteriormente

Terminal

Tipo de viaje

Page 31: Lab ETL Pentaho

CONSULTAS. La característica de Consulta que provee Kettle accede una fuente de datos para encontrar valores según un criterio predefinido, i.e.

clave. Hay 6 pasos con funcionalidad de búsqueda en Kettle

Búsqueda en Base de Datos – Emite una consulta a una base de datos (SQL) a una tabla para obtener atributos usando una consulta basada en clave

Búsqueda en Flujo – Obtiene valores de un flujo de datos en memoria en una transformación Unión de Base de Datos (join) – Emite una consulta desarollada de base de datos usando valores de un flujo como un parámetro Llamada a Procedimiento de Base de Datos – Emite una llamada a un procedimiento de base de datos Actualización/Consulta de Dimensión – Discutida previamente Combinación de Actualización/Consulta – Discutida previamente

Búsqueda en Base de Datos Consulta de atributos de una tabla basado en un criterio de búsqueda por claves

Las opciones provistas por la interfaz de Kettle para llevar a cabo una consulta de base de datos incluye:

Nombre del paso- Nombre del paso. Debe ser único dentro de una transformación.

Conexión- La conexión a la base de datos usada para consultar los datos.

Tabla de consulta- El nombre de la tabla en la cual la consulta se lleva a cabo.

Habilitar caché- Esta opción almacena consultas de base de datos en caché mientras corre la transformación.

Habilitar esta opción puede incrementar rendimiento

Peligro: si otros procesos están cambiando valores en la tabla, no habilitar esta opción.

Page 32: Lab ETL Pentaho

Búsqueda en flujo Permite a los usuarios hacer consultas usando información que viene de otros pasos en la transformación.

Los datos que vienen del “Paso Fuente” se lee a memoria (caché) y luego es usada para consultar los datos para cada registro en el flujo principal.

Opciones provistas por la interfaz de Kettle para llevar a cabo una consulta de flujo incluye:

Nombre del paso- Nombre del paso. Debe ser único dentro de una transformación.

Paso fuente- El paso a partir del cual se obtiene los datos de consulta que residen en memoria

Claves para valores de consulta- Permite al usuario especificar los nombres de los campos que son usados para consultar los valores. Los valores son siempre buscados usando la comparación de igualdad.

Campos a retornar- El usuario puede especificar los nombres de los campos a retornar, así como el valor por defecto en caso de que no haya sido encontrado o un nombre de campo nuevo en caso que el usuario desee cambiar el nombre del campo de flujo de salida.

Page 33: Lab ETL Pentaho

EJEMPLO: La siguiente transformación agrega

información proveniente de un archivo de texto a información que viene de una base de datos:

B es el paso fuente. Es el lugar en el cual el flujo de consulta en memoria reside.

• Obtener campos (Get fields)”: Automáticamente llena los nombres de todos los campos disponibles del flujo principal. (A de la diapositiva anterior) El usuario puede eliminar los campos no usados en la consulta.

• “Obtener campos de consulta (Get lookup fields)”: Automáticamente inserta los nombres de todos los campos disponibles en el flujo de consulta. (B de la diapositiva anterior) El usuario puede borrar los campos que no van a ser retornados.

Union de Base de Datos Opciones provistas por la interfaz de Kettle para un procedimiento de join de base de datos incluye:

Nombre del paso- Nombre del paso. Debe ser único dentro de una transformación.

Page 34: Lab ETL Pentaho

SQL- La consulta SQL a emitir a la base de datos.

Número de filas a retornar- 0 significa todas, cualquier otro número limita el número de filas.

Join Externo? (Outer join?)- Cuando habilitada, siempre retornará un registro para cada registro del flujo de entrada, aun si el query no retornó un resultado.

La conexión de base de datos a ser usada.

Los parámetros a usar en la consulta Un parámetro es denotado

como “?” en el query Orden de los campos en la

lista de parámetros debe coincidir con el orden de los “?” en la consulta

Llamada a Procedimiento de Base de Datos

Ejecuta un procedimiento (o función) de base de datos y obtiene los resultados retornados.

Opciones provistas por la interfaz de Kettle para llamar a un procedimiento de base de datos incluye:

Nombre del paso- Nombre del paso. Debe ser único dentro de una transformación.

Conexión- Nombre de la conexión de base de datos en la cual el procedimiento reside.

Nombre del Procedimiento (Proc-

Page 35: Lab ETL Pentaho

name)- Nombre del procedimiento o función a llamar.

Habilitar auto-commit- Esto puede ser usado para llevar a cabo actualizaciones en la base de datos usando un procedimiento especificado. El usuario puede confirmar los cambios usando auto-commit o deshabilitando esto. Si auto-commit es deshabilitado, se hace un solo commit después que la última fila es recibida por este paso.

Nombre de resultado- Nombre del resultado en la llamada de función; no es aplicable para procedimientos.

Tipo de resultado- Tipo de resultado de función a llamar. No usado en caso de un procedimiento.

Parámetros- Lista de parámetros que el procedimiento o función necesita:

Nombre de campo- Nombre del campo.

Dirección- Puede ser IN (solo entrada), OUT (solo salida), INOUT (valor es cambiado en la base de datos).

Tipo- Usado para salida de parámetros de forma tal que Kettle sabe que regresa.

Otros botones disponibles en este paso son: Botón “Find it...” – Busca en

la conexión especificada por

Page 36: Lab ETL Pentaho

procedimientos y funciones disponibles.

Botón “Get fields” – Llena todos los campos en los flujos de entrada para hacer el procedimiento más fácil borrando las líneas que no son necesarias y re-ordenando aquellas que sí lo son.

Transformaciones de Campos (Parte 1)

Transformaciones de campos son pasos que operan a nivel de campo dentro de un registro de flujo Los pasos incluidos en esta sección son:

Seleccionar Valores (Select Values) Calculadora (Calculator) Agregar Constantes (Add Constants) Nulo Si (Null If)

Seleccionar Valores Este tipo de paso es usado para Seleccionar/remover campos del flujo

del proceso Renombrar campos Especificar/cambiar la longitud y/o

precisión de campos Se proveen 3 tabs:

Seleccionar y Alterar: Especificar el orden exacto y nombre en el cual los campos deben ser colocados en las filas de salida.

Remover: Especifica los campos que

Page 37: Lab ETL Pentaho

tienen que ser removidos de las filas de salida.

Meta-data: Cambiar el nombre, tipo, longitud y precisión (la meta-data) de uno o más campos.

Opciones provistas en este paso: Nombre del paso- Nombre del paso.

Debe ser único dentro de una transformación.

Atributos que pueden ser cambiados para un campo dado:

Nombre de campo: El nombre de campo a seleccionar o cambiar

Renombrar a: Dejar en blanco si renombramiento no es requerido.

Longitud: Debe introducirse un número para especificar la longitud. (-1: ninguna longitud especificada)

Precisión: Debe introducirse un número para especificar la precisión. (-1: ninguna precisión especificada)

Calculadora Provee una lista de funciones que pueden ser ejecutadas sobre valores de campos.

Una importante ventaja de la Calculadora sobre JavaScript personalizado es que la velocidad de ejecución es mayor.

La lista de funciones soportadas por la

Page 38: Lab ETL Pentaho

calculadora incluye funciones matemáticas y de fecha comúnmente usadas.

Además de los argumentos (Campo A, Campo B y Campo C) el usuario también debe especificar el tipo de retorno de la función.

También se puede remover el campo del resultado (salida) después que todos los valores hayan sido calculados. Esto es útil para remover valores temporales.

Agregar constantes Agregar constantes a un flujo Su uso es muy simple:

Especificar el nombre Introducir el valor en forma de un

string Especificar los formatos para convertir

el valor en el tipo de dato escogido.

Nulo si … Si la representación en string de un campo es igual al valor especificado, entonces el valor de salida es puesto en nulo (vacío).

Construir una Transformación de Consulta

Objetivo: Crear una transformación para cargar la tabla dimensión Remolque Tareas:

Definir el paso de Entrada de Tabla, confirmar SQL Definir paso de Entrada de Excel para Limpieza Designación de Remolque “Trailer Make” Crear una búsqueda en flujo para Designaciones de Remolques corregidas Introducir cálculo para reemplazar designaciones de remolques que son nulos con “UNKNOWN” Crear un string constante “VanType (Tipo Camioneta)” para búsqueda denominada VanType

Page 39: Lab ETL Pentaho

Crear una búsqueda en Base de Datos para obtener la descripción del tipo de camioneta Configurar una Consulta/Actualización de Dimensión para cargar la tabla destino.

Page 40: Lab ETL Pentaho

Solución a lo requerido anteriormente.

Page 41: Lab ETL Pentaho

Transformaciones en Conjunto

Son pasos que operan sobre un conjunto entero de datos dentro de un flujo Las operaciones operan a través de todas las filas; no necesariamente es limitado a una fila Los pasos cubiertos en esta sección son:

Filtrar Filas Ordenar Filas Unir Filas Fusionar Filas Filas únicas Filas Agregadas Agrupar por

Filtrar filas Filtrar filas basándose en condiciones y comparaciones, con soporte completo de lógica booleana

Salida puede ser dirigida a dos flujos: registros que pasan la condición (verdadero) y registros que evalúan la condición (falso)

Generalmente usados para Identificar excepciones que

deben ser escritas a un archivo malo

Lógica de transformación de ramificación si una única fuente tiene dos interpretaciones

Las opciones provistas para este paso son:

Nombre del paso- Nombre del paso. Debe ser único dentro de una transformación

Page 42: Lab ETL Pentaho

Enviar datos “verdaderos” a paso – El paso que recibe los datos que pasan la condición

Enviar datos “falsos” a paso – El paso que recibe los datos que fallan la condición

Ordenar filas Ordenar filas basándose en filas específicas, incluyendo sub ordenamientos, en orden ascendiente o descendiente

Las opciones de este paso son: Nombre del paso- Nombre

del paso. Debe ser único dentro de una transformación.

Una lista de campos y si deberían o no ser ordenados.

Directorio de ordenamiento- Este es el directorio en el cual los archivos temporales son almacenados cuando son necesarios. El directorio por defecto es el directorio estándar temporal para el sistema.

Tamaño de almacenamiento- Mientras más filas se puedan almacenar en memoria, más rápido es el ordenamiento. Eliminar la necesidad de archivos temporales reduce

Page 43: Lab ETL Pentaho

E/S a disco. El prefijo de archivo TMP-

Escoger un prefijo reconocible para identificar los archivos cuando aparecen en el directorio temporal.

Unir filas Produce combinaciones de todas las filas en los flujos de entrada.

Las opciones provistas por Kettle en este paso son:

Nombre del paso- Nombre del paso. Debe ser único dentro de una transformación.

Paso principal del cual leer- Especifica el paso del cual leer la mayoría de los datos. Este paso no es cacheado, los otros sí.

La condición- El usuario puede introducir una condición compleja para limitar el número de filas de salida. Si es vacío, el resultado es un producto cartesiano.

Directorio temporal- Especifica el nombre del directorio en el cual el sistema almacena archivos temporales.

Prefijo de archivos

Page 44: Lab ETL Pentaho

temporales- Este es el prefijo de los archivos temporales que se generarán.

Tamaño max. caché- El número de filas a cachear antes que el sistema lea los datos de los archivos temporales.

Fusionar filas Compara y fusiona dos flujos de datos Flujo de Referencia Flujo de Comparación

Generalmente usado para identificar deltas en los datos fuentes cuando no hay marcas de tiempo

Flujo de Referencia = Datos previamente cargados

Flujo de Comparación = Los datos nuevos extraídos de una fuente

Nota de uso: Asegurar que los flujos estén ordenados por los campos claves de comparación

La fila de salida es marcada de la siguiente manera:

“idéntico (identical)” : La clave fue encontrada en ambos flujos y los valores a comparar son idénticos.

“cambiado (changed)” : La clave fue encontrada en ambos flujos pero uno o más

Page 45: Lab ETL Pentaho

valores son distintos. “nuevo (new)” : La clave no

fue encontrada en el flujo de referencia.

“borrado (deleted)” : La clave no fue encontrada en el flujo de comparación.

Filas únicas Remueve duplicados del flujo de entrada

Nota de Uso: Solo registros consecutivos serán comparados para buscar duplicados, por lo tanto el flujo debe ser ordenado por los campos de comparación

Las opciones provistas por Kettle en este paso son :

Nombre del paso- Nombre del paso. Debe ser único dentro de una transformación.

Agregar contador a salida?- Habilitar esto para saber cuantas filas duplicadas hay para cada registro de salida.

Campos contadores- Nombre del campo numérico que contiene el nombre de filas duplicadas por cada registro de salida

Nombres de Campos- Una lista de nombres de campos

Page 46: Lab ETL Pentaho

en los cuales su unicidad es comparado. Los datos en los otros campos de la fila son ignorados.

Bandera de Ignorar Mayúsculas/Minúsculas- Permite búsquedas no sensibles a mayúsculas/minúsculas.

Agrupar por Calcula valores agregados sobre un grupo de campos definidos.

Opera similar a la cláusula “group by” de SQL

Las opciones provistas por Kettle en este paso son:

Nombre del paso- Nombre del paso. Debe ser único dentro de una transformación.

Campos de agrupación- Especificar los campos a ser agrupados.

Agregados- Especificar los campos que deben ser agregados, el método (suma, mínimo, máximo, etc.) y el nombre del nuevo campo resultante.

Incluir todas las filas- Si habilitado, la salida incluye tanto nuevos registros

Page 47: Lab ETL Pentaho

agregados como registros originales en detalle. Se debe especificar el nombre del campo de salida que será creado y una bandera que indica si la fila es agregada o un registro de detalle.

Transformaciones de Conjunto (TAREA).

Objetivo: Cargar la tabla dimensión Cliente usando transformaciones de conjunto Tareas :

Definir paso de Entrada de Tabla, confirmar SQL Filtrar clientes entre aquellos que tienen código postal y los que no Para los que no, hacer lo siguiente

Ordenar los registros por ciudad, estado Definir una Entrada de Archivo y Búsqueda en Flujo para coincidir ciudad/estado con aquellos en el archivo de consulta

ordenado Usar Seleccionar Valores para reemplazar el campo código postal vacío con el valor de código postal en la consulta

Unir los flujos y búscar el Nombre de la Región de Cliente Usar un cálculo para definir el código postal centroId a ser el código postal regular si el código postal centroId es nulo Cargar/Actualizar la tabla dimensión