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. |
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