Friday, January 25, 2013

ETL’s ¿Qué le falta? ¿Qué le sobra?

Proceso de Extracción con Software ETL
 
La primera parte del proceso ETL consiste en extraer los datos desde todas las diferentes  fuentes de información disponibles, ya sean otros sistemas, webservices, bases de datos o bien archivos estructurados (csv, mdf, txt, etc). Cada fuente de información debe rigurosamente de tener un formato constante y válido para poder ser explotado, por otro lado cada fuente de información es un sistema totalmente separado que puede pertenecer o no a una organización.
 Una parte muy importante del proceso de extracción es la de analizar los datos extraídos, se debe de revisar la consistencia de los datos al poner puntos de control y validar que toda la información se tenga completa y con la estructura que se esperaba. De no ser así los datos son rechazados (parcial o totalmente).
Un requerimiento importante que se debe exigir a la tarea de extracción es que ésta cause un impacto mínimo en el sistema origen. Si los datos a extraer son muchos, el sistema de origen se podría ralentizar e incluso colapsar, provocando que éste no pueda utilizarse con normalidad para su uso cotidiano. Por esta razón, en sistemas grandes las operaciones de extracción suelen programarse en horarios o días donde este impacto sea nulo o mínimo.


Proceso de Transformación con una Herramienta ETL

La fase de transformación de un proceso de ETL aplica una serie de reglas de negocio establecidas o funciones sobre los datos extraídos para convertirlos y como su nombre lo indica, transformar los datos que serán cargados.

Ejemplos de transformaciones:
·         Seleccionar sólo ciertas columnas para su carga (por ejemplo, que las columnas con valores nulos no se carguen)
·         Traducir códigos (por ejemplo, si la fuente almacena una “H” para Hombre y “M” para Mujer pero el destino tiene que guardar “1″ para Hombre y “2″ para Mujer)
·         Codificar valores libres (por ejemplo, convertir “Hombre” en “H” o “Sr” en “1″)
·         Obtener nuevos valores calculados (por ejemplo, total_venta = cantidad * precio)
·         Unir datos de múltiples fuentes (por ejemplo, búsquedas, combinaciones, etc.
·         Dividir una columna en varias (por ejemplo, columna “Nombre Completo”; pasar a tres columnas “Nombres”, “Apellido Paterno” y “Apellido Materno”
·         Manejo de datos con errores: Ejecutar políticas de tratamiento de excepciones (por ejemplo, rechazar el registro completo, dar al campo erróneo un valor nulo). 

 
Ejemplos de Herramientas ETL

1.       Ab Initio
2.       Benetl
3.       BITool – ETL Software
4.       CloverETL
5.       Cognos Decisionstream (IBM)
6.       Data Integrator (herramienta de Sap Business Objects)
7.       ETI*Extract (ahora llamada Eti Solution)
8.       IBM Websphere DataStage (antes Ascential DataStage)
9.       Microsoft Integration Services
10.    Oracle Warehouse Builder
11.    WebFocus-iWay DataMigrator Server
12.    Pervasive
13.    Informática PowerCenter
14.    Oxio Data Intelligence ETL full web
15.    SmartDB Workbench
16.    Sunopsis (Oracle)
17.    SAS Dataflux
18.    Sybase
19.    Syncsort: DMExpress.
20.    Opentext (antes Genio, Hummingbird).
 
 
 
ORACLE DATABASE 11G
ORACLE WAREHOUSE BUILDER
ENTERPRISE ETL OPTION
Enterprise ETL Option
La opción empresarial ETL (Enterprise ETL Option) para Warehouse Builder es una opción que puede ser adquirida con “Oracle Warehouse Builder” como parte de la edición empresarial del motor de base de datos (Oracle DB Enterprise Edition).
 



Opciones Avanzadas para Carga de Datos

En grandes implementaciones, más y más procesos se ejecutan en paralelo, agotando los recursos debido a las grandes cantidades de datos que participan en la carga. Como parte de la Enterprise ETL Option, Warehouse Builder permite ejecutar cargas de datos usando métodos rápidos y eficientes tales como el Oracle Data Pump y transportable tablespaces. Esta es una aproximación  completamente diferente al movimiento de datos que se realiza por medio de conjuntos de datos controlados por el motor de base de datos. Los incrementos en velocidad de carga se deben entonces a la omisión de las capas SQL tradicionales.

 

Productividad para el Desarrollador

¿Necesita hacer más con menos? ¿Necesita estar seguro de que sus transformaciones sean consistentes y correctamente documentadas? Warehouse Builder posee una característica llamada Pluggable Mapping. Esta característica permite que de manera gráfica, se creen piezas de transformación y se compartan a través de múltiples desarrolladores.

 

Traza Lineal de Principio a Fin

Los servicios de administración de dependencias (Warehouse Builder Dependency Management ) le permiten prever el efecto que puedan tener los cambios que se hagan en cualquier lugar de los metadatos del sistema ETL antes de que estos puedan afectarlo y deterióralo.
 
 

 
MS SQL Integration Services
 
 
La integración de los datos puede traer muchos beneficios para la organización. Al usar toda la información disponible se puede mejorar el análisis del negocio así como enriquecer los reportes, sin embargo la extracción, transformación y carga de dicha información puede ser extremadamente lenta y tomar mucho tiempo para llevar a cabo, los datos de que vienen de diferentes fuentes puede ser transformados en un formato consistente, limpio y homogéneo.
Para esto podemos usar el servicio de Integración de SQL Server, el cual automatiza tareas como copiar y descargar archivos, enviar correos electrónicos en respuesta a ciertos eventos definidos por el administrador, actualizar nuestras data warehouses, así como simplificar la minería de datos. Con SSIS se pueden integrar varias fuentes de datos de cualquier índole como SQL Server, Oracle, Teradata, DB2, SAP, CRM, SharePoint, realtime, aplicaciones basadas en la nube y mas
 
Características:
·         Integra y consolida información de cualquier fuente de información
·         Optimiza la productividad de desarrollar el ETL
·         Configura y Libera soluciones ETL de manera sencilla
·         Catálogos reusables (se pueden reusar partes de ETL’s anteriores o diferentes
·         Se puede integrar con “business workflows” de Microsoft BizTalk Server for SAP, ERP, CRM, Web Service y aplicaciones de  mainframe
·         Administrar grandes volúmenes de datos e irlos escalando hasta obtener lo necesario
·         Puede mover grandes cantidades de información de manera rápida
·         Ofrece un ambiente familiar para desarrolladores
·         Integration Services de SQL Server 2012 puede ser integrado con Visual Studio 2010 development studio especialmente para desarrolladores
·         Posee un familiar y comprensivo ambiente de desarollo
·         Se pueden instalar paquetes en producción con un wizard
·         Se puede explotar aún más si se integra con Business Intelligence Development Studio,  Analysis Services y Reporting Services de SQL Server 2012
 
- - - - - - - - - - - - - - - - - - - - - - - -
~Mario Vargas


"Two Wrongs Doesn't Make One Right"

Ejemplo: Oracle Datawarehouse

 
DataWarehouse Según Oracle
Oracle Database 11g es una plataforma integral de base de datos para datawarehousing e inteligencia de negocios que combina escalabilidad y desempeño, análisis bien integrado y calidad de datos e integridad—todo en una sola plataforma que se ejecuta en una infraestructura grid de bajo costo y confiable.
Ofrece una plataforma exclusivamente integrada para análisis. Al incorporar OLAP, Data Mining y capacidades estadísticas directamente en la base de datos, Oracle brinda toda la funcionalidad de motores analíticos autónomos con la escalabilidad,
seguridad y confiabilidad empresarial de una base de datos Oracle. Oracle Warehouse Builder, que aprovecha las capacidades escalables de Oracle en cuanto a transformación de datos y acceso a datos heterogéneos.
 


Pasos para Integrar Datawarehouse:
 
1. Instalar una herramienta llamada: Warehouse Builder
2. Preparar el Centro de Diseño del Warehouse Builder
a. Consiste en configurar el entorno del usuario, idioma, tipos de alertas o confirmaciones
b. Hacer los conectores a las fuentes de datos, pudiendo ser archivos, aplicaciones o bases de datos
c. Definir un Destino, puede ser un archivo plano o bien un esquema de Oracle
3. Importar los datos
a. Identificar qué es lo que se va a traer
b. Generar los DDL or PL/SQL que van a poblar el destino
4. Comparar el Diseño
a. Revisar que se estén ejecutando correctamente los scripts que traen la información
b. Verificar que los Mappings sean correctos
5. Deploy
a. Se hace un deploy sobre infraestructura productiva
b. Ejecutar la lógica del ETL para que se llene el datawerehouse
c. Repetir cuantas veces sea necesario, cuando queramos información nueva
d. Planificar cada cuando refrescar la información (por medio de un flujo manual o por job)



- - - - - - - - - - - - - - - - - - - - - - - -
~Mario Vargas


"Two Wrongs Doesn't Make One Right"


Esquema funcional de un Datawarehouse

La Interacción de los Componentes en un Datawarehouse

 
DWM (data warehouse manager): El Administrador de todo el servicio de DW, debe de atender a los usuarios y a sus requerimientos (tip: debe de tener la característica de ser sociable). Es alguien que pueda entrar un poco en detalle (luego cada quien tiene su propio lenguaje o conceptos). No debe de Atarse a la tecnología, tomarla solo como un medio. El Administrador del Datawarehouse debe de tener bien claro cómo funciona el negocio, y estar alineado con los objetivos del negocio. Debe de estar en constante búsqueda de usuarios, o bien, usuarios potenciales, porque esto le va a dar más fuerza al Datawarehouse y crecimiento. También debe de definir el diseño de los datos con los que se van a trabajar (verificar que sean los correctos) Debe de poder hacer que el acceso a los datos sea de forma simple,  consistencia e integridad de los datos, debe de meterse a todas las fuentes de información y enderezarlas para que entren bien al datawarehouse. Debe de estar verificando los resultados con los usuarios (si no son confiables, bajo desempeño), debe de ser parte de la toma de desciciones,

Esquema: Consiste en diseñar la arquitectura de como va a ser alimentado, diseñado nuestro esquema de Data Warehousing. Construir el ETL es lo más importante y tardado, el Datawarehouse es lo más rápido de construir, lo que está a la derecha del datawarehouse son herramientas del usuario

 


Sistemas Fuente: Se toma en cuenta realizar una re-ingeniería a varios niveles para que los datos vengan bien formateados e íntegros (por ejemplo unificar un catálogo de cuentas, puede ser definir un rango de número de empleados por empresa, prefijos, sufijos.

 Area de Ensayo: o también llamado el Staging Area, puede estar separado completamente del Datawarehouse

Extracción: Es importante que al procesar la extracción y transformación, meter cifras control, para estar seguros que estamos trayendo todos los datos que debemos traer (se procesaron 95,000 registros de 100,000 registros) ya sea por errores, problemas de comunicación, etc.

 Transformación: Homogenizar los datos, si es necesario rechazar o modificar un dato, se requiere hacer un reporte para saber el por que de los campos. Reporte de que no se pudo resolver (este reporte debe de ser muy muy mínimo)

Carga: es de los mas sencillos, pero de los mas críticos. (es recomendado que no haya usuarios, bloquear la tabla donde se cambiarán los datos, deshabilitar los objetos que estén colgados de dicha tabla, quitar índices, hacer el proceso de  carga (Bulk Copy) de los datos, re-indexar  y luego volver a levantar todo

 Herramientas: Hay cantidad inmensa de clientes que pueden explotar el Datawarehouse (por ejemplo el WEKA) y garantizar la compatibilidad y conectividad.

 Metadatos: Son datos  acerca de los datos (rango de valores, de donde viene la información, cada cuando se actualiza, que formato tiene). Se debe de tener el Diccionario de datos bien actualizados y documentados

 ODS: Operational Data Store (área de datos operacionales) cuando se tienen paquetes estándar de reportes que siempre se piden. Un área entre el Datawarehouse y el cliente que se conecta. Es una base de datos pequeña que replica una cierta cantidad de información y el cliente se conecta a ella. Está fuera del Datawarehouse. (triggers)

 Data Mart: Algunos dicen que un Datawarehouse no existe físicamente, es una colección de Data Marts. Un data mart es un mini-Datawarehouse por región (territorio), por tiempo(rangos de fecha),por evento (ventas por internet, ventas en mostrador, ventas por teléfono). En sí un data mart es una sección del Datawarehouse principal. Es asilar cierto rango de datos, seccionar los datos.

Teniendo un Data Mart, podemos ponerlo enfrente del  datawarehouse y que del data mart se cuelguen los clientes o incluso otros ODS’s, con el fin de distribuir la carga del datawarehouse central


- - - - - - - - - - - - - - - - - - - - - - - -
~Mario Vargas


"Two Wrongs Doesn't Make One Right"

Thursday, January 17, 2013

Los mitos del Datawarehouse

Data warehousing


Dándonos a la tarea de Investigar lo que realmente es un esquema de Datawarehouse debemos de partir primero por su definición para posteriormente irlo descomponiendo de acuerdo a sus caracterísiticas

Haciendo un poco de historia:

Cuando surge la necesidad de tener que almacenar información estructurada para poder consultarla, manipularla o bien solamente explotarla surgen los Archivos Maestros. éstos son archivos que tienen un formato secuencial de cierto tipo de datos estructurados, donde los atributos pueden cambiarse pero el registro es permanente. para poder llevar un correcto control y acceso a esta información eran necesarios arreglos de discos o cintas capaces de ir adelante y atras para ser leidos.

Posteriormente surge el concepto de Base de Datos, la cual ademas de llevar un Archivo Mastro lleva un Archivo de Log Transaccional, e incorpora nuevas ventajas como la posibilidad de indexar información para que la búsqueda sea más rápida, también el echo de que permite tener información relacional.

Una base de datos puede dividirse en dos de acuerdo a sus principal función:

OLTP -> Soporte de para llevar a cabo las operaciones del día a día, suele ser un software  caro, soporta puro nivel transaccional, es el requerimiento mas básico que se puede tener para almacenar información dinámica, no se le da acceso a los altos mandos pues son datos muy en bruto. Las transacciones que se llevan a cabo implican inserts, deletes, updates y selects muy específicos y de bajo volumen.

OLAP -> Sigue siendo una base de datos, pero no es transaccional, es una base de datos para análisis. Fundamentalmente está diseñada para soportar Selects de alto volumen solamente, no es para editar, agregar o eliminar registros.

Tanto OLTP y OLAP tienen diferentes estrategias, necesidades diferentes, por lo que no se puede andar pasando de OLAP a OLTP o viceversa

Es Apartir de este esquema de OLAP donde va surgiendo el concepto de DataWarehouse. Antes que nada un Datawerehouse no es un producto que se compre y luego se implemente así de fácil. No es una base de datos común y corriente (base de datos transaccional, operativa) es una base de datos de análisis de datos destinada para ser explotada por sistemas de tipo MIS (Managment Support System) o DSS (Desicion Support System)

Algunos autores la definen como:
“Es una base de datos relacional diseñada para consulta y análisis (curtis)”
“Copia de datos transaccionales estructurada para la consulta y análisis (kimball)”

“Un datawerehouse de acuerdo a sus características puede ser una base de datos estructurada Orientada a materias, integrada, no volátil o variante en el tiempo (Inmon)”

Un Data werehouse tiene caracterísiticas como:

      ·         Montañas de datos (maneja grandes volumenes de información)
·         Slice & dice (hace corte de cierto rango de datos para proyectarlos o explotarlos)
     ·         Facilidad de acceso a los datos (no como tal a los datos crudos, pero si a los datos mas digeridos posibles)
·         Proporcionar datos importantes para cada usuario, debido a que no a todos les interesa todo, quitar la paja y darles solo lo que piden
·         Los usuarios deben de poder sustentar sus decisiones en base a los datos

En base a estas observaciones podemos obtener los requerimientos que debe de tener un DataWarehouse

·         Relevancia: Que sea información necesaria para la toma de alguna descición
·         Exactitud: Tener la certidumbre de que los datos proyectados son veraces
·         Oportunidad: Que los datos estén disponibles para cuando se necesiten
·         Intencionalidad: Saber para que queremos los datos?, a quien están enfocados y para que?
·         Formato: los datos deben de tener consistencia (integridad)
·         Interactividad: Que los datos estén en un medio disponible para que los sistemas externos puedan explotarlos cuando se necesiten
·         Control: Los datos deben de estar protegidos físicamente como lógicamente para evitar mal uso de ellos o siniestros

Un data werehouse no es una báse de datos pública, es interna por cada organización, que tiene también las características de:
  • Orientado a temas: Uno o mas objetivos bien definidos (para que la queremos
  • Integrada: Multiples fuentes de información en una sola
  • No volátil: Una vez que se ingrese un dato, éste no se mueve ni se altera
~Mario Vargas


"Two Wrongs Doesn't Make One Right"