Saturday, February 16, 2013

Errores Comunes y Recomendaciones para DWH


Errores más comunes al diseñar un DWH

 
10) Campos de Texto como identificadores

9) Limitar los campos de texto descriptivos en las dimensiones

8) No dividir en Jerarquías las Jerarquías en las dimensiones, evitar usar el Copo de Nieve cuando sea posible

7) Cambios en los atributos del DataWareHouse (no necesariamente es algo malo), se puede dejar la tabla original y crear una nueva y ligarla, así no se pierde la conectividad

6) Los problemas de performance no siempre se arreglan al agregar mas potencia de hardware

5) Analizar si es necesario meter llaves en las tablas de hechos y dimensiones, índices si, pero llaves es de analizarlo, por otro lado si se decide utilizar llaves, que sean llaves muy simples y no  compuestas

4) Quitar la granularidad innecesaria, por ejemplo: tener un campo de nombre completo y dividirlo por nombre, apellido paterno, apellido materno, o el RFC dividirlo por mes-día-año

3) No limitar el diseño del DWH a un solo reporte en específico, tratar de hacerlo lo mas general posible para que pueda ser explotado

2) Evitar que los Datamarts sean en base a datos agregados (cálculos por ejemplo la edad) evitar que el usuario tenga que hacer un Drill-Down para obtener toda la información

1) Si utilizamos varias tablas de echos que utilizan tablas dimensiones en común (iguales) evitar crear tablas dimensión por separado, utilizar la misma tabla dimensión

 

Negatividades al crear o diseñar un DWH

 
10) Marcar la importancia del DataWareHouse

9) Establecer un plan para que los usuarios lo conozcan, que sepan explotarlo, exponerle los beneficios y los alcances que puede tener (Publicación del DataWareHouse)

8) Los usuarios que le den soporte al DataWareHouse estén en oficinas cómodas y cerca de los usuarios, no darles un trato especial y hacerlos como vedet’s

7) hacerle ver a los directivos que terminando la prueba de un DWH, pueden pasar meses hasta que ese DWH pueda ser llenado con datos reales, se debe de tener capacitación y entrenamiento simple (no retacarlos de información)

6) El usuario de negocio no es un usuario de sistemas, solo van a aprovechar el DataWareHouse si existen herramientas o programas que los ayuden (asumir las capaciades del usuario)

5) No crear expectativas falsas, siempre tratar de hacer un datawarehouse ligero y sobre la marcha irle metiendo mas cosas,

4) Interactuar con el DWH desde el inicio con los directivos, no sólo cuando ya está terminado

3) No pretender satisfacer todas las necesidades

2) Mantener desarrollos simples

1) apender a escuchar a los usuarios, estar seguros de que el DWH que se está construyendo, es el correcto para sus necesidades, debido a que al final de cuentas siempre va a tener razón

 
Recomendaciones para escoger la plataforma del DataWareHouse
 
Lógicos – Físicos
 
Entidades – Tablas

Relaciones – Constraints (PK’s, Fk’s, Not Null, No duplicates)

Identificadores úncos – Uk’s o Indexación
 
 
Definir los table spaces (uno o mas archivos, va muy de la mano con el sistema operativo) no darle mas de un uso al servidor del DataWareHouse, que no sea el disco del sistema operativo

Separar los tables spaces de tablas de echos y dimensiones (éstas últimas casi no se mueven), las tablas de echos siempre están creciendo constantemente, un table space para los índices
Organizar las tablas y particiones, separar por ejemplo la tabla de echos por periodos
Hacer vistas, analizar si se necesita que tenga o no índices, se necesitan vistas materializadas? Y en caso de que así sea, analizar si se necesita una table space para las puras vistas

Mientas menos constraints tenemos mas rápido va a responder el DWH
NO meter Indices en campos derivados!
Saber cuales son las capacidades de indexación del DMBS,


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


"Two Wrongs Doesn't Make One Right"

Organigrama y Necesidades de Información


Características de la información por áreas

 

Requerimientos de Información por Nivel:

Dirección: Requiere información estratégica del desempeño de las gerencias

·         Control y Administración de Accesos Lógicos:  Al ser un administrador de identidades, requiere estadísticas de folios abiertos, cerrados, en curso y por tiempos de respuesta al usuario

·         Control de Accesos Físicos: Requiere reportes sobre accesos no autorizados a áreas restringidas, y detecta patrones de riesgos de seguridad, o mal uso de las credenciales de empleados

·         Procesos y Normatividad: requiere información sobre resultados de auditorías a todas las áreas internas

·         Certificación: requiere información sobre vulnerabilidades en servidores, bases de datos y aplicaciones, vista por ecosistemas

·         Administración, Monitoreo y Seguridad en Redes:  reporte de ataques y tipos de ataques que se detectan a las redes y servidores de la empresa

Gerencia: Requiere información para la toma de decisiones en

·         Reportes de productividad por operador / usuario

·         Reportes de incidentes en sistemas o infraestructura

·         Medición de los tiempos de respuestas

·         Consulta de Históricos para generación de historiales

Operativo: Solamente se requiere saber como mejorar el desempeño de la operación diaria

·         Investigar nuevas tecnologías

·         Metricas de procesos para detectar áreas de oportunidad de mejora


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


"Two Wrongs Doesn't Make One Right"

Orígenes del DataWareHouse


Orígenes de un DataWareHouse

El DataWareHouse es un repositorio de información integrada, disponible para búsqueda y análisis. Los datos y la información del DataWareHouse provienen frecuentemente de múltiples fuentes u orígenes, como también relaciona datos de diferentes tipos, lo que hace más fácil ejecutar búsquedas ya que dicha tecnología permite aplicar mecanismos de estructuración y organización.

 

Historia del DataWareHouse:

Todo se origina desde la necesidad básica de la humanidad de dejar un registro de sus actividades, de poder almacenar poca o mucha información y poder almacenarla para ser explotada posteriormente por cualquiera.

 

Actualidad.

                Datos primitivos(OLTP)                      vs            datos derivados (OLAP)

                Operacional                                                         Sujeto a un proceso (sumarizar, calcular).

                Se conserva a nivel detalle.                              Condensacion

                Operación por Operación                                 Acumulable

                Actualizable                                                         Histórico

Valor actual

                procesos repetitivos                                          procesos hurísticos

 

En general el concepto de un DataWareHouse se originó un poco antes de a mediados de los años 80s, en esencia, dicha tecnología pretende proporcionar un modelo de arquitectura para el flujo de datos de los sistemas operacionales y los ambientes de decisión.

Es decir intenta direccionar los diferentes problemas relacionados a este flujo de datos, y los altos costos asociados. La ausencia de tal arquitectura ocasiona un alto índice de redundancia en la administración y distribución de la información, por ejemplo en empresas grandes las decisiones de los diferentes proyectos que operan independientemente dependen de múltiples bases de datos, en donde en la mayoría de los casos existe información en común que puede ser compartida con el DataWareHouse sin necesidad de que dichos datos se repitan.
- - - - - - - - - - - - - - - - - - - - - - - -
~Mario Vargas


"Two Wrongs Doesn't Make One Right"

Thursday, February 7, 2013

Diseño DataWareHouse 3FN


Esquema de un DataWareHouse de tipo 3FN
 

En un esquema de DataWareHose Basado en la Tercera Forma Normal (3FN) es quizás el más cómodo que se pueda llevar a cabo pues parte de un esquema OLTP, solamente es cortarlo y así tal cual pegarlo en  nuestro DataWareHouse, el proceso de ETL es mucho más sencillo pues solamente es copiar los datos de un esquema a otro sin demasiado proceso de transformación


 
Se compone por una tabla de Hechos compuesta, de la cual se puede ir de lo general hasta lo particular, llegando a tener un Drill-Down bastante específico y rico en detalles.

 Cada vez que se refresca la información solamente se particiona la tabla para que represente los datos actuales del periodo que nos interesa, guardando en históricos la demás información

 

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


"Two Wrongs Doesn't Make One Right"

Las 12 Reglas Doradas del DataWareHouse


Las 12 Reglas de un Datawarehouse
 

Existen 12 reglas que proponen los grandes expertos en Diseño e Implementaciones de DataWareHouses; William H. Inmon y Chuck Kelley
 
1.       The Data Warehouse and operational environments are separated.
a.        Los Ambientes de OLTP y OLAP deben de estar separados, preferentemente hasta en nivel físico para que no se afecte la Operación al estar procesando el ETL
2.       The Data Warehouse data are integrated.
a.        Toda la diversidad y fuentes de datos, deben de estar homologados al ser almacenados en un DataWarehouse
3.       The Data Warehouse contains historical data over a long time horizon.
a.        Es importante tener en mente que en el DataWarehouse se van a tener una gran cantidad de datos históricos almacenados
4.       The Data Warehouse data are snapshot data captured at a given point in time.
a.        Se generan cortes de información que no cambian
5.       The Data Warehouse data are subject-oriented.
a.        La información almacenada en un DataWarehouse es sobre un tema en específico
6.       The Data Warehouse data are mainly read-only with periodic batch updates from operational data. No online updates are allowed.
a.        El procesamiento de un ETL puede ser muy costoso en cuestión de performance, por ello no debe de nunca ejecutarse en tiempo real y tampoco debe de ser retroactivo
7.       The Data Warehouse development life cycle differs from classical systems development. the Data Warehouse development is data driven; the classical approach is process driven.
a.        El Datawarehouse esta diseñado para que pueda ser explotado por otras aplicaciones convencionales, esta orientado a los procesos
8.       The Data Warehouse contains data with several levels of detail; current detail data, old detail data, lightly summarized, and highly summarized data.
a.        Básicamente en un DataWarehouse se tiene de todo tipo de información, información reciente, histórica, tan general o detallada como se guste
9.       The Data Warehouse environment is characterized by read-only transactions to very large data sets. The operational environment is characterized by numerous update transactions to a few data entities at the time.
a.        Un DataWarehouse debe de ser solo lectura puesto que los datos dentro no deben ser modificados, no es una base de datos transaccional es solo para consulta
10.    The Data Warehouse environment has a system that traces data sources, transformations, and storage.
a.        Siempre debe de haber una forma de rastrear de donde viene la información, una traza que indique ¿Cómo? y de ¿Dónde? se obtiene la información
11.    The Data Warehouse’s metadata are a critical component of this environment. The metadata identify and define all data elements. The metadata provide the source, transformation, integration, storage, usage, relationships, and history of each data element.
a.        Tener datos que describan los datos es escencial, pues de ellos sabremos que información se está almacenando dentro de nuestro DataWarehouse
12.    The Data Warehouse contains a charge-back mechanism for resource usage that enforces optimal use of the data by end users..
a.        Básicamente que la información siempre esté disponible para el usuario final y ésta se encuentre bajo un esquema que le permita ser explotada de forma óptima

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


"Two Wrongs Doesn't Make One Right"

Friday, February 1, 2013

Diseño de un DataWareHouse Copo de Nieve y Estrella

Implementación de un DataWareHouse
Debido a las características inherentes de un Data Warehouse como lo son: grandes cantidades de índices, cantidades enormes de datos que provocan consultas de alto volumen, un ambiente desnormalizado y ninguna modificación de los datos ya guardados es de suma importancia planear de forma correcta la implementación de un Datawarehouse.


Los pasos que se pueden seguir para llevarlo a cabo:
Identificación de requerimientos de los usuarios.
Construcción del modelo lógico y físico.
Proceso de extracción, transformación e integración de datos (ETL), el cual servirá para alimentar nuestro Datawarehouse
Desarrollar las interfaces o medios para que aplicaciones puedan extraer la información almacenada
Implementar herramientas de análisis.
Asegurar resultados, hacer un checksum que nos permita estar totalmente seguros de que la información esta completa
Afinación o mejoras (a nivel diseño, estructura o performance)

NOTA: El modelo entidad relacional nos va a servir sólo para expresar el Datawarehouse


 


Modelo de Diseño de Estrella (snowflake)
Uno de los tipos de consultas más usadas en las OLAP es la llamada Estrella. Su nombre lo adquiere debido a que su implementación en un ambiente relacional (Multidimentional) está dado por varias tablas que almacenan las jerarquías dimensionales y una tabla que contiene el hecho con una relación 1:m con estas tablas de dimensiones.

 

Como podemos ver en la figura las tablas de dimensiones están ligadas a la tabla Fact, por relaciones. La integridad referencial es llevada a cabo por la creación de llaves foráneas en la tabla Fact, que a su vez forman parte de la llave principal de esta tabla. Es importante destacar que las jerarquías completas son guardadas en una sola tabla dimensión (que le proporcina la característica de no normalizado)

El detalle importante del diseño de las tablas en el modelo estrella está en los catálogos. Tiene que poner en una sola tabla todo aquello que se pueda deducir del elemento más granular de la tabla y que está más abajo en la jerarquía.
TIP: Si está pensando crear un cubo con los Analysis Services de Microsoft usando esta estrella, el poner la llave en la estrella hace que el cubo se reduzca de tamaño y el tiempo de respuesta se acelere

TIP: Para las llaves tratar de que sean de tipo numérica y de no utilizar llaves compuestas


Para finalizar este tema es necesario hacer alusión a los llamados Cubos de datos: Estos no son más que el conjunto formado por todas las tablas Dimensión y la tabla Fact que al final dan una vista en forma de Cubo cuyas celdas están compuestas por las medidas de la tabla Fact. Esta es la base de las aplicaciones OLAP

 

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


"Two Wrongs Doesn't Make One Right"

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"