big–data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de...

32
Big–Data Big–Data Buzzword o tecnología real ? Buzzword o tecnología real ? Por Javier Blanque, Prof. Adj. Sistemas Inteligentes

Upload: others

Post on 27-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

Big–DataBig–Data

Buzzword o tecnología real ?Buzzword o tecnología real ?

Por Javier Blanque, Prof. Adj.Sistemas Inteligentes

Page 2: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

2

Qué es Big-Data ?

● Big-Data:– Según las definiciones estándar, Big-Data es un campo de la ciencia/tecnología que se

focaliza en extraer sistemáticamente información de sets de datos, o de lidiar con ellos, para, de alguna manera, determinar patrones útiles de “aparición” de esos datos, con el objetivo de, en última instancia, predecir comportamientos

– Según estas definiciones, para entrar en la categoría de Big-Data, deben cumplirse ciertas pre-condiciones “fuertes”, como por ejemplo: Volumen, Variedad, Velocidad y Veracidad (las 4 V), sin embargo, cada una de éstas es muy relativa al tipo de algoritmos y tecnologías que pueden aplicarse en un momento en el tiempo, para decidir, si el volumen es suficiente o escaso, si la variedad es la requerida, si la velocidad es suficiente o demasiada, y si la veracidad es necesaria, o conveniente

– Hay otras pre-condiciones mas débiles, como exhaustividad, escalabilidad o valor, entre otras, pero siempre depende del color del cristal con que se mira

– Es un Buzz-Word que pone a las personas que lo mencionan en la “Cresta de la Ola” tecnológica y de los sistemas de información ? Bueno, sí; definitivamente, hasta que aparezca el siguiente buzz-word...

Page 3: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

3

Qué es Big ?

● Big:– No es que se trate de grandes datos, palabras escritas con tipos de letra grandes, sino de grandes cantidades de datos– Pero esto es muy relativo: Un blanco móvil que cada año cambia de objetivo, respecto de lo que es “grandes cantidades”– Ejemplo: Imágenes según definición, PAL-N, 720P, HD, 4K, 8K, con 24/30 imágenes/seg., en 24 bits de color y 8 de transparencia, pueden

ser procesadas actualmente por una PC de hoy con una buena placa gráfica– Pero Cámaras ultra-rápidas de 1 millón de imágenes/seg (aún imágenes en escala de grises o B/N) pueden ser tratadas dependiendo de

la potencia computacional, en tiempo real o en diferido, o ser intratables con la tecnología actual de acuerdo a la resolución de que se trate; y aún en diferido pueden ser intratables dependiendo de la duración del video, ya que el almacenamiento puede no alcanzar

– Lo mas importante es la utilización de criterios que hacen manejables estos datos sin olvidar cual es el objetivo del análisis de dichos datos: Obtener “tips” para la predicción de comportamientos o prever la aparición de “eventos”

– Por ejemplo: Cuando una cámara de seguridad debe usarse para grabar video, y este video ocupa un espacio determinado a 30 fps (cuadros por segundo), si el objetivo de la vigilancia puede alcanzarse grabando a 10 fps, se ocupará un tercio de espacio de almacenamiento y/o transferencia, y esto puede implicar que un proyecto sea viable, o no. Ya que si digamos, un banco tiene mil cajeros con cámaras de seguridad, que envían 1 MB/seg c/u, en lugar de guardarlo localmente, digamos, para tener una vigilancia y administración centralizada y en tiempo real, el costo del proyecto puede irse a la estratósfera debido a los costos de la red WAN, y hacerse inviable

– De la misma forma, si uno quiere realizar un análisis de los eventos de un único servidor, con servicios web, de bases de datos, aplicativos, de sistemas operativos y de seguridad, va a tener volúmenes de datos órdenes de magnitud menores que si se maneja con cientos o miles de máquinas virtuales y servidores, y en ese caso, el análisis de los eventos se vuelve mas complejo debido al tratamiento de la cantidad de GB que llegan cada segundo. Un humano no podrá hacerlo en tiempo real, y tampoco en diferido, por mas tiempo que se le brinde. En ese caso, un análisis automatizado de los logs de eventos, se hace obligatorio; que detecte eventos similares y no relevantes y los elimine del “flujo” o “stream” de eventos antes de informarlos, y que sólo informe las “anomalías”

Page 4: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

4

Qué es Data ?

● Data:– El dato es la mínima unidad de información que puede ser útil para obtener conocimiento sobre algo– Claves: Información y Conocimiento– Los datos pueden tener una forma estructurada, no estructurada (variedad de formatos y contenidos sin predictibilidad), por ejemplo,

diálogos coloquiales, o semi-estructurada (estructuras de datos reconocibles en un océano de datos no estructurados)– Y todo depende del nivel de análisis: un flujo o stream puede parecer entrópico (entropía asimilable a ruido) y en realidad es información

encriptada a los ojos de alguien que tiene la información de descifrado que nosotros no tenemos– Los datos se clasifican por sus tipos y pueden ser elementales, por caso, strings o cadenas de caracteres, palabras, letras, números, que a su

vez pueden ser naturales, enteros, racionales, y datos mas complejos, como direcciones de IP, códigos postales, coordenadas geográficas, números complejos, cuaternios, sonidos, imágenes, videos, y otros

– De la exactitud y limpieza de los datos, depende en gran parte la capacidad de éstos de ser útiles, y esto se puede reflejar en el dicho llamado GIGO: “garbage IN, garbage OUT” (basura entra, basura sale)

– Es por esto que una parte extremadamente crítica del tratamiento de los datos son las llamadas técnicas de ETL (Extract, Transform, Load) que se dedican al tratamiento y mejora en la calidad de los datos antes de su ingreso en los sistemas de información, a través de múltiples mecanismos y técnicas, y que generalmente pasa por comparar los datos con información obtenida de otros contextos y que sabemos válida (por ejemplo, verificar los códigos postales contra una base de códigos postales estándar y cambiar los que son similares a los válidos pero erróneos, por los válidos)

– A su vez los datos pueden tratarse de forma OLTP (On-Line Transaction Processing) u OLAP (On-Line Analytical Processing), tendiendo el primero a realizar gran cantidad de operaciones atómicas y/o pequeñas; y el segundo, a operaciones masivas, que llevan a la interacción y búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas en tiempo real; este procesamiento analítico es el mas usado para el tratamiento de Big-Data estructurado o semi-estructurado, se conforma en data-lakes o data-warehouses y tiene un conjunto de herramientas útiles, tanto propietarias como open source, algunas de las cuales se detallarán mas adelante

Page 5: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

5

Qué es Información ?

● Información:– Información es el acto de interpretación de un conjunto de datos, de darle significado a una secuencia de señales externas o

símbolos, con vistas a obtener conocimiento sobre ellas y a tomar determinadas acciones– Los datos pueden estar codificados y la interpretación de los mismos llevar a quien la realiza a obtener información de los mismos,

y a través de procesos relacionales, deductivos, inductivos, de análisis de patrones, y/o aplicando algoritmos, a obtener conocimiento desde la información

– Los datos, que serán señales o símbolos, pueden tener una lexicalidad, una sintaxis definida, y una semántica, que brindará indicios sobre la información contenida en ellos

– A su vez pueden éstos ser dependientes o independientes del contexto en el cual son “streamed”, “fluyen” o son obtenidos, y ello hará que su tratamiento y “decodificación” sea mas simple o mas compleja, hasta un nivel que permita o no su “tratabilidad” en bruto, o haya que disminuir su volumen o dimensionalidad

– La información puede tener muchas dimensiones y una “lectura superficial” de los datos, puede brindar cierta información, y lecturas mas profundas, pueden mejorar dicha información o contradecirla completamente

– Esto significa que la información obtenida a partir de los datos puede cambiar en la medida en que se relaciona con otros datos, y con otra información, de forma que el contexto puede cambiar el significado, y que muchas veces el análisis de los mismos genera efectos colaterales o secundarios que producen información errónea, o que corrigen información defectuosa

– Por ejemplo, muchas veces el analizar los datos, modifica los datos y hace concluir conocimientos erróneos– De hecho, el intento por descubrir información oculta en el océano de datos es lo que hace que el Big-Data haya explotado como

conjunto de técnicas, y que la esteganografía (técnicas que permiten ocultar mensajes u objetos, dentro de otros, llamados portadores, para ser enviados y de modo que no se perciba el mensaje oculto) sea perenne a lo largo de la historia de la civilización y sus guerras y “cambios de régimen”, y que haya sido casi tan usada para el envío de mensajes secretos como la criptografía

Page 6: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

6

Qué es Conocimiento ?

● Conocimiento:– Conocimiento es el proceso a través del cual los seres inteligentes, sean éstos naturales o artificiales, alcanzan la comprensión de un concepto.

Se hace en base a aproximaciones varias, como el aprendizaje, la observación, la percepción, la experiencia y el descubrimiento, y hay dos caminos básicos para esto

● El Enfoque Bottom-Up: En este proceso, que tiene tres niveles de profundidad, se trata de responder el Nivel (1) a la pregunta básica Qué (Qué es, de qué se trata, la composición superficial o inicial del objeto o concepto analizado). En el Nivel (2) a las preguntas básicas de Cómo, Quién, Cuándo, Dónde (se observan las relaciones de lugar y de tiempo, y los procesos internos y el comportamiento del objeto o concepto analizado). Y en el Nivel (3), el Porqué, y Para qué (es decir las relaciones de modificación de doble vía del objeto o concepto con su medioambiente o contexto y viceversa)

● El Enfoque Top-Down: A veces, cuando los niveles de conocimiento iniciales no son claros y la aproximación es difusa, se opta por tratar de entender el concepto desde su contexto o ambiente, yendo desde lo externo hacia lo interno, de esta forma, se procede luego a identificar los mecanismos internos y los procesos de comportamiento directos del objeto o concepto, momento en el cual se puede cambiar el enfoque por el de Botton-Up

– Generalmente la relación es Dato → Información → Conocimiento, de esta manera es que los niveles de abstracción permiten lidiar con los ambientes complejos y cambiantes que se presentan a los seres inteligentes

– Y para la elicitación del conocimiento, se intenta conocer el Qué, el Cómo, el Quién, el Cuándo, el Dónde, y finalmente el Porqué, o Para qué de lo observado; en la medida en que se va contestando cada pregunta, el conocimiento sobre el objeto o concepto se hace mas profundo

– En los mecanismos de aprendizaje, es útil entender detalladamente cual es la mejor metodología de extracción de conocimiento desde los datos, y básicamente explicarla, lo mas claramente posible, especialmente con ejemplos, y permitirles re-crear el conocimiento a partir de la visión del mundo de los propios aprendices, en todos los niveles, desde el pre-escolar, hasta el post-universitario, especialmente en las ramas de la investigación, la ciencia y la tecnología

– Por eso quien mejor enseña, es quién habla con el lenguaje de la materia que enseña, pero con el lenguaje de quienes escuchan, y que pone en manos de los que aprenden, las herramientas para recrear lo que necesitan aprender; y esto es válido tanto para seres inteligentes naturales (i.e.: humanos) como para seres inteligentes artificiales

– El conocimiento es una herramienta que permite sobrevivir (quizás la principal), y por esto las sociedades del conocimiento son las que mas probablemente sobrevivan a los grandes retos que nos depara el futuro. Conocimiento → Supervivencia !

Page 7: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

7

Qué es Inteligencia ?

● Inteligencia:– Según Wikipedia la inteligencia se ha definido de muchas maneras, incluyendo: la capacidad de lógica, comprensión, autoconciencia, aprendizaje,

conocimiento emocional, razonamiento, planificación, creatividad, pensamiento crítico y resolución de problemas. En términos más generales, se puede describir como la capacidad de percibir o inferir información, y retenerla como conocimiento para aplicarlo a comportamientos adaptativos dentro de un entorno o contexto, especialmente uno distinto del original

– Podemos decir que es la capacidad de reconocer patrones y realizar analogías respecto de eventos que suceden en distintos entornos o ambientes, y de aplicar soluciones semejantes a problemas de distinta índole pero que son conceptualmente similares, lo que implica que para que haya inteligencia debe existir la capacidad de abstracción y de formular escenarios hipotéticos cambiando unos conceptos por otros similares en ambientes o contextos distintos

– El poder aplicar una solución exitosa en un entorno, a otro completamente distinto, de forma exitosa, muestra que esa inteligencia logró abstraer lo relevante de la sucesión de patrones detectados y predijo que la solución elegida sería la mas conveniente para la resolución del problema dado en el nuevo contexto

– Es probable que uno pueda medir el grado de inteligencia de un sistema inteligente, observando su capacidad de inferir y/o deducir soluciones a problemas con información incompleta y que a mayor cantidad de datos, información y conocimiento requiera para resolver un problema, el sistema sea menos inteligente, y que a menor cantidad de datos, información y conocimiento requiera un sistema para resolver un problema, el sistema, inversamente, sea mas inteligente: Y esto puede mostrarse con un ejemplo, en la medida en que un ser vivo tiene mas y mejores sentidos, o que un sistema inteligente, tiene acceso a una mayor cantidad de dimensiones de información, no es requerida tanta “inteIigencia” para resolver un problema. Un problema grave para un ciego se vuelve trivial para quién puede ver, pero cuando está oscuro, es quién usa lentes infrarrojos, el que tiene la ventaja al agregar una dimensión de conocimiento. El ciego sigue en desventaja, pero aún así esta en una mejor posición que quien tiene vista, ya que probablemente tenga un oído mas agudo y sepa analizar mejor las señales de esa dimensión

– El cambio en el ambiente por una simple condición (luz/oscuridad) cambia radicalmente el contexto y permite ventajas comparativas para el que puede aprovecharlas a través de conocimiento no disponible a otros (otra dimensión), o a una mejor interpretación de los datos existentes y accesibles a otros (una mejor lectura de las dimensiones “públicas”)

– Inteligencia es LA herramienta en la lucha por la supervivencia, es lo que convirtió a la humanidad en la especie dominante (por ahora) en este pequeño planeta

Page 8: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

8

Qué es Conciencia ?

● Conciencia:– Según Wikipedia, la conciencia se define en términos generales, como el conocimiento que un ser tiene de sí mismo y de su entorno. El

poder mirarse a uno mismo desde afuera y observar el entorno con uno mismo incluido como objeto de estudio y como parte del contexto

– La capacidad de lograr introspección y de reflexionar sobre uno mismo en escenarios hipotéticos– Existe debate aún hoy sobre qué es exactamente la conciencia. En el área de la inteligencia artificial se ha trabajado la idea de crear

máquinas o programas suficientemente complejos como para dar lugar a una conciencia artificial, pero algunos han negado la posibilidad de que una computadora pueda dar lugar a algo genuinamente indistinguible de una conciencia, o que pueda llegarse a una “masa crítica” de complejidad donde la conciencia se auto-genere y aparezca

– La prueba de Turing (test de Turing), propuesta en 1950, aborda ese problema, y hasta la actualidad (2019) ningún programador ha conseguido con éxito superar satisfactoriamente esta prueba (si bien un bot conversacional bautizado como Eugene Goostman, de 2014, logró engañar gran parte de un jurado de humanos que fueron usados para dicha prueba). Sin embargo, el objetivo de dicho examen no es que un programa tenga conciencia, sino que nos haga creer que la tiene, y siempre hace depender su éxito de la inteligencia de quienes juzgan si una IA demuestra tener una conciencia o no

– En Inteligencia Artificial se considera que no habrá una IA realmente inteligente hasta que sea capaz de adquirir una conciencia de sí misma, pero por otra parte, es poco probable que pueda adquirirla si no se le incluye un sistema de valores que implique la necesidad de supervivencia, ya que el principal motivo para la obtención de conocimiento y para la curiosidad de resolver problemas está en la necesidad de sobrevivir. Es poco probable que esto se logre si el sistema de valores a incluir en la IA, no incluye también, un sistema que emule los sentidos de los seres inteligentes naturales y los principios de finitud / miedo a la muerte o desaparición, y de dolor y placer

– Todo apunta a lograr la supervivencia: la conciencia nos permite insertarnos en escenarios futuros, analizar alternativas, hacer planes, decidir cuales son los mejores, y como dicen, siempre hay que tener un buen plan

– (*) IA → Inteligencia Artificial

Page 9: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

9

Herramientas para técnicas de Big-Data

● Sistemas Operativos– Servidor: Linux (96%) → Implementados como un conjunto de múltiples máquinas en clusters de servidores físicos, de máquinas virtuales

basadas en VMWare, KVM o Proxmox, de contenedores basados en OpenStack, Docker, Kubernetes, etc– Cliente: Windows (80%), MacOSX (15%), Linux (5%), básicamente usadas como herramientas de management de clusters y visualización– El 96% de los súper-computadores del top500 ; de los computadores con mayor capacidad de cómputo del mundo, utiliza Linux como sistema

operativo● Lenguajes de Programación

– Existen múltiples lenguajes que permiten el procesamiento masivo de datos, y para ello, es conveniente que hayan implementado mecanismos de paralelización, que deberían ser parte de su centralidad de procesamiento

– Lenguajes como C/C++/C#, Python/Lua, Java/ECMAScript/JavaScript, y aún lenguajes con 60 años de edad, como COBOL, se usan para Big-Data– Sin embargo algunos lenguajes se usan casi exclusivamente en Big-Data, como por ejemplo, R y Scala– Es altamente conveniente para estos lenguajes soportar múltiples procesos concurrentes y paralelización a través de hilos (threads), es decir,

que deberían permitir multi-threading y multi-processing– Una de las técnicas mas usadas para la construcción de programas masivamente paralelos es MPI (Message Passing Interface)

● Sistemas de Manejo de Bases de Datos relacionales, SQL y no-SQL– Open source como MySQL, MariaDB y PostgreSQL– Privativas como Oracle, MS SQL Server y SAP Adaptive Server Enterprise (ASE)– No-SQL como MongoDB, Cassandra, Hbase, OrientDB, Neo4J– Muchos de los sistemas de manejo de bases de datos mencionados pueden usarse de forma distribuida, es decir, en múltiples servidores,

instancias, contenedores, o compartiendo un único esquema (o imagen) de Base de Datos

Page 10: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

10

Herramientas para técnicas de Big-Data(Sigue)

● Aplicaciones para el procesamiento masivo de flujos no estructurados– Existen aplicaciones que son especialmente útiles en el procesamiento de Big-Data no estructurado, como

Hadoop, Spark, MapReduce, Elasticsearch, Logstash, Filebeat, Sphinx● Aplicaciones para la integración y visualización

– A su vez es útil disponer de herramientas de visualización para el caso de tener que mostrar los resultados de los sistemas mencionados en el punto anterior, y algunos de ellos son, por ejemplo, Grafana y Kibana

– Pero además hay aplicaciones propietarias, como Tableau y Qlik que permiten poner en unos pocos gráficos, tableros de control completos y son herramientas de consolidación de información de fácil uso y aprendizaje

– La mayoría de las aplicaciones orientadas al desarrollo de data-warehouses y data-lakes, como Teradata, SAP/HANA, IBM-DataStage, MS SQL Server Integration Services, Oracle y MicroStrategy, pueden ser usadas para “minar” los datos (data-mining) y extraer información oculta en ellos aunque sean de distintas fuentes u orígenes

● Aplicaciones para ETL (Extract Transform Load)– Existen herramientas de ETL propietarias y open source, algunas de estas últimas son: Talend Data Integrator,

Jaspersoft ETL, Pentaho Data Integrator– También pueden usarse scripts de la línea de comandos de Linux, y de esta manera integrar comandos varios en

sencillos scripts de shell, utilizando las herramientas nativas de Linux, como sort, cut, sed, gawk, head, tail, etc.

Page 11: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

11

Herramientas para técnicas de Big-Data(Sigue)

● Data-Mining– La minería de datos es el proceso de descubrir patrones en grandes conjuntos de datos que involucran métodos en la intersección de

aprendizaje automático, estadísticas y sistemas de bases de datos– Es un sub-campo interdisciplinario de informática y estadística con el objetivo general de extraer información (con métodos

inteligentes) de un conjunto de datos y transformar la información en una estructura comprensible para su uso posterior– Es el paso de análisis del proceso de "descubrimiento de conocimiento en bases de datos" o KDD (Knowledge Data Discovery)– Además del paso de análisis sin procesar, también involucra aspectos de gestión de bases de datos y datos, procesamiento previo de

datos, consideraciones de modelo e inferencia, métricas de interés, consideraciones de complejidad, procesamiento posterior de estructuras descubiertas, visualización y actualización en línea

● Sistemas de Archivos Distribuidos– Cuando se utilizan clusters o grupos de servidores, sean estos físicos o virtuales, o contenedores, muchas veces es necesario

compartir archivos y para esto hay dos maneras principales, una es tener un gran servidor de archivos, un SAN (Storage Area Network) o NAS (Network Attached Storage), generalmente vía iSCSI o como shared resources, pero estos recursos tienen sus límites

– Para evitar estos límites artificiales y con el objetivo de tener agrupaciones (clusters) con cada vez mayor cantidad de servidores, e ir hacia sistemas hiperconvergentes, donde cada servidor commodity pueda hacer cualquier tarea; se necesitan sistemas de archivos distribuidos como CEPH, GlusterFS, Lustre, o HDFS (Hadoop Distributed File System), donde el repositorio de archivos pueda ser visto o modificado, sea común a todos los servidores del cluster y tenga características de robustez como alta disponibilidad, redundancia, compresión, encripción, des-duplicación, etc.

– Existen sistemas de archivos que si bien no son distribuidos, tienen muchas de sus características y permiten de todas formas el acceso compartido a sus recursos cuando el cluster no es demasiado grande, como SMB/CIFS con NTFS u otro, XFS, JFS, ZFS (Zettabyte File System) y su uso es mas común

Page 12: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

12

Herramientas para técnicas de Big-Data(Sigue)

● Frameworks para Machine Learning– Knime

● Puede ser considerada como una solución clásica para tareas de Machine Learning● Este framework permite implementar un ciclo completo de análisis de datos que incluye obtener los datos de

múltiples fuentes, convertir y filtrar, analizar, visualizar y exportar– Shogun / Mlpack

● Shogun fue creado en 1999 y escrito en C++, pero puede ser usado en conjunto con otros lenguajes como Java, Python, C #, Ruby, R, Lua, Octave, y Matlab

● Tiene un competidor: Otra librería para machine learning, escrito en C++, Mlpack, ha sido usado solo desde 2011, pero es mas rápido y fácil trabajar con él, gracias a su juego integrado de APIs

● Esta/s herramientas están diseñadas para aprendizaje en gran escala y se focalizan especialmente en kernel machines (Máquinas núcleo) como máquinas de vectores soporte (support vector machines) para problemas de clasificación y regresión

– Scikit-learn● Python se ha convertido en un lenguaje popular en matemática y estadística debido al hecho de que es fácil de

usar y que dispone del mas amplio juego de librerías que cualquier aplicación pudiera necesitar. Scikit extrae el jugo de estas capacidades y características, extendiendo e integrando los paquetes estándar de Python: NumPy, SciPy, y Matplotlib , haciendo el trabajo mas sencillo para matemáticos y estadísticos

Page 13: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

13

Herramientas para técnicas de Big-Data(Sigue)

● Frameworks para Deep Learning– Tensorflow de Google

● El mas popular framework para Deep Learning en la actualidad● Gmail, Uber, Airbnb, Nvidia y montones de empresas de primer nivel lo usan

– PyTorch● Es la herramienta mas popular para Deep Learning después de Tensorflow● El framework PyTorch fue desarrollado por Facebook pero ahora es usado por compañías como Ali

Baba, Udacity, Stanford University y Salesforce● Fue realizado a partir del Torch, que había sido desarrollado con el lenguaje de programación LUA, no

tan popular como Python, por eso desarrolladores de Python lo adaptaron y crearon PyTorch– Keras

● Keras es un framework de Machine Learning que puede ser la solución ideal si se dispone de muchos datos y/o se busca el “estado del arte” en Inteligencia Artificial: Deep Learning

● Además es la aproximación mas minimalista al uso de TensorFlow, Theano, o CNTK, ya que Keras tiene un shell de nivel mas alto (mas expresivo, menos necesidad de programación por parte del usuario)

Page 14: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

14

Herramientas para técnicas de Big-Data(Sigue)

● Frameworks para Deep Learning (Continua)– Caffe

● Caffe es conocido por permitir hacer aplicaciones que utilizan redes neuronales de pensamiento profundo sin necesidad de escribir ningún código o tener experiencia en codificación; también soporta entrenamiento para configuraciones multi-GPU (múltiples Placas Gráficas en una estación de trabajo)

– Theano● Theano es una librería Python específicamente diseñada para deep learning. Ayuda al usuario a definir y

evaluar expresiones matemáticas, incluyendo vectores multi-dimensionales. Theano incluye integración con NumPy, y generación de código C/C++ de forma dinámica. Theano puede también ser usado con otras librerías como Keras y Blocks; y soporta múltiples plataformas como Windows, Mac OS X y Linux

– MXNet● Apache MXNet es un framework de aprendizaje profundo de código abierto, utilizado para entrenar e

implementar redes neuronales profundas. Es escalable, lo que permite un entrenamiento rápido del modelo y admite un modelo de programación flexible y múltiples lenguajes de programación

● Fue desarrollado originalmente por Amazon, pero es usado ampliamente en la actualidad por importantes organizaciones como Intel, Baidu, Microsoft, Wolfram Research, e institutos de investigación como Carnegie Mellon, MIT y varias otras Universidades

Page 15: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

15

Benchmarks y Estándares para Big-Data

● TPC.ORG– Es importante poder evaluar las herramientas con las que uno cuenta a la hora de

establecer la viabilidad de un proyecto a nivel costo/performance y para ello, no hay mejor lugar, para el caso de Big-Data, que TPC.ORG (El web site del Transaction Processing Council)

– Allí se encuentran un conjunto de recursos que incluyen especificaciones a nivel de hardware y software, incluyendo costos detallados por parte de los fabricantes, y la posibilidad de acudir al TPC en caso de que alguno de los fabricantes de hardware o de software no respete los precios indicados a nivel global en sus benchmarks

– También es un lugar importante para consultar en caso de tener necesidad de realizar la planificación de crecimiento de capacidades tecnológicas (algo muy normal en organizaciones que utilizan planes tácticos y estratégicos de Tecnología, Sistemas de Información y Seguridad Informática en sus áreas de tecnología), ya que permite estimar de manera muy detallada, los tamaños, las cargas, y los costos involucrados, desde una perspectiva global, y sus estándares son respetados en las cuatro esquinas del globo

Page 16: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

16

Benchmarks y Estándares para Big-Data

● OLTP → TPC-C– TPC-C es un Benchmark de procesamiento de transacciones en línea

● Aprobado en julio de 1992, TPC-C es más complejo que los benchmarks OLTP anteriores, como TPC-A, debido a sus múltiples tipos de transacciones, base de datos más compleja y estructura de ejecución general

● TPC-C implica una combinación de cinco transacciones concurrentes de diferentes tipos y complejidad, ya sea ejecutadas en línea o en cola para ejecución diferida

● La base de datos se compone de nueve tipos de tablas con una amplia gama de registros y tamaños de población

● TPC-C se mide en transacciones por minuto (tpmC)● Si bien el Benchmark retrata la actividad de un proveedor mayorista, TPC-C no se

limita a la actividad de un segmento comercial en particular, sino que representa a cualquier industria que debe administrar, vender o distribuir un producto o servicio a nivel masivo

Page 17: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

17

Benchmarks y Estándares para Big-Data: OLTP → TPC-C

Page 18: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

18

Benchmarks y Estándares para Big-Data

● OLTP → TPC-E– TPC-E es un Benchmark de procesamiento de transacciones en línea

● TPC-E es un Benchmark de procesamiento de transacciones en línea● Aprobado en febrero de 2007, TPC-E es más complejo que los benchmarks OLTP anteriores

como TPC-C, debido a sus diversos tipos de transacciones, base de datos más compleja y estructura de ejecución general

● TPC-E involucra una combinación de doce transacciones concurrentes de diferentes tipos y complejidad, ejecutadas en línea o activadas por criterios de precio o tiempo

● La base de datos se compone de treinta y tres tablas con una amplia gama de columnas, cardinalidad y propiedades de escala

● TPC-E se mide en transacciones por segundo (tpsE)● Si bien el índice de referencia retrata la actividad de una empresa de corretaje bursátil,

TPC-E no se limita a la actividad de cualquier segmento comercial en particular, sino que representa a cualquier industria que debe informar y ejecutar transacciones de naturaleza financiera a nivel masivo

Page 19: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

19

Benchmarks y Estándares para Big-Data: OLTP → TPC-E

Page 20: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

20

Benchmarks y Estándares para Big-Data

● OLAP → TPC-DS– OLAP es On-Line Analytical Processing (Procesamiento Analítico On-Line), típicamente Big-

Data y donde se realiza un uso intensivo de queries que acceden a grandes partes de la bases de datos

– TPC-DS2 es un Benchmark de Soporte de Decisiones ( Decision Support ) versión 2● El TPC-DS es un benchmark de soporte de decisiones que modela varios aspectos generalmente

aplicables de un sistema de soporte de decisiones, incluidas consultas y mantenimiento de datos● El benchmark proporciona una evaluación representativa del desempeño como un sistema de soporte

de decisiones de propósito general● Un resultado del benchmark mide el tiempo de respuesta de la consulta en modo de usuario único, el

rendimiento de la consulta en modo multiusuario y el rendimiento de mantenimiento de datos para un hardware determinado, sistema operativo y configuración de sistema de procesamiento de datos bajo una carga de trabajo de soporte de decisión controlada, compleja y multiusuario

● El objetivo de los benchmark de TPC es proporcionar datos de rendimiento relevantes y objetivos a los usuarios de la industria

● La versión 2 de TPC-DS permite que las tecnologías emergentes, como los sistemas de Big Data, ejecuten el benchmark

Page 21: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

21

Benchmarks y Estándares para Big-Data: OLAP → TPC-DS

Page 22: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

22

Benchmarks y Estándares para Big-Data

● HADOOP/SPARK → TPCx-HS– TPCx-HS es un Benchmark del sistema de Big Data– El ecosistema de Hadoop se está moviendo rápidamente más allá del

procesamiento por lotes con MapReduce– Presentado en 2016, TPCx-HS V2 se basa en TPCx-HS V1 (no son compatibles ambas

versiones) con soporte para Apache Spark, una plataforma popular para el procesamiento de datos en memoria que permite el análisis en tiempo real en Apache Hadoop

– TPCx-HS V2 también es compatible con MapReduce (MR2) y admite publicaciones sobre implementaciones locales tradicionales y de nube (cloud)

– El Benchmark TPCx-HS v2 se puede utilizar para evaluar una amplia gama de topologías de sistemas y metodologías de implementación de una manera técnicamente rigurosa y directamente comparable, de manera neutral para el proveedor

Page 23: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

23

Benchmarks y Estándares para Big-Data: HADOOP/SPARK → TPCx-HS

Page 24: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

24

Benchmarks y Estándares para Big-Data

● HADOOP/SPARK → TPCx-BB– TPCx-BB es un Benchmark de Big Data– TPCx-BB TPCx-BB mide el rendimiento de los sistemas de sistemas Big Data

basados en Hadoop– Mide el rendimiento de los componentes de hardware y software mediante la

ejecución de 30 consultas analíticas realizadas con frecuencia en el contexto de los minoristas con presencia física y en la tienda en línea

– Las consultas se expresan en SQL para datos estructurados y en algoritmos de aprendizaje automático para datos semi-estructurados y no estructurados

– Las consultas SQL pueden usar Hive o Spark, mientras que los algoritmos de aprendizaje automático usan bibliotecas de aprendizaje automático, funciones definidas por el usuario y programas procedurales

Page 25: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

25

Benchmarks y Estándares para Big-Data: HADOOP/SPARK → TPCx-BB

Page 26: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

26

Benchmarks y Estándares para Big-Data

● Virtualización → TPCx-V– TPCx-V es un Benchmark de virtualización para cargas de trabajo de bases de datos– El Benchmark TPCx-V mide el rendimiento de una plataforma de servidor virtualizada bajo una carga de

trabajo de base de datos exigente– Hace hincapié en el hardware de CPU y memoria, almacenamiento, redes, hipervisor (OS Host) y el

sistema operativo invitado (OS Guest)– La carga de trabajo de TPCx-V se centra en la base de datos y modela muchas propiedades de los

servicios en la nube, como múltiples máquinas virtuales que se ejecutan a diferentes niveles de demanda de carga y grandes fluctuaciones en el nivel de carga de cada máquina virtual

– A diferencia de los Benchmarks anteriores de TPC, TPCx-V tiene un kit de evaluación comparativa de extremo a extremo disponible públicamente, que fue desarrollado específicamente para este Benchmark

– Carga las bases de datos, ejecuta el Benchmark, valida los resultados e incluso realiza muchos de los pasos de auditoría de rutina

– Otra característica única de TPCx-V es una carga de trabajo elástica que varía la carga entregada a cada una de las máquinas virtuales hasta 16 veces, mientras mantiene una carga constante en el nivel del host

Page 27: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

27

Benchmarks y Estándares para Big-Data: Virtualización → TPCx-V

Page 28: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

28

Benchmarks y Estándares para Big-Data: Virtualización → TPCx-V

Page 29: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

29

Benchmarks y Estándares para Big-Data

● Internet Of Things (IOT) → TPCx-IoT– IoT es internet de las cosas (Internet of Things, abreviado IoT). Es un concepto que se refiere a una interconexión

digital de objetos cotidianos con internet. Es, en definitiva, la conexión de internet más con (y entre) objetos que con (y entre) personas. También se suele conocer como internet de todas las cosas o internet en las cosas. Si los objetos de la vida cotidiana tuvieran incorporadas etiquetas de radio, podrían ser identificados y gestionados por otros equipos de la misma manera que si lo fuesen por seres humanos

– TPCx-IoT, es el primer Benchmark de la industria que permite la comparación directa de diferentes soluciones de software y hardware para Gateways de IoT

– Ubicados entre la arquitectura de borde y el centro de datos back-end, los sistemas Gateway realizan funciones como la agregación de datos, análisis en tiempo real y almacenamiento persistente

– TPCx-IoT fue diseñado específicamente para proporcionar métricas verificables de rendimiento, precio-rendimiento y disponibilidad para sistemas existentes comercialmente que típicamente ingieren cantidades masivas de datos de grandes cantidades de dispositivos, mientras ejecutan consultas analíticas en tiempo real

– La carga de trabajo es representativa de las actividades típicas en los sistemas Gateways de IoT, que se ejecutan en plataformas de hardware y software disponibles comercialmente

– El TPCx-IoT se puede utilizar para evaluar una amplia gama de topologías de sistemas y metodologías de implementación de una manera técnicamente rigurosa y directamente comparable, de manera neutral con el proveedor

Page 30: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

30

Benchmarks y Estándares para Big-Data: Internet Of Things (IOT) → TPCx-IoT

Page 31: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

31

Conclusiones

● Big-Data– Buzz-Word? Seee– Aplicable a casi todo lo que tiene grandes cantidades de datos? Sep– Está de onda? Si señor– Pero, ante toda esa alharaca: Es útil?– Gracias a los conceptos y elementos del Big-Data se realizaron avances significativos en Hardware, Software, Inteligencia Artificial, Bases

de Datos, Sistemas Operativos, Sistemas de Archivos; y la nube (el tan mentado Cloud Computing) es un derivado directo del Big-Data– Empresas como Amazon, que comenzaron como vendedores on-line, crecieron tanto, tan rápido, y fue porque comenzaron a analizar la

historia y el comportamiento de los clientes y potenciales compradores, esto hizo que sus datacenter fueran cada vez mas grandes y complejos, hasta que “vieron la luz” y comenzaron a ofrecer sus servicios a terceros, y la “nube” apareció

– Google con GCP, Microsoft con Azure, Amazon con AWS, Ali Baba con su Cloud, Tencent con el suyo, y mas tarde IBM y Oracle con los suyos, hicieron “la nube” y son el corazón de la “movida” del Big-Data

– Sin el Big-Data, las empresas tecnológicas trasnacionales como Amazon, Google, Microsoft, Twitter, Facebook … Y ahora las orientales AliBaba (Ali Express), Tencent (WeChat), ByteDance (TikTok), no hubieran podido conocer tanto sobre nuestros gustos y secretos, y por supuesto, Internet, la nube, y los servicios móviles, no hubieran crecido como lo hicieron, haciendo que estas organizaciones tengan ingresos anuales mas grandes que la mayoría de los países, y haciendo que gastemos mas de la cuenta en juguetes tecnológicos que no siempre necesitamos

– Y eso es peligroso para la libertad y la democracia– Big-Data es una espada de doble filo, como la Inteligencia Artificial: Por un lado, nos permite avanzar a pasos agigantados en el

conocimiento científico y tecnológico, pero por otro lado, puede convertirnos en esclavos y ayudar al actual “Gran Hermano”, el gemelo de Orwell, desplazado en el tiempo desde 1984, y lo que es peor (que no nos demos cuenta de que somos esclavos)

Page 32: Big–Data · búsqueda de relaciones entre grandes cantidades de datos en operaciones de consolidación de información, consulta y reporte, y que no siempre pueden ser realizadas

32

Recursos & Links

● https://en.wikipedia.org/wiki/Big-data● https://www.kdnuggets.com/2019/10/data-scientist-data-management.html● https://towardsdatascience.com/everything-a-data-scientist-should-know-about-data-management-6877788c6a42● https://en.wikipedia.org/wiki/Extract,_transform,_load● https://www.mongodb.com/es● http://cassandra.apache.org/● https://hbase.apache.org/● https://neo4j.com/● https://couchdb.apache.org/● https://orientdb.com/● https://code.google.com/archive/p/terrastore/● https://en.wikipedia.org/wiki/FlockDB● https://en.wikipedia.org/wiki/Hibari_(database)● https://en.wikipedia.org/wiki/Hypertable● https://en.wikipedia.org/wiki/Blazegraph● https://es.wikipedia.org/wiki/Apache_Hive● https://en.wikipedia.org/wiki/Redis● https://hadoop.apache.org/● https://spark.apache.org/● https://en.wikipedia.org/wiki/MapReduce● https://en.wikipedia.org/wiki/Elasticsearch● https://www.elastic.co/es/products/kibana● https://en.wikipedia.org/wiki/Apache_Lucene● https://en.wikipedia.org/wiki/Sphinx_(search_engine)● https://es.wikipedia.org/wiki/Logstash● https://www.elastic.co/products/beats/filebeat● https://grafana.com/● https://www.gnu.org/software/gawk/● http://www.tpc.org/● https://en.wikipedia.org/wiki/Message_Passing_Interface● https://en.wikipedia.org/wiki/Data_mining