Fundamentos de big data.

Miguel Alejandro Salgado Zapien

2021-05-04

Unidad 1 - Tema 2 - Fundamentos del Big Data

Big Data

Cuando hablamos de Big dta pensamos en conjuntos de datos que dificultan su captura, manejo o procesamiento debido a:

Y generalmente requiere de herramientas especializadas para trabajarla.

Datos Públicos, Privados, Privados y Abiertos

Sin Pensar en Computadoras

  • Es importante distinguir que no todos los datos son de uso libre.
  • Sin pensar en computadoras podemos pensar rápidamente en un ejemplo de dato privado como una formula secreta o investigación privada debido a el tener una patente
  • También sin pensar en computadoras podemos pensar en datos publicos, como información que pueda aparecer publicada por un gobierno, diarios impresos, o datos enciclopédicos,

Pensando en computadoras

  • Podemos pensar que los datos privados serán datos que no presentan ningún esquema legal para su uso fuera de los especificados por dado por el que los obtuvo.

  • También, la obtención ilegal de datos privados pudiera ser problemática y hay que cuidarnos de no infringir en ello.

  • Datos públicos serian datos públicamente disponibles para algún propósito.

  • Datos Abiertos/Libres, serian datos específicamente designados a ser públicos y de uso libre.

Publico no significa Libre,

Datos abiertos del ingles open data

Movimiento inspirado en el open source o código abierto, y el movimiento del free software o software libre.

Leer Mas

Datos estructurados y No estructurados

Datos estructurados

  • Son datos que cuentan con una estructura
  • La estructura sirve a su propósito de uso para los datos
  • Si la estructura es inadecuada para nuestros usos podemos decir que la informan viene semi estructurada posiblemente no estructurada.

  • La estructurada nos puede permite realizar consultas de maneras rápidas y directas
  • Ademas puede ayudarnos a procesar los datos de maneras mas claras
  • La información estructurada puede hacer énfasis en sus datos clave de maneras claro.

Datos no estructurados

Como dijimos anteriormente podemos acusar a un dato de no estar estructurado depende el uso que se le quiera dar, pero es importante saber que los datos generalmente tienen una estructura dada, por ejemplo:

  • Imágenes
  • Hojas de Calculo
  • PDF
  • Paginas Web
  • Correos electrónicos

Serian ejemplos de datos no estructurados debido a que a pesar de su estructura dado por el formato en el que se almacenan los datos dentro de ellos podemos tener datos que o información que carezca de estructura en su totalidad o sea difícil de procesar de manera directa, por eso los podemos concertar información no estructurada.

Datos almacenados y en Movimiento

Diagrama de datos para datos almacenados y en movimiento

La implementación de gráficos para expresar esquemas de almacenamiento de datos y flujo de datos es importante, y pesar de que existen técnicas formales para hacer esto, no existe un estándar o manera correcta de diseñar un gráfico para expresar esta información.

Vamos a realizar una serie de gráficos ejemplo utilizando un modulo de Python, llamado diagrams.

Para instalar el modulo hay que asegurarse de tener instalado GraphViz, pueden instalarlo directamente desde su fuente original, o utilizando el manejador de paquetes de su preferencia.

En el caso de Linux

  • Basados en Arch
pacman -Sy graphviz
  • Basados en Debian
apt install graphviz

En el caso de Windows

Se recomienda utilizar Chocolatey, un manejador de paquetes para la linea de comando.

choco install graphviz

O tambien pueden instalarlo desdes la fuente original Descarga

Ahora para instalar la dependencia de Python, hay que ejecutar la instalación por medio de pip

pip install diagrams

Ahora abrimos un archivo de Python con las siguientes lineas de código.

from sys import argv
from diagrams import Cluster, Diagram
from diagrams.onprem.analytics import Spark
from diagrams.onprem.compute import Server
from diagrams.onprem.database import PostgreSQL
from diagrams.onprem.inmemory import Redis
from diagrams.onprem.aggregator import Fluentd
from diagrams.onprem.monitoring import Grafana, Prometheus
from diagrams.onprem.network import Nginx
from diagrams.onprem.queue import Kafka

with Diagram("Advanced Web Service with On-Premise", show=False, filename=argv[0][:-3]):
    ingress = Nginx("ingress")
    metrics = Prometheus("metric")
    metrics << Grafana("monitoring")
    with Cluster("Service Cluster"):
        grpcsvc = [
            Server("grpc1"),
            Server("grpc2"),
            Server("grpc3")]
    with Cluster("Sessions HA"):
        master = Redis("session")
        master - Redis("replica") << metrics
        grpcsvc >> master
    with Cluster("Database HA"):
        master = PostgreSQL("users")
        master - PostgreSQL("slave") << metrics
        grpcsvc >> master
    aggregator = Fluentd("logging")
    aggregator >> Kafka("stream") >> Spark("analytics")
    ingress >> grpcsvc >> aggregator

Ahora ejecutamos el programa de Python en una terminal escribiendo

python <filename>.py

El programa nos producirá un archivo png en el mismo directorio donde corremos el programa, con el nombre <filename>. (Gracias al uso de sys.argv[0]).

Si tienes existo hasta aquí, por favor, explora la documentación

Echen un vistazo a los tipos de Nodos para las gráficas, así como a la definición de aristas (edges).

Explore de manera practica sobre este archivo, y cree su propio diagrama.

Actividad

Presentar 3 diagramas distintos y detallados junto con una explicación de que se supone que representa dicho diagrama.

Deberán presentar el código, la imagen y el párrafo descriptivo.

Método de entrega

Pendiente