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"