lunes, 14 de septiembre de 2015

Construcción de un ETL para la SEC

Hola a todos,  les dejo un breve trabajo que permite reunir información de distintas fuentes de datos con el fin de extraerla, transformarla y usarla para un objetivo en particular. En este caso, en la empresa de Energía que me desempeño, todos los meses se debe enviar información a la SEC (Superintendencia de Electricidad y Combustible) a través de la plataforma STAR y subir archivos de texto.  Les debo el trabajo de inventario de activo... aún no lo termino, está quedando bakan. creo...

Para este tema, utilicé el producto de Pentaho Open BI Suite. (herramienta Kettle, componente Spoon). Cero costo :) y un poco de investigación .. café y barras de quaker...

La arquitectura forma un proceso centralizado bajo un marco de trabajo orientado a la solución de problemas, empleando componentes de Inteligencia de Negocio (BI) 

Modelo conceptual  Kettle


Spoon te permite diseñar de forma gráfica la transformación ETL  (Extracción, Transformación y Carga)

Spoon incluye un entorno gráfico de desarrollo, basado en dos tipos de objetos:      
      -Transformación (colección de pasos en un proceso ETL) 
-Trabajos (colección de transformaciones)

Los procesos ETL son responsables de extraer, de transformar y de cargar datos.

-Permite crear transformaciones y trabajos que pueden hacer procesos lote/batch.
-Su interfaz gráfica permite visualizar todo el flujo de la información.
-Posee  una  gran  cantidad  de  fuentes  de  origen  y  destinos  de  almacenamiento  de información.
-Fácil de instalar y manejar, buen soporte Internet y local.
-Puede ser instalado en varios ambientes.


Ejemplo de un ETL

El siguiente ejemplo es uno de los más sencillo, la idea es entender el concepto de este trabajo y no explicar en detalle. Otro día. ;) más café y barras de Quaker.

Proveedores
·         Objetivo del ETL : Carga los datos de los proveedores que rompen las cañerías (sin ofender a nadie)
·         Nombre transformación: Proveedores
·         Periodicidad: Mensual
·         Modalidad de extracción: Total

Figura 2 : Componentes del ETL

Componentes del ETL
Nombre del paso : Get data from XML
Objetivo :Permite obtener los datos del origen desde un archivo XML. En este caso los proveedores residen en este medio.
Ubicación : D:\XMLProveedores.xml  (unidad de red)

Modalidad de extracción/transformación

Nombre campo
Xpath
Element
Result type
Type
Id_psa1000
Id_psa1000
Node
Value of
Integer
Razon1
Razon1
Node
Value of
String

Nombre del paso: Select values
Objetivo :Permite seleccionar registros o campos necesarios que serán utilizado en el destino.

Nombre del paso: Execute SQL script
Objetivo : Permite borrar los datos del destino, tabla proveedor de la base de datos Postgres antes de ser cargada por los datos del origen.
Conexión : DestPostgres

Modalidad de extracción/transformación


Nombre del paso: Dimensión Proveedor - Destino (table output)
Objetivo :Permite insertar los datos que provienen del origen D:\XMLProveedores.xml , hacia la tabla proveedor en el destino.
Conexión : DestPostgres

Mapeo de fuentes a Destino

Destino
Columna
Destino
Tipo

Tipo
Dato
Largo
Origen
Columna
origen
Tipo
dato
Largo
Tipo
Proveedor
id_provee
PK
Varchar
12
D:\XMLProveedores.xml
Id_psa1000
integer
7

proveedor
Desc_prove

varchar
100
D:\XMLProveedores.xml
Razon1
Varchar
100




Ejecución de la transformación
Se ha cargado con la transformación ETL siguiente:

Transformación
Archivo Origen
Tabla Destino Base dato Postgres
Archivo
Dimensión proveedor
D:\XMLProveedores.xml
Proveedor
ETLProveedor.ktr


Figura 3: Captura de la salida


Al tener los datos en las tablas correspondientes, se genera otro proceso que permite pasarlo a un archivo de texto y listo.


En la figura 4, en la capa de integración se utilizaron varios tipos de fuentes origen  y en el destino un repositorio de archivos de texto que posteriormente son subidos a la plataforma Star de la SEC


Figura 4:Capa de Integración


Resumen

En este tema se visualizan las etapas de diseño; obtención de los datos operacionales, luego generar los respectivos ETL’s (extracción, transformación y carga) hacia la base de datos destino como un "Stage" pero finalmente dejar la salida final en archivos de textos según los parámetros solicitados por la SEC.  Todo este conjunto de ETL se asocian a un JOB que te permite establecer una tarea programada o manual.

En una sola versión de todos los recursos de información, que es uno de los más grandes desafíos para las organizaciones hoy en día. Pentaho Data Integration permite un poderoso ETL (Extracción, Transformación y Carga).

Espero que les sirva.. dudas o más detalle de este trabajo, escribir a lpizarrofx@gmail.com

























Envió Correo en forma secuencial

Hola estimados(as) Hoy les dejo un código en Java que permite enviar correos, usando una base de datos, por ejemplo Mysql. Lo que adjunto...