25/10/2016

Data warehousing: datos integrados para entender mejor el negocio

Data warehousing: datos integrados para entender mejor el negocio

Un data warehouse (DW, almacén de datos) es una colección de datos históricos consolidados provenientes de distintas fuentes, que ayuda a la toma de decisiones dentro de una organización. Es un sistema que recolecta la información generada por el software de distintas áreas de la empresa (marketing, ventas, proveedores, etc.) y los integra de tal manera que puedan ser fácilmente analizados. Este análisis permite identificar fenómenos, patrones y tendencias que nos ayuden a comprender la realidad de nuestro negocio y mejorar el servicio a partir de ello.

Según William H. Inmon, que acuñó el término data warehousing en la década del 70, un almacén de datos se caracteriza por presentar estas cualidades:

  • Orientado a un tema. Un data warehouse puede concentrarse en un tema particular. Por ejemplo, un data warehouse orientado al tema de las ventas podría ayudar a responder preguntas como «¿Cuál fue el producto más vendido de los últimos cinco años?».
  • Integrado. Integrar es llevar a un formato consistente datos que provienen de fuentes distintas. El data warehouse debe resolver problemas tales como conflictos de nombres e inconsistencias entre unidades de medida, moneda o tiempo.
  • No volátil. Esto significa que, una vez ingresados en el warehouse, los datos no deberían cambiar.
  • Variante en el tiempo. Provee información desde una perspectiva histórica (ej.: los últimos 5 a 10 años).

Un data warehouse es una base de datos, pero diferente a las que se utilizan en la mayoría de las aplicaciones habituales, conocidas como bases de datos operacionales o transaccionales. Los sistemas con los que más interactuamos a diario suelen usar el enfoque OLTP (Online Transaction Processing, procesamiento de transacciones en línea), mientras que los sistemas de data warehousing suelen usar el enfoque OLAP (Online Analytical Processing, procesamiento analítico en línea). Estos modelos presentan algunas diferencias:

  • OLTP se orienta a la optimización de las transacciones. Su foco son las operaciones de actualización de datos (alta, baja, modificación). Es ideal para consultas simples y breves, pero frecuentes (incluso concurrentes), que requieran un tiempo de respuesta en el orden de la fracción de segundo. Aplicaciones: cajeros automáticos, sistemas de transacciones financieras, cajas registradoras.
  • OLAP se orienta al análisis de datos y los reportes de negocio. Su foco son las operaciones de lectura y agregado de datos. Es ideal para consultas poco frecuentes, pero complejas y largas, que admitan un tiempo de respuesta en el orden de una hora o más. Aplicaciones: diagnóstico médico, marketing predictivo, gestión de energía.

Generalmente, los sistemas OLTP usan bases de datos relacionales, mientras que los sistemas OLAP usan bases de datos multidimensionales. En el modelo relacional, los datos están normalizados y se almacenan en tablas con filas y columnas (dos dimensiones). En el modelo multidimensional, los datos están desnormalizados y se almacenan en una estructura llamada cubo (tres dimensiones) o hipercubo (más de tres dimensiones), que facilita el análisis de los datos desde múltiples puntos de vista.

Más allá de las definiciones, en la práctica existen varias diferencias entre una base de datos operacional y un data warehouse:

  • En una base de datos operacional se hacen actualizaciones frecuentes. En un data warehouse, no.
  • Una base de datos operacional almacena datos actuales. Un data warehouse almacena datos históricos.
  • Generalmente, una base de datos operacional se destina a una sola aplicación. Pero como el data warehouse condensa múltiples bases de datos, se destina a múltiples aplicaciones.

Además de la base de datos, un entorno de data warehousing incluye diversas herramientas software que gestionan el proceso de recolectar datos y proveérselos a usuarios de negocio. Las tareas más importantes se agrupan en una secuencia de tres pasos conocida como ETL:

  • Extraer (extract). Extraer los datos de diferentes sistemas fuente —como SAP, ERP, CRM y otros sistemas operacionales—, que generalmente usan bases de datos relacionales. A veces también se extraen datos de emails, páginas web, documentos PDF o textos escaneados.
  • Transformar (transform). En este paso se aplica una serie de reglas para transformar los datos originales de manera que puedan ser cargados en otro almacenamiento (en nuestro caso, el data warehouse). Esto suele incluir las tareas de limpieza (clean), que consisten en unificar el formato de ciertos datos. Por ejemplo, es probable que una de nuestras fuentes presente las categorías de sexo como «Hombre/Mujer/Desconocido» y otra fuente las presente como «Masculino/Femenino/Indefinido». Estos formatos deben condensarse en uno solo. También se lleva a cabo la validación de datos (como los domicilios), la generación de claves sustitutas, el ordenamiento y la inserción de valores calculados.
  • Cargar (load). En el último paso se cargan los datos en la base de destino, procurando el menor consumo de recursos posible.

Un data warehouse es la solución ideal para las empresas que producen grandes volúmenes de datos de distinta naturaleza, y necesiten analizarlos de manera conjunta y en profundidad. Sin embargo, estos sistemas son difíciles de implementar, escalar y rediseñar a lo largo del tiempo, y requieren de hardware con capacidades excepcionales en términos de almacenamiento, ancho de banda y procesamiento. Así y todo, y a pesar de su antigüedad, en muchas compañías importantes el data warehousing es esencial para la toma de decisiones, y constituye la base de distintas operaciones de data mining, como asociación, clustering, clasificación y predicción.

Artículos relacionados

0

angularjs aplicaciones mobile behavioral targeting Botones Call-to-action breadcrumbs breadcrumbs web búsqueda de personal búsqueda facetada Call-to-action buttons Client-side cliente-destacado cms a medida coding comercio electrónico content marketing conventions CSS3 PIE cuanto debe pesar un sitio data-driven web design Datos estructurados Defacement Denegación de servicio Desarrollar una aplicación web desventajas de PhoneGap diseñar newsletters diseño web diseño web argentina diseño web esqueuomórfico Diseño web responsive Diseño web responsivo diseño web santa fe diseño web Smart TV diseño web televisores DOM desde PHP enlaces rotos filtros de búsqueda flash flat web design fragmentos enriquecidos función de autocompletar futuro de la realidad aumentada html HTML5 html5shiv inbound marketing Initializr interfaces Web para televisores javascript jobs jQuery Mobile Mapbox maquetado html/css maquetador web maquetando con Initializr masonry layout menú de navegación menú desplegable Metodologías ágiles Modernizr MVC Navegación por teclado oferta laboral OpenStreetMap Paper js Paper js framework personas Phishing plan de QA Polyfills polymer portfolio-destacados portfolio-inicio Portfolios Destacados programacion de CMS Programadores WordPress página de contacto página de error 404 que es Backbone.js Realidad aumentada Resultados instantáneos server-side skeuomorphic design sliders y usabilidad soporte Internet Explorer Storytelling Underscores usabilidad usabilidad buscadores user-centered design ux velocidad de carga web Vendor prefixes ventajas jQuery Mobile Ventanas integradas versiones antiguas de Internet Explorer WAI-ARIA web components web imprimible Web Semántica WordPress para ecommerce