BIG DATA: poder entender, procesar y aprovechar toda esa información disponible para un fin
específico. Todo lo que hacemos, genera un dato.
Características del dato
- Volumen: cantidad inmensa de datos generados
- Velocidad: rapidez con que los datos se generan
- Variedad: datos no son solo texto
- Veracidad: no todos los datos son ciertos
- Valor: datos se vuelven informacion valiosa
Data warehouse: depósito central de datos ordenados y clasificados listos para su análisis.
Rapidez y estructura. Se puede hacer consultas de gran cantidad de datos a través de SQL.
Ej: Orden y proceso de datos de Netflix para recomendar películas similares. (google big query)
Data Lake: almacenan datos en su forma original (sin procesar). Clave la flexibilidad.
Junta mucha información rápida, para almacenamiento costo bajo con datos no estructurados.
Ej: Datalake para registrar comportamiento en película en Netflix (google cloud storage)
Diferencia data warehouse vs data lake
- Datos procesados en esquemas mientras que datos crudos sin estructura
- Análisis sobre data limpia mientras que se seleccionan y estructuran según la necesidad
Un resultado de KPI debe ser igual del data lake y warehouse luego de procesar ambos.
Arquitectura Big Data
1. Ingesta de datos (tomar info de dispositivos en
tiempo real a través de fuentes como base de
datos, API, SQL y llevarla a landing area)
2. ETL (extraer información del landing area y la
proceso para datalake // data warehouse)
3. La utilizo en data science, AI o machine learning // business intelligence & analytics
Datos masivos: 20% de datos de las empresas son estructurados, 80% no estructurados
SQL (Structured query language)
Lenguaje declarativo de 4ta gen para definir, gestionar y manipular la información de base de
datos relacional.
Base de datos
Conjunto de datos organizados y relaciones entre sí, almacenados sistemáticamente para su
posterior uso.
Bases de datos SQL (relacionales)
Colección de información que organiza datos en relaciones predefinidas, en la que los datos se
almacenan en una o más tablas (o "relaciones") de columnas y filas.
- Claves primarias (Id, DNI)
- Claves foráneas (tabla intermedia que da unión a otras dos tablas)
- Modelo dimensional:
Tabla de hechos: representa un evento en la vida real
Ej: venta producto, reunion
Tabla de dimensiones: tablas contienen los distintos atributos de esos hechos
Ej: nombre producto, patente, destino, dirección
- Modelo estrella: se utiliza para modelar los datos
La del Centro en rosado es de Hechos, las demás son de dimensiones.
Base de datos NOSQL (no relacionales)
- Key value: guardan en una clave única, y en valor el dato. No tiene estructura.
- Optimizan APIs
- Modelo de datos simple
- No aptas para consultas analiticas
- Sin esquemas (tablas)
- Column store: No almacenan los datos en tablas, sino que los almacenan en
arquitecturas distribuidas masivamente.
- Optimizadas para OLAP
- Los datos se guardan por columna
- Mejora en compresión de datos
- No performan si se necesita toda la fila
- Soportan SQL
- Document store: Bases de datos que almacenan sus datos en forma de documentos.
- Uso general, pero más en software web
- Se guardan documentos enteros
- Esquema super flexible
- Permite operaciones de búsqueda y actualización (MongoDB)
- Grafos: Bases de datos que almacenan datos en forma de grafo. El grafo está formado
por nodos que actúan como objetos y aristas como relaciones entre los objetos
- Redes Sociales, Sistemas de Recomendaciones, CRMs
- Relaciones de Muchos a Muchos
- Fáciles de consultar
- Permite operaciones de búsqueda y actualización (GraphQL)
- No soporta transacciones
Diferencia SQL vs NOSQL
Ingesta en tiempo real (streaming)
● Set de datos enviados en pequeños mensajes transmitidos constantemente
● Publicadores (Publishers) envían información a un tópico
● Los tópicos guardan esa información por un tiempo determinado
● Suscriptores (subscribers) toman información de ese tópico
Herramientas para hacer ingesta
- Apache Kafka, Google pub/sub, Amazon Simple Notification Service, Azure service bus
Ejemplos
- Información que es enviada desde un auto eléctrico
- Información de dispositivos IOT es enviada al DW para realizar análisis
- Información de dispositivos móviles es enviada al DW en la nube
Ingesta Change Data Capture (CDC)
Es un mecanismo que hace tracking de los cambios en la DB origen, los captura y luego los
aplica en el Datawarehouse.
Se utiliza
- en casos que es importante conocer todos los cambios en el tiempo
- en casos que no queremos estresar la DB relacional
- en casos que necesitemos mantener actualizada la información en casi TR
- cuando no necesitemos hacer grandes transformaciones en el proceso
Herramientas
- IBM infosphere, Qlik replicate, Oracle goldengate
Ejemplos
- Mantener actualizado un stock de un depósito
- Cuando una base de datos está comprometida de performance
- Mantener sincronizada una DB en otro destino (Disaster Recovery)
- Múltiples fuentes de consulta
Ingresta Proceso por lotes (Batch)
● Se transfiere la data desde una o más fuentes al proyecto de Big Data.
● Archivos (json, avro, parquet, csv, etc.)
● Pueden provenir de la exportación de Apps, DBs, etc.
● Se pueden almacenar en HDFS, GCS, S3, Blob Storage para luego ser procesados
Periodicidad
● Pocas veces por día (habitualmente una vez al día)
● Habitualmente se realiza por las noches
● Se envía un lote completo de información
Herramientas
- Web, Línea de comando (scripts), APIs, Servicios de Transferencia (Appliances)
Ejemplos
- Información generada en un retail es enviada al DataWarehouse
- Información transaccional es enviada al DW para realizar análisis
- Información generada en un mainframe (computadora central) es enviada al DW en la
nube
Almacenamiento
Dependiendo del tipo de dato y de las necesidades del negocio serán donde estos serán
almacenados.
Tipos de datos
Estructurados
- Presentan un esquema bien definido y los datos se organizan en filas y columnas.
- Por ejemplo: Tablas de bases de datos. Archivos CSV, Excel (xls), Google sheet.
- Almacenan en amazon redshift, google bigquery, azure synapse analytics
No estructurados
- No presentan un esquema definido, sino que como punto de partida hay que encontrar
la manera de indexar e identificar el significado de los datos, para recién pensar en
cómo se procesarán.
- Por ejemplo: video, imagen, audio, emails, documentación.
- Almacenan en amazon S3, azure blob storage, google cloud storage
Semi-estructurados
- Los datos semi-estructurados se parecen a los datos estructurados. Los datos
semi-estructurados poseen determinada forma de organización interna (jerarquías, tags,
etc.) que debe ser identificada.
- Por ejemplo: Archivos JSON, XML, HTML. Archivos de log.
- Almacenan en ambas.
Transformación
Es el proceso de mapear la información desde la estructura utilizada en el origen a la estructura
utilizada en las etapas de almacenamiento.
- Conversión de tipos de datos: string a integer
- Sustitución de datos faltante por un tipo de dato default
- Filtrar datos que rompen reglas de negocio
- Eliminar columnas innecesarias
Lenguajes: SQL, Python, Scala, Java, Entorno grafico
Herramientas: Apache hadoop, Spark, SQL, Python
ETL vs ELT
ETL: proceso de extracción, transformación y carga
Ventajas
- Compliance: permite enmascarar la información debido a regulaciones
- Costos: información filtrada reduce costos DW
Desventajas
- Team: mantenimiento de pipelines requiere más Data Engineers
- Errores: complejidad de los pipelines y fuentes, mayor probabilidad
ELT: proceso de extracción, carga y transformación
Ventajas
- Complejidad: sin pipelines ni transformaciones, accedes a la información fácil
- Velocidad: la información es ingestada rápidamente ya que no hay pipelines
Desventajas
- Riesgo: debido a que está toda la data en el DW, fácilmente la podrían visualizar
- Crecimiento sin control: sin filtrar datos se incrementa el tamaño fácilmente
Análisis de datos
Estudio de datos con el fin de extraer información significativa para empresas y la toma de
decisiones. Ej: Instagram para orientar sus publicaciones patrocinadas
Análisis exploratorio de datos (EDA)
Técnica que se utiliza para analizar e investigar conjuntos de datos, con el objetivo de
identificar patrones, anomalías y relaciones entre las variables utilizando métodos gráficos.
DATOS BRUTOS -> ANÁLISIS DESCRIPTIVO -> AJUSTE DE TIPO DE VARIABLE ->
DETECTAR DATOS AUSENTES -> DETECTAR DATOS ATÍPICOS -> CORREGIR VARIABLES
Tipos de datos
Correlaciones
Es una medida estadística que nos indica la fuerza y dirección de la relación de dos variables.
- Correlación positiva: Cuando una variable aumenta, la otra también tiende a aumentar.
Por ejemplo, la altura y el peso suelen estar positivamente correlacionados.
- Correlación negativa: Cuando una variable aumenta, la otra tiende a disminuir.
Por ejemplo, la temperatura y la venta de abrigos suelen estar negativamente
correlacionadas.
- No correlación: Cuando no existe una relación lineal entre las variables.
Madurez en el uso de datos
Capacidad de una organización para gestionar y utilizar sus datos de manera efectiva.
A partir del dato, debo analizar que paso, porque paso, que pasara y que debo hacer.
Nivel de madurez: Descriptivo, Diagnóstico, Predictivo, Prescriptivo
Machine learning: identificar cuando usaron cada modelo de machine learning
Supervisado: Se basa en datos de entrada y salida etiquetados. Predice datos no vistos.
- Regresión
- A través de variables independientes (características), podemos predecir
dependiente (precio)
- Ej: predecir el precio de una vivienda
- Clasificación
- Predice blanco/negro, los clasifica.
- Ej: detectar spam en mails
No supervisado: Se basa en datos sin etiquetar o sin procesar. Descubre patrones sin etiquetas
- Clustering
- Identifica clientes con características similares
- Ej: segmentar clientes de comercio electrónico
- Reducción de dimensionalidad
- Transforma datos de espacios de alta dimensión a espacios de baja dimensión
- Ej: analisis grandes volumen de datos de genética
Aprendizaje por refuerzo: entrena al software para decisiones y lograr los mejores resultados
- Si va perdiendo, le comento que hizo mal y va aprendiendo.
- Ej: agente de software a que aprenda ajedrez
Métricas de clasificación
- Matriz de confusión
Accuracy: métrica que mide qué tan bien acierta el modelo predicción, positiva como negativa.
Ej: diagnóstico médico
ACCURACY = VP + VN / VP + VN + FP + FN
ACCURACY = 45 + 50 / 100 = 85 / 100 = 0,85
Esto significa que el 85% de las veces, el modelo predice correctamente si un paciente está
enfermo o no.
Precisión: empresa de telecomunicaciones tiene 1000 clientes predice si se van o se quedan
PRECISION = VP / VP + FP
PRECISION = 120 / 120 + 30 = 120 / 150 = 0,8
Esto significa que el 80% de los clientes que el modelo predijo que se irían, realmente se
fueron
Recall: mide la proporción de los casos positivos que el modelo identifica correctamente.
Ej: banca detecta casos de fraude en transacciones bancarias
RECALL = VP / VP + FN
RECALL = 100 / 100 + 5 = 100 / 105 = 0,9524
F1 score: métrica que combina la precisión y el recall en un solo valor. Cerca 1 = buen score
Ej: detección de spam
ACCURACY = 90 + 980 / 1100 = 0,97
PRECISION = 90 / 100 = 0,9
RECALL = 90 / 110 = 0,82
F1 = 2 * (0,9 * 0,82) / (0,9 + 0,82) = 0,86
0,86 indica que nuestro modelo está haciendo un buen trabajo en general, tanto en identificar
correctamente los correos electrónicos spam como en evitar clasificar incorrectamente los
correos electrónicos legítimos como spam.
Cuando usar cada una
- Clases balanceadas - ACCURACY
- Clases desbalanceadas, consecuencias falso positivo - PRECISIÓN
- Clases desbalanceadas, consecuencias falso negativo - RECALL
- Costo relativo falso positivo y negativo - F1
Underfitting
Ocurre cuando un modelo es demasiado simple para capturar las complejidades presentes en
los datos.
Ej: entreno modelo con 1 raza, le muestro otra me dice que NO es perro
Overfitting
Ocurre cuando un modelo se ajusta demasiado a los datos de entrenamiento, aprendiendo
incluso el ruido aleatorio.
Ej: entreno modelo con 10 razas marrón, le muestro una blanca me dice que NO es perro