Data Warehouse

Data Warehouse

El almacén de datos es una colección de datos orientados al tema, integrados, no volátiles e historiados, organizados para ofrecer apoyo a procesos de ayuda a la decisión.

El objetivo principal del almacén de datos o Data Warehouse es extraer rendimiento de la información almacenada, y esto quiere decir extraer los datos para un análisis posterior que ayude a tomar decisiones.

El almacén sirve de apoyo a la toma de decisiones y es, por tanto, un almacén orientado a la consulta. Esta orientación condiciona mucho su diseño y modelización, lo que da lugar al llamado modelo multidimensional.

Vemos que este tipo de bases de datos tiene un enfoque diferente respecto a las bases de datos convencionales.

La característica principal que distingue el almacén de datos de la base de datos tradicional es el objetivo por el cual ha sido concebido: ofrecer apoyo a la toma de decisiones.
Un sistema de información que tenga como objetivo ofrecer apoyo a la toma de decisiones, sea cual sea la naturaleza de la organización, no debe basarse únicamente en el almacén de datos. Es precisa la integración de un conjunto de componentes que giren alrededor de un eje central: el almacén de datos.
Todos estos elementos configuran lo que se denomina factoría de la información corporativa (FIC).

Características de un Data Warehouse

Orientado al tema

Cuando diseñamos un almacén de datos, no sabemos cuáles serán las necesidades de los analistas. No podemos saber cuáles son los requerimientos concretos que tienen, ni el uso que se puede llegar a hacer de los datos almacenados (esto se decidirá mucho después, cuando aparezca la necesidad de hacer un estudio concreto). Por consiguiente, lo único que el diseñador puede considerar en este caso son las áreas o los posibles temas de análisis.

Dado que no podemos conocer los requerimientos de los usuarios en el momento en que se construye el almacén de datos, la información no se estructura según su funcionalidad (el uso que se le vaya a dar), sino dividida por temas de interés.

Integración de datos

Los sistemas operacionales de las empresas son heterogéneos: funcionan sobre hardware y software diferentes, utilizan modelos de datos distintos (unos orientados al objeto, otros relacionales, etc.) y presentan el negocio desde diferentes puntos de vista (finanzas, ventas, gestión de personal, etc.). Por lo tanto, el primer paso para ofrecer todos los datos a los analistas debe ser la integración de todos estos sistemas, de modo que los analistas, a pesar de que los datos provengan de fuentes distintas, lo vean como si provinieran de una única fuente.

La integración de los datos presenta múltiples problemas, que no siempre son fáciles de resolver. Por mencionar solo algunos de estos, podríamos hablar de unificar los tipos y las estructuras de datos, definir claves primarias comunes, unificar niveles de granularidad, encontrar una convención en la terminología y definiciones o definir un esquema de datos común (capaz de representar la información de todas las fuentes a la vez), garantizar la calidad de los datos integrados y realizar una gestión ágil de fuentes con altos volúmenes de datos.

Los almacenes de datos disponen de un componente que ayuda a integrar: los metadatos. Estos permiten simplificar y automatizar la obtención de la información desde los sistemas
operacionales hasta los sistemas informacionales y, por lo tanto, son básicos para el proceso de integración

Información histórica y no volátil

Hay que distinguir dos tipos de información temporal. El primer tipo nos indica cuándo se produce un acontecimiento en el mundo real (la historicidad). El segundo cuándo tenemos constancia del hecho en nuestra base de datos (la no volatilidad).

La historicidad es importante para analizar cómo han evolucionado las cosas, para ver una película en lugar de una fotografía. Cualquier dato en el almacén de datos debe ir acompañado de su periodo de validez. En cambio, la no volatilidad nos muestra cuándo nos hemos enterado de los hechos y nos sirve para saber si un informe se hizo teniendo en cuenta unos datos u otros. La no volatilidad implica que no existan las operaciones de modificar y borrar
propiamente dichas. Los datos no se borran o modifican, sino que se insertan correcciones y la fecha en la que se han registrado.

La historicidad nos servirá para hacer estudios sobre la evolución del negocio, mientras que la no volatilidad garantiza que no perdemos ningún dato (ni siquiera los erróneos).

Objetivos

Repositorio central e integrado de información empresarial

El Data Warehouse tiene como uno de sus principales objetivos el ser un repositorio central de información corporativa que puede provenir de diversos sistemas. Este repositorio tiene diversas funciones:

  1.  Integrar información proveniente de los distintos sistemas de la compañía.
  2. Consolidar y homogeneizar esta información.
  3. Ser el punto central de información. Versión más fiel de la información, evitando tener diferentes versiones según la fuente que se consulte.
  4. Depurar y limpiar los datos, garantizando su calidad.
  5. Facilitar procesos de fusión empresarial, si se usa con este fin.

Repositorio base para procesos de análisis y reporting

Los procesos de reporting y análisis necesitan nutrirse de una información de base. Esta información de negocio se recoge de las bases de datos operacionales, pero acceder a ellas para realizar un proceso de análisis o reporting que precisa de información de negocio diversa y recogida en diferentes sistemas, puede ser un proceso costoso y complejo debido a las diferentes ubicaciones de los datos y a su heterogeneidad. Por ello resulta más productivo
acceder a un repositorio centralizado como es el Data Warehouse.

Partiendo de la información integrada, consolidada y depurada del Data Warehouse podemos realizar procesos de análisis y reporting de diferente naturaleza:

  1. Procesos reporting periódico recurrente.
  2. Cuadros de mando.
  3. Procesos de reporting ad hoc para necesidades de información concretas.
  4. Procesos de analítica avanzada (predicción de eventos de negocio, forecasting de evolución temporal).

PHP Cheat Sheet

Fechas:

Calcular 1er día del mes y primer día del siguiente mes a partir de una fecha

$fechaMes1 = new \DateTime('now');
//formateo la fecha para que sea desde el principio de mes
$fecha1Desde = \DateTime::createFromFormat('Y-m-d H:i:s', $fechaMes1->format('Y-m') . '-1 00:00:00');
//fin de mes
$fecha1Hasta = clone $fecha1Desde;
$fecha1Hasta->modify('+1 month');

Array:

Buscar la existencia de un valor en un array multidimensional indexado

$key = array_search('ValorABuscar', array_column($arrayDondeBuscar, 'nombreColumna'));

EXTJS Cheat Sheet

Crear App

sencha -sdk /path/to/extjs/framework generate app AppName path/to/app
cd /path/to/app
sencha app watch

Crear App a partir de template

sencha -sdk /path/to/extjs/framework  generate app -s /path/to/extjs/template  AppName path/to/app
cd /path/to/app
sencha app watch

Actualizar CMD

sencha upgrade