Data Warehousing y la Nube

Unidad II - Infraestructura para volúmenes grandes de datos

Enver G. Tarazona Vargas
peetaraz@upc.edu.pe

Herramientas de Procesamiento de Volúmenes Grandes de Datos

¿Qué aprenderás?

  • Comparar distintas alternativas para el almacenamiento en la nube.

  • Comprender la forma de resolver un problema realista de extracción de información almacenada en la nube.

  • Identificar los principios de las tecnologías en la nube

  • Identificar las características del paradigma Data Warehousing.

Los dos recursos más solicitados por las empresas son el espacio para guardar datos y el poder de cómputo. Para suplir esta necesidad surgieron las herramientas de la nube, ya que son capaces de entregar recursos computacionales on-demmand.

Un poco de historia

Ejemplo e-commerce




Para abrir un e-commerce se ha desarrollado la aplicación que va a interactuar con los usuarios.




¿Cómo hacer que la aplicación esté disponible para el público?




Es necesario un servidor, su configuración, algún sistema operativo, un web server, una base de datos, y realizar la configuración para exponer la aplicación al mundo.

Escalamiento Vertical

El e-commerce ha logrado crecer bastante y dada una alta demanda se cae.


Escalar servidor

Esto es alquilar un servidor mejor, con más RAM y CPU.

Esto se conoce como escalamiento vertical.

Escalamiento Horizontal




Para configurar esta red probablemente se necesita un equipo especialista para que realice esta tarea.

El Problema de los Grandes Datos


A medida que más usuarios usen la aplicación, son más datos los que se van a generar y no van a caber en un solo computador, por lo que se usará un sistema de datos distribuidos.




Un sistema de datos distribuido es una tarea muy compleja, ya que implica sincronizar lecturas y escrituras entre varios computadores.

Pipeline de Datos

Problema: Recomendar productos a clientes

Para preparar este modelo se necesita:


Montar un Data Lake, un Data Warehouse, un entorno de entrenamiento y uno de producción para los modelos.

Armar toda esta infraestructura desde cero es una tarea compleja, que se escapa bastante de nuestro objetivo, que es hacer un sistema recomendador.



La nube cuenta con recursos computacionales y se pueden omitir todos los pasos de configuración, que solían ser muy complejos.

Beneficios de la Nube



Levantar una aplicación

Clúster con base de datos

Guarda una cantidad ilimitada de archivos

Armar un pipeline de datos

Levantar una aplicación

En un entorno de producción haciendo pocos clicks. Escala automáticamente ante un aumento de la demanda.

Clúster con base de datos

Se monta en minutos, escala automáticamente y no hay configuración del sistema distribuido.

Guarda una cantidad ilimitada de archivos

A los que es posible acceder desde la aplicación.

Armar un pipeline de datos

Sin la necesidad de configurar un servidor (Data Lake, Data Warehouse), entornos de desarrollo y producción de algoritmos de aprendizaje automático.




No se debe configurar nada y tampoco existe preocupación porque los servicios escalen (server less).

Características

Al trabajar con entornos en la nube :


Todos los servicios son configurados automáticamente por los proveedores: Google Cloud Platform o Amazon Web Services.

Estos servicios están configurados automáticamente para decidir de forma inteligente cuando necesitan escalar.

Un servicio en la nube puede replicarse para satisfacer la necesidad de más recursos.




Es un avance notable, ya que podemos extraer datos secundarios y concentrarnos en el problema que queremos resolver, y no en la configuración de la infraestructura.

Herramientas en la nube

Proveedores de Servicios en la Nube


Beneficios



Escalamiento horizontal automático

Balanceador de carga

Integración con sistemas de versionamiento

Facilidad para armar pipelines de integración continua

Principales Servicios en la Nube


En resumen…

  • Las herramientas en la nube permiten acceder a un gran poder de computo y grandes espacios de almacenamiento, sin la necesidad de tener que configurar los sistemas.

  • El auge de las tecnologías en la nube se debe a que son la forma más fácil y rápida de levantar aplicaciones y servicios en entornos de producción.

En resumen…

  • Es importante investigar los pros y contras de los proveedores de servicios, para saber cuál es el que resuelve mejor nuestro problema.

  • En general, es más conveniente tener todos los servicios bajo el mismo proveedor.

¿Por qué Data Warehousing?




Las bases de datos transaccionales no son espacios apropiados para hacer consultas analíticas.




Por lo tanto, se opta por armar un Data Warehouse, en un sistema preparado para recibir consultas típicas del contexto de análisis de datos.

Paradigma del Data Warehousing



Permite tener un espacio ordenado, donde copiar todos los datos que necesitan los analistas de datos para realizar su trabajo.




¿Por qué es complicado hacer análisis de datos sobre la misma base de datos de la aplicación?

Aumenta considerablemente la carga computacional :


Las consultas de análisis de datos consumen muchos recursos.


Además, puede ralentizar las operaciones del negocio.




Nace así, la idea de tener un lugar pensado para guardar datos y hacer analítica sobre ellos, que esté fuera del ambiente de nuestra aplicación

¿Cómo se piensa este sistema?


Base de Datos Transaccional

Entre este tipo de bases de datos destaca PLSQL, MySQL o SQL Server :

Está pensado para mantener las transacciones de una organización (operación de una aplicación).

También, para recibir varias operaciones de lectura y escritura, pero donde cada operación es liviana.

Ejemplo e-commerce


Consultar los datos de una compra que tenga un identificador determinado.

Insertar un nuevo cliente o una nueva compra.

Modificar el valor de un producto.

Revisar las compras que ha hecho un usuario en particular.

Índices


Data Warehousing

Es un sistema para encontrar datos ordenados :


Que están listos para ser consultados por los analistas de datos.

Hay datos históricos que pueden servir para diversas tareas.

Ejemplo de Uso de Data Warehousing


Hacer reportes con agregaciones para distintas ventanas de tiempo.

Hacer análisis complejos de datos para encontrar clusters o patrones en los datos.

Alimentar las distintas herramientas de visualización de datos.




Los sistemas más populares para Data Warehousing son los ofrecidos por un proveedor en la nube.




Todos estos sistemas se centran en el mismo principio: ser un sistema de datos para Data Warehousing que es serverless, gestionado por el proveedor en la nube.




Pueden procesar grandes cantidades de información, pero mientras más datos procese en una consulta, más caro cobrarán por el servicio.



Los sistemas para Data Warehouse tienden a ser lentos y no necesariamente aseguran funcionar cuando están sujetos a los volúmenes de transacciones en aplicaciones masivas, como bancos o páginas de e-commerce.

Patrones y Algoritmos en Data Warehousing

Construyendo un Data Warehouse

Los patrones más comunes para llevar datos a un Data Warehouse son dos:

ETL (Extract-Transform-Load)



Consiste en tomar todos los datos de las fuentes de datos, procesarlos y luego guardarlos en un Data Warehouse.

ELT (Extract-Load-Transform)



Consiste en tomar todos los datos de las fuentes y guardarlos sin procesar en una capa intermedia (Data Lake). Luego, procesar los datos crudos y montarlos sobre el Data warehouse.

¿Cuál es el patrón más usado?


Data Lake vs. Data Warehousing

Un Data Lake es un espacio donde se guarda información de distintas fuentes :


Sin estructura y en crudo, es decir, sin procesar.

No es un lugar donde un analista quiera ir a buscar datos, pues es “difícil navegar” por este lago.