[AUDIO_EN_BLANCO] [MÚSICA] A partir de ahora, nos adentramos en el mundo Big Data, para lo cual es necesario tener claro ciertos conceptos básicos sobre lo que es Big Data y en lo que se basa Big Data. Uno de los primeros conceptos es el concepto de sistemas distribuidos. ¿Y qué es un sistema distribuido? Un sistema distribuido está compuesto por n máquinas, dependiendo de la necesidad de las aplicaciones que vayan a ejecutarse, se colocan unas u otras máquinas. Los sistemas distribuidos tienen la característica de que son nodos independientes que están intercomunicados por la misma red, de tal manera que aunque cada máquina tiene su sistema operativo, por encima de ese sistema operativo se tiene un software que se denomina middleware que permite intercomunicar y saber el estado de cada una de las máquinas. De esa manera, el sistema operativo hace su trabajo pero las máquinas están comunicadas entre sí mediante el middleware para poder transferir información, transferir procesos o cualquier otra orden que sea necesaria. Por encima del middleware se ejecutan las aplicaciones en una o n máquinas, dependiendo de la necesidad. Es importante destacar que de cara al usuario, de cara a la persona que está entrando al sistema distribuido, la visión que tiene ese usuario es de una sola máquina, a pesar de que internamente tenga varias máquinas. Se tiene que tener en cuenta que un sistema distribuido es un sistema complejo, es un sistema en donde hay que tener en cuenta conceptos como replicación de datos, como accesibilidad. Si uno de los nodos, si una de las máquinas deja de funcionar, es importante que el sistema siga funcionando. E incluso escalabilidad. Es muy importante que si el número de máquinas es insuficiente para las aplicaciones que se están ejecutando, se permita de alguna manera escalar y ampliar el número de máquinas sin que ello conlleve a la parada del resto de máquinas o a la incapacidad de poder responder por parte del usuario. El siguiente concepto a tener en cuenta es el de las 5V. Si bien la literatura a veces habla de las cuatro o de las tres V, en nuestro caso queremos hablar de las 5 V por la importancia de cada una de las V. Vamos a destacar cada una de las cinco de manera muy breve. El volumen, que es cantidad de datos que se están obteniendo en plataformas Big Data. La velocidad en la que se están generando esos datos. La variedad, porque vamos a poder almacenar datos de distintos tipos, texto, imágenes, videos, audios, cualquier tipo de número. La veracidad es algo muy interesante, porque los datos no tienen por qué están 100% seguros, pueden ser opiniones, pueden ser datos que no están 100% seguros, puede haber anomalías, puede haber outlaiers. Y por último, el valor, porque es muy importante saber que detrás de todo esto que estamos haciendo lo que intentamos obtener es valor para nuestro negocio, para nuestros intereses personales, para lo que sea. Por lo tanto, el valor es otro caracter muy importante. Otro concepto que vamos a analizar es el de Map Reduce. Es un concepto muy sencillo que lleva existiendo desde hace muchos años que se denomina Map Reduce, pero también se podría denominar concepto divide y vencerás. Dado un problema muy complejo, si bien es muy difícil solucionar ese problema complejo en un tiempo razonable, lo que hacemos es dividir ese problema en pequeños problemitas, actuamos sobre esos pequeños problemitas, obteniendo pequeñas soluciones, y luego agregamos esas pequeñas soluciones, obteniendo la solución global. En el ejemplo que vamos a poner, la idea es intentar contar el número de palabras. Imaginad que tenemos un conjunto de millones y millones y millones de palabras. Es muy costoso contar esas palabras. Pues el concepto de Map Reduce lo que nos va a ayudar es a contar esas palabras de una manera muy sencilla. Primero que todo, dividimos, dividimos por frases. ¿Por qué no? Por filas, vamos a dividir por filas. Vamos a contabilizar, vamos a hacer un map que lo que hace básicamente es preparar las palabras de manera individual y contabilizar esas palabras. Luego las organizamos. Esto no es necesario, organizarlas. Pero bueno, vamos a organizarlas. Vamos a agregar y vamos a juntar todas las palabras que son iguales. Y luego hacemos un reduce que lo que hace es sumar, en este caso. Agregamos una información y devolvemos la suma de todas las palabras. Y ahí un problema que es muy complejo, el simplificarlo lo máximo posible para obtener al final el resultado que queríamos en un tiempo razonable. ¿Por qué? Porque hemos divido el problema en pequeños subproblemas. Y esos problemas los hemos paralelizado, hemos contabilizado de manera paralela. Si bien unimos los conceptos que estamos hablando, sistemas distribuidos y Map Reduce, podemos empezar a intuir por dónde va el mundo de Big Data. A continuación, vamos a ver el concepto del CAP Theorem. EL CAP Theorem son tres conceptos en realidad que son muy relacionados a cualquier sistema distribuido y específicamente a las soluciones Big Data. El primer concepto de la C es consistencia. ¿Qué quiere decir esto? Bueno, pues está claro. Si yo accedo a un dato, y los datos son de una manera determinada, y vuelvo a acceder a ese dato, el dato debería de ser exactamente igual. Tenemos que cumplir la consistencia. Por otro lado, la accesibilidad, availability. Que básicamente lo que dice es, si yo quiero acceder al sistema para obtener un dato, el sistema tiene que responder. No puede ser que deje de funcionar. Eso es la accesibilidad, la disponibilidad. Y por último, Partition Tolerance, que básicamente es, independientemente del número de máquinas que tenga mi infraestructura Big Data, si yo pierdo uno de los nodos, si yo pierdo una de las máquinas, el sistema debería de funcionar. ¿Por qué debería de funcionar? Pues obviamente porque hemos replicado los datos, hemos replicado los procesos, hemos tenido eso en cuenta y, por lo tanto, no pasa nada por que se pierda un nodo, porque el sistema sigue funcionando con toda la información. La unión de esos tres conceptos es lo que se denomina una plataforma Big Data perfecta, con una accesibilidad del 100%. La realidad es que nunca un sistema de Big Data está accesible al 100%. Aunque nos vamos aproximando cada vez más, 99,999%. Vamos por el buen camino, aunque, claro, nunca es 100% perfecto. Y por último, uno de los conceptos clave son los datos. ¿Qué tipologías de datos hay? Pues los datos pueden venir de distintos tipos. Pueden venir de la base de datos, pueden venir de un sistema de ficheros, pueden venir de emails, pueden venir de websites, pueden venir de redes sociales, pueden venir de dispositivos o sensores IOT, pueden venir de cualquier sistema multimedia, cámaras de video, cualquier generador de video, audio, imagen. Todas esas fuentes son aptas para poder generar datos y poderse adaptar en nuestra plataforma Big Data. Y esos datos pueden ser de tipo estructurado, que significa que tiene una estructura fija con una serie de columnas que definen cada una de las características de nuestros datos. Pueden ser no estructurados, no está definida su estructura, como por ejemplo, las imágenes, los textos, los videos, que no está definida claramente su estructura. O puede ser una mezcla de ambas partes, estructurado, no estructurado, una mezcla conjunta es lo que se denomina semiestructurado. Prueba de ello son soluciones en las que tienes un conjunto de datos estructurado, como puede ser una tabla, y uno de los campos de esa estructura es un campo de texto libre. Eso define una inestructuración dentro de una estructura final de datos. Los datos se pueden generar de dos maneras, o bien you los tienes generados de antemano y esos datos simplemente puedes acceder cuando quieras, no se generan dinámicamente, sino que you están generados, a lo que eso se denomina batch. O los datos se generan dinámicamente en tiempo real, a eso se le denomina accesibilidad o generación de manera streaming. Y hasta aquí el resumen es las cantidades de conceptos básicos necesarios que necesitamos entender y conocer para podernos adentrar más aún en el mundo del Big Data. [MÚSICA]