Unidad II - Infraestructura para volúmenes grandes de datos
Herramientas de Procesamiento de Volúmenes Grandes de Datos
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.
Para abrir un e-commerce se ha desarrollado la aplicación que va a interactuar con los usuarios.
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.
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.
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.
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.
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.
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.
Escalamiento horizontal automático
Balanceador de carga
Integración con sistemas de versionamiento
Facilidad para armar pipelines de integración continua
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.
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.
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.
Permite tener un espacio ordenado, donde copiar todos los datos que necesitan los analistas de datos para realizar su trabajo.
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
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.
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.
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.
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.
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.
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.
Los patrones más comunes para llevar datos a un Data Warehouse son dos:
Consiste en tomar todos los datos de las fuentes de datos, procesarlos y luego guardarlos en un Data Warehouse.
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.
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.