Está en la página 1de 73

Pentaho

Data Integration

Junio 2022
Pentaho Data Integration (PDI) proporciona capacidades de
¿Qué es extracción, transformación y carga (ETL) que facilitan el proceso de
captura, limpieza y almacenamiento de datos utilizando un formato
Pentaho uniforme y consistente que sea accesible y relevante para los
usuarios finales y las tecnologías de lote.
Data
Integration
(PDI)?
¿Qué es Pentaho Data Integration (PDI)?

Pentaho Data Integration (PDI), cuyo nombre en clave es Kettle, es una de las herramientas o
componentes de Pentaho Suite que permite que se utilicen técnicas ETL, es decir, poder implementar
procesos de extracción, transformación y carga de datos.
Kettle, además, ofrece datos analíticos muy precisos, eliminando las complejidades involucradas en la
codificación al proporcionar bibliotecas en profundidad para el mismo.

¿Cuál es la ventaja de utilizar una herramienta como PDI?

Pues que las empresas van a ahorrarse muchísimo tiempo y esfuerzo en hacer esto de forma manual, lo
cual es frecuentemente difícil.
¿Cuáles son los productos que nos ofrece
Pentaho?
Pentaho nos ofrece una serie de útiles productos como son los siguientes:

Pentaho Reporting: Es un motor de presentación capaz de generar informes programáticos sobre la base de
un archivo de definición XML.

Pentaho Dashboard: Es una plataforma integrada para proporcionar información sobre sus datos, donde se
pueden ver informes, gráficos, etc.

Pentaho Data Mining: Es una suite de software que usa estrategias de aprendizaje de máquina, automático
y minería de datos. Cuenta con las herramientas necesarias para apoyar las tareas de análisis descriptivo.

Pentaho para Apache Hadoop: Es un conector de bajo nivel para facilitar el acceso a grandes volúmenes
manejados en el proyecto Apache Hadoop.

Pentaho Analysis Services: Es compatible con el MDX, y el lenguaje de conducta XML para el análisis y
especificaciones de la interfaz.
¿Cuáles son los productos que nos ofrece
Pentaho?
Spoon

• Entorno gráfico para el modelado


• Las transformaciones son modelos de metadatos
describiendo el flujo de datos
• Los jobs son modelos similares a un flujo de
trabajo para coordinación de recursos, ejecución y
dependencias de las actividades de ETL

Pan

• Herramienta de línea de comandos para ejecutar


transformaciones modeladas en Spoon

Kitchen

• Herramienta de línea de comandos para la


ejecución de jobs modelado en Spoon.
¿Cómo funciona la herramienta de PDI?

Esta imagen muestra como es al ingresar


al Spoon, la cual es una interfaz de gráfica
de usuario (GUI) que permite diseñar
transformaciones y trabajos que se pueden
ejecutar con las herramientas de PDI.
Lectura y escritura de archivos

Una selección de pasos de entrada y salida


Lectura y escritura de archivos

Guía Demo 1

Demostración de los pasos de entrada y salida más utilizados.


Discusión de las opciones:

• Browse
• Get Fields
• Content information
Lectura y escritura de archivos

Guía Demo 1
Introducción

En esta guía demo, crearemos una transformación que lee varios archivos de texto. A continuación, usamos el paso ‘Get
System Info’ para añadir la fecha/hora del sistema al flujo de la ETL. Por último, usamos un paso " Text file output " para
generar la transmisión a un archivo de texto delimitado.

Objetivos
• Configurar un paso “Text file input” para leer varios archivos de texto.
• Agregar datos relacionados con el sistema y el entorno a la secuencia mediante el paso “Get System Info”
• Configurar el paso “Text file output” para crear un único archivo de salida delimitado (CSV).

Pasos a utilizar
• Text file input
• Get System Info
• Text file output
Lectura y escritura de archivos

Guía Demo 1 Modelo


Parámetros y Variables
Guía Demo 2
Introducción
En esta guía demo, agregamos dos variables al kettle.properties para las carpetas que contienen los archivos de
entrada y salida. Entonces podemos utilizar esas variables en lugar de escribir las rutas.

Objetivos
• Editar el archivo kettle.properties.
• Agregar variables y valores en el archivo kettle.properties.
• Configurar el paso “CSV file input” utilizando una variable para definir la carpeta del archivo de entrada.
• Configurar un paso “CSV file input” utilizando una variable para definir el archivo de salida Carpeta.

Pasos Usados
• CSV file input
• Text file outpu
Parámetros y Variables

VARIABLES

Las variables son globales y tienen un alcance que generalmente está dentro del entorno ( Maquina virtual) o
dentro de un Job principal. Las variables relacionadas con el proyecto y sus valores se pueden definir en el
archivo kettle.properties

Las variables a utilizar pueden se definidas en el archivo kettle.properties

Para definir una nueva variables se puede utilizar cualquiera siguientes técnicas.
Parámetros y Variables

Para editar el archivo kettle.properties desde Spoon:

Desde el menú de Spoon, haga clic en Edit> Edite el archivo kettle.properties


1.Ingrese una nueva fila y luego identifique el nombre de la variable que desea definir
2.Ingrese un valor para la nueva variable.
Parámetros y Variables

Para editar el archivo kettle.properties manualmente:

1.Abra el archivo kettle.properties en un editor de texto.


Por defecto, se encuentra en: C: \ User \ <user_name> \ .kettle
2.Insertar una nueva fila en el archivo
3.Especifique el nombre de la variable que desea definir
4.Ingrese un signo igual (=) después del nombre de la variable
5.Proporcione un valor para la nueva variable
Por ejemplo: DB_PORT = 3399
6. Guarde el archivo y reinicie Spoon
Parámetros y Variables

PARÁMETROS

Los parámetros son variables locales cuyo alcance está solo dentro del trabajo o transformación en el que se definen.

Para crear un nuevo parámetro:


1. Abra el cuadro de diálogo de propiedades de Job o transformación haciendo doble clic en un área vacía del lienzo
2. Haga clic en la pestaña de parámetros
3. Insertar nueva fila
4. Ingrese un nombre para el nuevo parámetro
5. Ingrese un valor predeterminado
6. Ingrese una descripción opcional
Parámetros y Variables

Ejemplo de uso variable


Parámetros y Variables
Guía Demo 2
Introducción
En esta guía demo, agregamos dos variables al kettle.properties para las carpetas que contienen los archivos de
entrada y salida. Entonces podemos utilizar esas variables en lugar de escribir las rutas.

Objetivos
• Editar el archivo kettle.properties.
• Agregar variables y valores en el archivo kettle.properties.
• Configurar el paso “CSV file input” utilizando una variable para definir la carpeta del archivo de entrada.
• Configurar un paso “CSV file input” utilizando una variable para definir el archivo de salida Carpeta.

Pasos Usados
• CSV file input
• Text file outpu
Lectura y escritura de archivos
Guía Demo 2
Introducción
En esta guía demo, agregamos dos variables al kettle.properties para las carpetas que contienen los archivos de
entrada y salida. Entonces podemos utilizar esas variables en lugar de escribir las rutas.

Objetivos
• Editar el archivo kettle.properties.
• Agregar variables y valores en el archivo kettle.properties.
• Configurar el paso “CSV file input” utilizando una variable para definir la carpeta del archivo de entrada.
• Configurar un paso “CSV file input” utilizando una variable para definir el archivo de salida Carpeta.

Pasos Usados
• CSV file input
• Text file outpu
Lectura y escritura de archivos
Ejercicio 1

En este ejercicio, creará una transformación que lee un archivo CSV llamado Order_File (el cual contenga datos
personales de al menos 5 personas). Entonces, enviará datos entrantes para personas, para lo cual se debe generar
parámetros en el kettle.properties, para especificar la ubicaciones de carpetas de entrada y salida de archivos.

Objetivos

• Crear y utilizar parámetros de transformación para definir ubicaciones para las carpetas de entrada y salida.
• Configurar un paso “CSV file input” utilizando una variable para definir la ubicación del archivo de entrada.
• Configurar un paso “Text file output” utilizando una variable para definir la ubicación del archivo de salida.
• Configurar un paso “Dummy (do nothing)” para todos los datos que no coincidan con un caso específico de Valor.
Lectura y escritura de archivos

Modelo

Pasos Utilizados
• CSV file input
• Switch / Case
• Text file output
• Dummy (do nothing)
Trabajando con bases de datos

Conexión a la Base de Datos.


Se pueden crear varias conexiones compartidas a diferentes bases de datos.

Cuando se utiliza un repositorio DI Enterprise:

Las conexiones definidas están fácilmente disponibles para transformaciones y Jobs

Cuando no se utiliza un repositorio DI Enterprise:

• La definición de conexión se encuentra en una sola transformación o job


• Las definiciones de conexión se pueden compartir en transformaciones y jobs.
Trabajando con bases de datos

Acceso via JDBC


Los controladores de base de datos se pueden agregar a… / dataintegration/lib.

• Utiliza la pestaña Generic del cuadro de diálogo de conexión para utilizar controladores no listados
• Permite conexiones a bases de datos no enumeradas

Los controladores existentes se pueden reemplazar en la ruta /dataintegration/lib.


Trabajando con bases de datos

Otros Métodos de Acceso


Las conexiones ODBC son posibles:

• Las conexiones ODBC deben definirse en Windows.


• Conexiones ODBC realizadas a través de Puente JDBC ODBC:

• Algunas limitaciones en la sintaxis SQL


• Generalmente más lento que JDBC debido a la capa adicional

Utilice una conexión JNDI para conectarse a un origen de datos definido en un servidor de aplicaciones como
JBoss o WebSphere.

Los métodos de acceso específicos del complemento son proporcionados por un controlador de base de datos
específico (como SAP R/3 o PALO)
Trabajando con bases de datos

Database Explorer Y en el menú contextual de conexión:


Permite a los usuarios explorar tablas de base de datos.
Se encuentra en la barra de herramientas:
Trabajando con bases de datos

Limpieza de Datos

Examinando los paso: Insert, Update y Delete


Trabajando con bases de datos

Concepto de Limpieza de Datos


• Validar datos por tipo de datos, valores esperados, rangos, etc.
• Normalizar los datos en función de definiciones de datos definidas mediante lógica aproximada.
• Capturar todas las anomalías de datos para su posterior procesamiento
• Enriquecer los datos validados
Flujo de datos y Lookups
Copia y distribución de datos

STEP COPIES

El rendimiento de ejecución de una transformación se puede mejorar mediante el uso de una función llamada
Step copies. Las copias de pasos permiten la creación de múltiples copias (instancias) de un paso que se ejecuta
en su propio hilo en tiempo de ejecución. Esta lección cubre pasos de copias y cómo usarlos.
Flujo de datos y Lookups

En la primera imagen observamos el


tiempo de ejecución de cada paso.

En la segunda imagen se observa, como la


cantidad de registros de salida en el paso Java
Script se dividió en tres paquetes iguales a su
vez el tiempo de ejecución por paso disminuyo.
Flujo de datos y Lookups

Distribución en Paralelo

Todos los pasos se inician y se ejecutan en paralelo.

• La secuencia de inicialización no es predecible PDI gestiona el flujo de datos correcto.

La secuencia de inicialización no es predecible PDI gestiona el flujo de datos correcto.

• ‘Pulling and pushing’ datos de paso a paso

PDI puede procesar un número ilimitado de filas

• Los pasos varían en la velocidad de ejecución y el consumo de memoria

• Establezca un limite en el número de filas y el siguiente paso esperará


• Si se alcanza el número de filas, el paso de origen espera
• Cuando hay espacio, se colocan más filas en el flujo de datos
• Se puede configurar en Transformation Properties / Miscellaneous / Number of rows in rowset
Flujo de datos y Lookups

Copia o distribución de datos

Especifica si los datos pueden ser copiado


o distribuido a múltiples (Clic derecho del
mouse sobre el paso, y seleccionar ‘Data
Movement’, luego ‘Copy data to next Steps’

Nota: Fíjese en el icono de copia


Flujo de datos y Lookups

Copia o distribución de datos

Todos los pasos se inician y se ejecutan en paralelo.

• La secuencia de inicialización no es predecible PDI gestiona el flujo de datos correcto.

La secuencia de inicialización no es predecible PDI gestiona el flujo de datos correcto.

• ‘Pulling and pushing’ datos de paso a paso

PDI puede procesar un número ilimitado de


filas
• Los pasos varían en la velocidad de ejecución y el consumo de memoria

• Establezca un limite en el número de filas y el siguiente paso esperará


• Si se alcanza el número de filas, el paso de origen espera
• Cuando hay espacio, se colocan más filas en el flujo de datos
• Se puede configurar en Transformation Properties / Miscellaneous / Number of rows in rowset
Flujo de datos y Lookups

Lookups (búsquedas)

La búsqueda es la función PDI que accede a un origen de datos para encontrar valores con criterios de
coincidencia definidos (un valor de clave).

La categoría de búsqueda en Spoon contiene muchos pasos disponibles para buscar datos.

Los tres pasos de búsqueda más utilizados son:

Todos estos pasos suponen un flujo entrante de registros que luego se comparan registro por registro con una fuente
de búsqueda. Esto produce una secuencia de registro saliente con uno o más campos buscados añadidos.
Flujo de datos y Lookups

Lookups (búsquedas)

Los siguientes pasos de uso común tienen funcionalidad de búsqueda:


• Database lookup
• Stream lookup
• Merge join
• Merge rows diff

Otros pasos también tienen funcionalidad de búsqueda:


• Database join
• Dimension lookup / update
• Combination lookup / update
• HTTP lookup
Flujo de datos y Lookups

Paso: Database Lookup

El paso de Database Lookup le permite buscar valores en la tabla de la base de datos. Los valores de búsqueda se
agregan como nuevos campos en la secuencia. Si desea realizar una búsqueda simple utilizando una clave primaria,
una clave externa o una ID, este paso es el más fácil de usar y ofrece una buena oportunidad de obtener el mejor
rendimiento posible

Usos comunes de este paso:


Limpieza y conformidad de datos

• Normalizar y corregir datos incorrectos o faltantes

Desnormalización

• Combinando un campo de la secuencia de entrada con


las columnas obtenidas en el paso de búsqueda.

Búsqueda de clave de dimensión

• Encontrar claves de la clave natural de una tabla de


dimensiones
Flujo de datos y Lookups

Paso: Stream Lookup

El paso de búsqueda ‘Stream Lookup’ le permite buscar datos utilizando información proveniente de otros
pasos en la transformación. Los datos que provienen del paso Fuente se leen primero en la memoria y luego se
usan para buscar datos de la transmisión principal.

En el siguiente ejemplo, la transformación agrega información proveniente de un


archivo de texto (B) a datos provenientes de una tabla de base de datos (A):
Flujo de datos y Lookups

Unión y fusión de datos

En los procesos ETL, los datos se combinan frecuentemente con otros datos. En muchos casos, esto se hace
con dos flujos y con filas coincidentes entre ellos en las claves especificadas. Esto es útil para todo tipo de
combinaciones y otros escenarios.
Flujo de datos y Lookups
Paso: Merge join

Los datos que entran en el paso deben ordenarse por las claves que ha especificado en la configuración de los
pasos
Flujo de datos y Lookups

El paso Merge Join une


datos de dos flujos de
entrada

Tipos de unión admitidos:

• Inner
• Left outer
• Right Outer
• Full Outer
Flujo de datos y Lookups

Paso Merge rows (diff)

• Actualiza los datos del producto en una tabla basada en los cambios del producto almacenados en un
archivo de texto.
• El paso Merge Rows (Diff), se utiliza para determinar qué filas son nuevas, eliminadas, cambiadas o
idénticas
• Sincronizar después de combinar facilitará la inserción, actualización y eliminación reales de los registros en
la tabla
Cálculos

Paso Group by

Este paso agrupa filas de una fuente, en función de un campo específico o una colección de campos. Se
genera una nueva fila para cada grupo. También puede generar uno o más valores agregados para los
grupos. Los usos comunes son calcular el promedio de ventas por producto y contar el número de un artículo
que tiene en stock.

Nota: Los datos deben ordenarse antes de enviarse a Group By


Cálculos

Guía Demo 3
Introducción
En esta demostración guiada, crearemos una transformación que lea los datos del producto de la base de datos,
ordena los datos por id de producto de manera descendente y agrupara por el nombre para contener la cantidad de
productos que pertenecen a un nombre de producto.
Objetivos
• Configurar el paso “Group by" para resumir los datos en función de un campo en el flujo

Pasos Usados

• Table input
• Sort rows
• Group by
Introducción a Jobs

ORQUESTACIÓN DE JOB

Después de crear procesos ETL, querrá asegurarse de que se ejecuten con éxito, en el orden correcto, registren
mensajes y notifiquen a las personas los resultados. Los Jobs son los modelos de flujo de trabajo utilizados para
hacer esto. Los Jobs coordinan los recursos, la ejecución y las dependencias de las actividades de ETL.

En esta lección, aprenderá a:

Identificar tareas que un Job debe realizar en función de los procesos que ejecutará

Describir algunas de las entradas más comunes que utiliza el Job.

Definir saltos que indican una ruta de ejecución según la condición.

Crear un Job que busque recursos, inicie sesión en un archivo y ejecute una transformación
Introducción a Jobs

La orquestación de trabajos se refiere a la coordinación de recursos, ejecución y dependencias de procesos ETL en


modelos de flujo de trabajo. Estos flujos de trabajo se denominan Jobs.

Tareas de Job comunes

• Ejemplos de tareas comunes realizadas en un Job incluyen obtener archivos FTP,


verificar condiciones como la existencia de una tabla de base de datos de destino
necesaria, ejecutar una transformación ejecutando otro Job (sub-Job) y enviar un
registro de error por correo electrónico

Job de Entrada

• Los Job entrada son los bloques de construcción principales de un job. En una
transformación, estas piezas individuales se denominan pasos. Los Jobs no tienen
pasos, tienen job de entrada. Los Jobs de entrada proporcionan una amplia gama
de funciones que van desde la ejecución de transformaciones hasta la obtención
de archivos desde un servidor web. cada job debe comenzar con la entrada Start
Job.

• Tenga en cuenta que aunque los trabajos no tienen pasos, muchas personas usan
los términos entrada de trabajo y paso de manera intercambiable
Introducción a Jobs

Ejemplo de Job

• Start
• Comprueba la existencia de tabla
• Si la tabla existe, la tabla se trunca
• Si la tabla no existe, se crea la tabla
• Se ejecuta una transformación que llena una tabla.
• Se ejecuta una transformación que actualiza la tabla

• Nota; Los nombres de las entradas de trabajo aquí se utilizan para facilitar la lectura. Debe
usar las mejores prácticas de nomenclatura en trabajos reales.
Introducción a Jobs

Creando Job

• En Spoon, haga clic en Archivo -> Nuevo -> Job


• Vaya a la pestaña Design . Expanda las carpetas o use el campo Entries para buscar entradas
específicas
• Arrastre o haga doble clic en una entrada para colocarla en el lienzo del cliente PDI
• Haga doble clic en la entrada para abrir su ventana de propiedades y configurarla.
• Agregar otra entrada
• Continúe el proceso y cuando termine guarde el trabajo

Bucle en puestos de trabajo

• En general, se debe evitar el bucle en los Jobs. Sin embargo, hay veces que se requieren. Si
diseña un job que tiene un bucle, debe incluir un límite tal que después de N bucles, el job se
cancele. Esto evitaría la posibilidad de obtener el error OutOfMemory. La entrada de trabajo
de JavaScript es una buena opción para implementar este tipo de lógica de límite de bucle
Introducción a Jobs

JOB DE EJECUCIÓN DE ENTRADA

Las entradas de trabajo se ejecutan utilizando un algoritmo de retroceso. No se ejecutan (por defecto) en paralelo.

El orden de ejecución de la entrada del trabajo depende del orden en que se crearon en el trabajo.
La ruta en sí está definida por el resultado real (éxito o fracaso) de las entradas de trabajo.
Siempre se sigue una ruta hasta llegar a su final antes de considerar la siguiente ruta posible

Ejecución
Orden de Dependencias
paralela del
ejecución del del Job de
Job de
Job entrada entrada
entrada
Introducción a Jobs
Orden de Ejecución de Job de entrada

1. Primero, la entrada de START busca todas las siguientes entradas de trabajo y encuentra A y C. (A se creó
primero)
2. A se ejecuta
3. A luego busca todas las siguientes entradas de trabajo y encuentra B
4. B se ejecuta
5. B busca todas las siguientes entradas de trabajo pero aparece en blanco porque ha alcanzado el de esa ruta.
6. A no tiene más entradas de trabajo para ejecutar
7. START tiene una entrada de trabajo más para ejecutar C
8. C se ejecuta
9. C busca todas las siguientes entradas de trabajo pero aparece en blanco
10. START no tiene más entradas de trabajo para ejecutar
11. El trabajo termina
Introducción a Jobs
Ejecución paralela Job de entrada

Se puede configurar un Job de entrada para ejecutar las siguientes entradas en paralelo, ejecutándose en
subprocesos separados.

Para configurar un Job de entrada y que se ejecute en paralelo:


• Haga clic con el botón derecho y luego haga clic en Run Next Entries in Parallel

El icono del indicador de salto se colocará en los saltos salientes


de esta entrada para indicar que las siguientes entradas se
ejecutan en paralelo
Introducción a Jobs
Dependencias Job de entrada
Debido al algoritmo de retroceso, los job de entradas con más de un salto entrante no dependen del resultado de
todas las entradas de origen. Considere el siguiente Job:

La transformación C no depende del resultado exitoso de A y B.

La ejecución de este job es:

START A C B C

Nota: Esto supone que A se creó primero, luego B y luego C.


Introducción a Jobs
Evaluación de salto de un Job
Los saltos se comportan de manera diferente cuando se usan en un trabajo que cuando se usan en una
transformación. Los saltos de job especifican el orden de ejecución y la condición en la que se ejecutará la siguiente
entrada del job. Los saltos de job se vinculan a las entradas del job y según el resultado de la entrada del job anterior,
determine qué sucede a continuación.

Hay tres condiciones de job también llamadas modos de evaluación.


Introducción a Jobs
Incondicional
Especifica que la siguiente entrada de trabajo se ejecutará independientemente del resultado de la entrada de trabajo
de origen.

En este ejemplo, la entrada de trabajo de transformación 1 se ejecuta si existe el objeto buscado o si el archivo no
existe.

Puede alternar el salto entre las tres condiciones haciendo clic en el icono del salto
Introducción a Jobs

Verdadero
Siga el salto cuando el resultado de la entrada de trabajo anterior sea exitoso.

Especifica que la siguiente entrada de trabajo se ejecutará solo cuando el resultado de la entrada de trabajo de origen
sea verdadero; Esto significa una ejecución exitosa, como la tabla de archivos encontrados sin errores, etc.

En este ejemplo, la entrada de trabajo de transformación 1 se ejecuta solo si el archivo que se busca existe

Puede alternar el salto entre las tres condiciones haciendo clic en el icono del salto.
Introducción a Jobs

Falso
Siga el salto cuando el resultado de la entrada de trabajo anterior sea un error (falso)

Especifica que la siguiente entrada de trabajo solo se ejecutará cuando el resultado de la entrada de trabajo de origen
sea falso; lo que significa ejecución fallida, archivo no encontrado, error de tabla no encontrada, etc.

En este ejemplo, la entrada de trabajo de transformación 1 se ejecuta solo si el archivo que se busca no existe.

Puede alternar el salto entre las tres condiciones haciendo clic en el icono del salto.
Introducción a Jobs

Envío de Alertas: Mail


Usamos la entrada mail en los Jobs para enviar un texto o un correo electrónico HTML con un archivo opcional
adjunto, para validar una dirección de correo o para extraer correo de un Servidor POP.
Introducción a Jobs

Categoría Condiciones
Extrae información de carpetas, archivos, columnas y tablas
Introducción a Jobs
Uso del Kitchen para ejecutar Job vía línea de comando
Se puede llamar a un job desde un archivo .bat /.sh con parámetros.

• Por ejemplo:
– kitchen.bat /file:"directorio-parajob.kjb"

Los parámetros se pueden transferir a transformaciones posteriores.

Atención: NO se debe marcar "Copiar resultados anteriores en argumentos". De lo contrario, los parámetros
no se transfieren a la transformación.
JVM y Logs - Seguimiento a los procesos

Logs detallados en la ejecución

Los logs contienen información resumida sobre el job o la ejecución de la transformación como:

• Número de registros insertados


• Tiempo total transcurrido en transformación

Los logs también contienen información detallada sobre el trabajo, la ejecución de la transformación.

• Excepciones
• Errores
• Información de depuración
JVM y Logs - Seguimiento a los procesos

Razones para habilitar los logs:

Fiabilidad

• Errores en los Jobs


• Revisar errores encontrados

Operación sin Encabezado

• La mayoría de ETL en producción no se ejecuta desde la interfaz de usuario


• Necesita ubicación para ver los resultados del trabajo

Supervisión del rendimiento

• Información útil para problemas de rendimiento y capacidad actuales planificación


JVM y Logs - Seguimiento a los procesos

Se pueden usar dos tipos de registro

Logs de Entradas

• “Log" tradicional
• Enfoque basado en archivos
• Verboso

Registro de base de datos

• Resultados resumidos
• Enfoque basado en RDBMS
• Conciso y estructurado
JVM y Logs - Seguimiento a los procesos

Logs de Entradas.

• SIEMPRE contiene marca de tiempo


• Generalmente contiene el nombre del paso que registró la entrada
• El resto varía según la entrada del registro.
JVM y Logs - Seguimiento a los procesos

Log de Entrada: Niveles de registro

Conjuntos de niveles de detalle e información registrada.

Los niveles de registro son aditivos:

Básico: Mínimo + Entradas de registro básicas


Todas las entradas de los niveles anteriores PLUS el nivel seleccionado

Niveles:

• Nada
• Error
• Mínimo
• Básica
• Detallada
• Depuración
• Nivel de fila
JVM y Logs - Seguimiento a los procesos

Log de entradas: Error y mínimo

Error:

Construye sobre nada


Escribe para registrar si se producen errores
Si no se producen errores, no hay salida de registro

Mínimo:

Se basa en el error
Escribe entradas de registro mínimas
JVM y Logs - Seguimiento a los procesos

Log de Entradas: Básico

Básica:

Construye en el mínimo
Logs de información sobre pasos individuales
JVM y Logs - Seguimiento a los procesos
Log de Entradas: Detalladas

Detallada:

• Se basa en la base básica


• Cada paso proporciona más información sobre la ejecución
• El nivel de registro anterior solo escribe el resumen de cada paso, la información detallada escribe los pasos
adicionales
• Los pasos de la base de datos proporcionan información sobre conexión de base de datos y las sentencias
ejecutadas

pentaho_oltp-Setting preparedStatement to [SELECT orderdate, requireddate,


shippeddate, status, customernumber FROM orders WHERE ordernumber = ? ]
JVM y Logs - Seguimiento a los procesos

Log de Entradas: Depuración y nivel de fila

Depuración:

• Se basa en lo mas detallado


• Detallado: Registra casi toda la información
• Es útil para desarrolladores o para resolver problemas oscuros

Nivel de fila:

• Compilaciones en depurar
• Mas Detallado: descarga los valores de fila a medida que pasan a través de los operadores
• Es útil cuando el valor de datos provoca OraException sin ningún mensaje de error útil
Mejores prácticas y/o Sugerencias

Convenciones de nombres

Nombrar Jobs de entrada y pasos con una sintaxis conocida estándar ayudará a todos los usuarios que usan y
desarrollan con PDI a localizar lo que están buscando y comprender su propósito. El uso coherente de un estándar
también reduce significativamente el tiempo de solución de problemas porque es fácil saber qué es un objeto al leer
registros

Transformation Naming
Job Naming Conventions Conventions
Mejores prácticas y/o Sugerencias
Job Naming Conventions

Nombrar los Jobs y pasos con una sintaxis conocida estándar ayudará a todos los usuarios que usan y desarrollan
con PDI a localizar lo que están buscando y comprender su propósito. El uso coherente de un estándar también
reduce significativamente el tiempo de solución de problemas porque es fácil saber qué es un objeto al leer registros.

Job Naming Job Entry Naming

Decida una convención de nomenclatura que tenga sentido para Utilice un prefijo estándar para las entradas y asígneles un
su organización al nombrar trabajos para ayudar a distinguirlos nombre con descripciones de las operaciones o la intención de la
de otros objetos y su propósito. A continuación se muestra una entrada.
sintaxis sugerida y ejemplos.

Syntax: j_<purpose/action>_<target identifier>


Mejores prácticas y/o Sugerencias
Transformation Naming Conventions

Nombrar las transformaciones y pasos con una sintaxis conocida estándar ayudará a todos los usuarios que usan y
desarrollan con PDI a localizar lo que están buscando y comprender su propósito. El uso coherente de un estándar
también reduce significativamente el tiempo de solución de problemas porque es fácil saber qué es un objeto al leer
registros.

Transformation Naming Step Naming

Use una convención de nomenclatura que tenga sentido para su Syntax <abbreviation of step name>-<short description>
organización al nombrar transformaciones para ayudar a
distinguirlos de otros objetos y su propósito. A continuación se Nota: No puede elegir un carácter que no sea un guión.
muestra una sintaxis sugerida y un ejemplo.

Syntax: <purpose/action>_<subject/target identifier>


Mejores prácticas y/o Sugerencias

• Integración de Vertica con Pentaho Data


Integration (PDI): consejos y técnicas

• En estas mejores practicas se les proporciona


orientación para configurar Pentaho Data Integration (PDI)
para conectarse a Vertica
Mejores prácticas y/o Sugerencias
Conexión de Vertica y Pentaho (PDI)

Pentaho Data Integration (PDI) admite ODBC y JDBC para conectividad. Tenga en cuenta que ODBC suele ser más lento
que JDBC, y Pentaho no es compatible con ODBC para clientes con suscripción.

PDI proporciona dos formas de conectarse a una base de datos a través de JDBC.

• Controlador JDBC específico de Vertica. Utilice el conector JDBC específico de Vertica para sus trabajos ETL. Al crear una
nueva conexión a Vertica, asegúrese de seleccionar el conector que coincida con su base de datos.
• Controlador genérico JDBC

Los archivos JDBC de la base de datos se encuentran en las siguientes carpetas de su instalación PDI:

• Para instalaciones de clientes (Spoon, Pan, Kitchen, Carte): Data integration/ lib
• Para instalaciones de servidor: servidor de integración de datos / tomcat / lib

Si el cliente está instalado en la misma máquina que el servidor, debe copiar el archivo jar Vertica JDBC en ambas carpetas.
Mejores
prácticas y/o
Sugerencias

• Instalación de su controlador JDBC

• Almacene su archivo de controlador Vertica


JDBC en una carpeta similar a (para un sistema
Windows).
• La siguiente captura de pantalla muestra cómo
conectarse a Vertica.

C:\<install_dir>\data-integration\lib\
Mejores prácticas y/o Sugerencias

Mejores prácticas para cargar y actualizar datos

Para evitar crear demasiados o muy pocos contenedores ROS, siga estas recomendaciones:

• Cargue y elimine datos con menos frecuencia en lotes más grandes.


• Si está trabajando con muchos archivos pequeños de datos sin procesar, use una sola instrucción COPY
para cargar estos archivos a la vez. Utilice el soporte comodín para COPIAR desde todos los archivos, o
concatene todos los archivos a una tubería con nombre y haga que COPIA se cargue desde la tubería.
• Use una sola declaración DELETE / UPDATE para eliminar o actualizar lotes de filas . Cuando sea posible,
elimine o actualice lotes de filas a la vez para evitar crear demasiados contenedores ROS de eliminación de
vectores.

INSERT / + * direct * / INTO table SELECT ...

UPDATE /*+DIRECT*/ TABLE ...

DELETE /*+DIRECT*/ TABLE ...


GRACIAS

También podría gustarte