Tabla de conceptos

Concepto Definicion
AI Utilización de máquinas para darles tareas humanas no necesariamente motoras.
Machine Learning Desarrollo de modelos basados en la experiencia, aprendizaje automatico, se entrena a si mismo para tomar decisiones.
Deep Learning Lo mismo que machine learning pero con redes neurales y modelos predictivos.
Infraestructura arq. de datos Escalabilidad, Confiabilidad, Mantenibilidad.
Escalabilidad Tiene en cuenta la elasticidad de los recursos ‘on-demand’ de un sistema.
Confiabilidad La seguridad y la baja frecuencia a fallos en el procesamiento de datos.
Mantenibilidad Que sea de facil la actualización y cambios.
Tipos de datos Estructurado, semi-estructurado, no estructurado.
Base de datos Colección de datos organizados, que pueden ser estructurados/relacionales (SQL DB) o no estructurados (NoSQL DB).
Flujo de datos Ingesta y almacenamiento --> Proc. y preparación. --> exploración --> Experimentación y predicción.
Ingesta batch Los datos se procesan por lotes, por cantidades. Se ejecutan durante un periodo de tiempo y de forma periodica, en un momento que no hay trafico.
Ingesta streaming (near real time) Se hacen de manera individual (por registros), se procesan al momento en el que el dato se genera o se actualiza.
Ingesta full Traerse todos los datos del origen y guardarlos en un destino.
Ingesta incremental Solo traerse los datos nuevos y actualizar los duplicados.
Campo de Auditoria Se puede repetir un ID y tener una fecha distinta, lo cual indicaría que esta actualizado y no es el mismo registro, sin perder el anterior.
Datalake Es un repositorio centralizado para almacenar cualquier tipo de dato, almacenando datos de forma cruda (raw) sin tener que estructurarlo.
Zonas de un datalake Bronze o RD (Raw Data), Silver o AGT (Agregated), Gold o BT (Business Table).
Esquema relacional Para tener información relevante hay que hacer ‘joins’ entre tablas.
Esquema analítico Estan todos los eventos en la misma tabla.
Data Warehouse Un repositorio centralizado para almacenar datos con una estructura determinada. Optimizado para el analisis. Podemos tener en un mismo flujo de datos un datalake y un datawarehouse, pero el datawarehouse esta optimizado para el analisis.
Procesamiento de datos Convertir datos crudos en información significativa, limpieza y refinamiento de los datos. Remover datos no necesarios o erroneos, convertir campos a otro tip ode dato, organizar o estructurar datos, enriquecer datos por medio de cruces, agrupar datos y aplicar funciones.
ETL Extract. –> Transform. –> Load… Se usa cuando se toman datos de varias fuentes, de las procesa, y se almacenan en el datawarehouse.
ELT Extract. –> Load. –> Transform… Almacenamos como vienen de un datalake a un datalake (se replican), y se transforman después del almacenamiento.
Series Estructura de una dimensión. (Lista).
DataFrame Estructura de dos dimensiones (Tablas).
Panel de datos Estructura de tres dimensiones.
Pandas Librería de Python para el manejo y analisis de datos.
Librerias gráficas Python matplotlib, plotly, seaborn.
Azure Conjunto de servicios en la nube, ofrece la capacidad de compilar, administrar e implementar aplicaciones en una red global masiva mediante sus herramientas y plataformas. La posibilidad de ejecutar aplicaciones existentes en maquinas virtuales, ofrece aplicaciones open source, servicio de inteligencia artifical y aprendizaje automático.
On-premise software que está instalado en el mismo edificio que su empresa.
IaaS “Infraestructure as a Service”: servicios basados en la nube, pago por uso para servicios como almacenamiento, redes y virtualización.
PaaS “Platform as a Service”: herramientas de hardware y software disponibles en internet.
SaaS “Software as a Service”: software que está disponible a través de un tercero a través de Internet.
Cloud pública Cualquier persona que quiera comprar servicios en la nube puede acceder a los recursos y usarlos. La disponibilidad pública general es una diferencia clave entre las nubes públicas y privadas.
Cloud privada Es una nube que proporciona servicios de TI a través de internet, creada, controlada y administrada por una sola entidad. Proporciona un control mucho mayor para la empresa y se puede hospedar desde el centro de datos del sitio.
Cloud híbrida Una nube híbrida es un entorno informático que usa nubes públicas y privadas en un entorno interconectado. Se pueden usar para proporcionar una capa adicional de seguridad.
Databricks Es una plataforma de analitica de datos.
Apache SPARK Framework, Motor de procesamiento en paralelo en un entorno PAAS. Spark trabaja con RDDs, Resilient Distributed Datasets. Son como tuplas o listas, tiene varias transformaciones y acciones. Nos permite hacer operaciones paralelizadas. Tiene varias interfaces (SQL, R, scala, Python) la de python se llama PySpark y utiliza un formato de dataframes, y tiene operaciones parecidas a las de pandas.
Small Data Pequeños conjuntos de datos, datos simples utilizados para la comprensión humana.
Big Data Gran volumen de datos, grandes fragmentos de datos estructurados y no estructurados. La cantidad de datos almacenados es inmensa.
Delta Lake Atomicidad: Se tiene que ejecutar una instrucción de forma instantanea, transacciones ACID… Consistencia: Las transacciones dejan las bases de datos en un estado consistente… Aislamiento: Las transaciones no tienen que interferir unas con otras… Durabilidad: cuando una transacción se completa, se mantienen.

Jerarquia de Azure.

Herramientas de Azure

  1. Azure active directory
    Iniciar sesión, administración de accesos, proteger los entornos.
  2. Key vault
    Guardar claves e información sensible, para poder comunicar grupos de recursos de forma segura.
  3. Azure SQL
    Azure nos permite tener varias bases de datos relacionales. Se pueden hacer consultas a bases de datos estructuradas.
  4. Data Lake
    Nos permite almacenar data dentro de la nube de Azure, pero podemos guardar todo tipo de dato (estructurado y no estructurado).
  5. Databricks
    Es el IDE/Entorno de desarollo estilo notebook o colab para procesar usando codigo.
  6. Data Factory
    Se utiliza para ingesta de datos, para traer data fuera o dentro de azure.

Acciones básicas de Spark

Transformaciones básicas de Spark

PySpark

from pyspark.sql import SparkSession
spark = (
    SparkSession
    .builder
    .appName("Spark session")
    .getOrCreate()
    )
account_name = "nombre de la cuenta"
key = "Llave del datalake"

spark.conf.set(f"fs.azure.account.key.{account_name}.dfs.core.windows.net", key)

Lectura del dataset.

container_name = "nombre del contenedor"
subdir = "directorio del archivo"

path_data = f"abfss://{container_name}@{account_name}.dfs.core.windows.net/{subdir}"

Leer un CSV.

df=spark.read.format("csv").option("header","true").load(path_data)

Ver los tipos de datos de las columnas.

df.printSchema()

Mostrar el dataframe.

display(df)
# O también
df.show()

Seleccionar columnas especificas de un dataframe utilizando una lista.

user_level_cols = ["userId", "firstName", "lastName", "gender", "location", "userAgent", "registration", "level"]

df_user_info = df.select(user_level_cols)

Funciones de Spark SQL.

import pyspark.sql.functions as F

# https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/functions.html

Documentación

  1. Dataframe de PySpark
  2. Funciones de Spark

Referencias

Pandas

  1. How to use regex in pandas
  2. to_datetime pandas (youtube)
  3. Resample
  4. datetime replace precision
  5. sort by map
  6. Convert columns to strings.
  7. Group by.
  8. Boolean indexing.
  9. Tipos de datos pandas.
  10. Clase datetime, codigo de formato.
  11. Timestamp pandas class.
  12. Renombrar multiples columnas pandas con diccionario.
  13. Atributo ‘keep’ de duplicated, pandas.
  14. Map lambda function in dataframe.
  15. difflib, función get_close_matches.
  16. Dictionary comprehension.
  17. datetime year attribute.
  18. Latex.
  19. Plotly express bar chart.
  20. Sorting with a custom list.
  21. Seaborn api, line plot.
  22. Mathplotlib styles.