Esta semana se enfoca en las operaciones de datos, abarcando aspectos de ingeniería de software y gestión de datos. Se profundiza en los pilares fundamentales de las operaciones de datos, derivados del concepto de DataOps, que a su vez surge de DevOps.
Se analizan los tres pilares principales:
La respuesta a incidentes está más relacionada con hábitos culturales y es más difícil de practicar en un entorno de curso en línea.
| Aspecto | Detalles |
|---|---|
| Enfoque principal | Automatización, observabilidad y monitoreo |
| Herramientas principales | Terraform, CloudFormation |
| Actividades prácticas | Escribir código en Terraform para infraestructura |
| Contenido adicional | Entrevistas con expertos en DataOps |
Esta semana proporciona conocimientos teóricos y prácticos sobre cómo automatizar y monitorear operaciones de datos, además de entender la importancia de la cultura y las prácticas en DataOps para garantizar la calidad y eficiencia en la gestión de datos.
DataOps es una metodología que busca optimizar la entrega de datos y conocimientos a los clientes, garantizando la confianza en los datos, la rapidez en la entrega y la capacidad de realizar cambios con bajo riesgo. Inspirada en principios de manufactura lean y DevOps, esta disciplina se enfoca en crear sistemas eficientes y adaptables para equipos de datos.
| Concepto | Descripción |
|---|---|
| Manufactura de datos | La gestión de datos como una línea de producción, con etapas claramente definidas y controladas. |
| Iteración rápida | Entregar versiones preliminares para obtener feedback temprano y ajustar rápidamente. |
| Automatización | Automatizar pruebas, despliegues y monitoreo para reducir errores y aumentar velocidad. |
| Medición y control | Uso de métricas para gestionar la calidad y eficiencia del proceso. |
| Aspecto | DataOps | DevOps / Lean |
|---|---|---|
| Propósito | Entregar datos y insights confiables rápidamente | Entregar software de forma rápida y eficiente |
| Enfoque | Manufactura de datos, calidad y control | Automatización, ciclos cortos, mejora continua |
| Prácticas comunes | Pruebas, despliegues automáticos, monitoreo | Integración continua, despliegue continuo |
| Resultado esperado | Datos confiables, cambios rápidos, menor riesgo | Software funcional, entregas frecuentes |
El manifiesto de DataOps busca definir los valores y principios fundamentales:
DataOps es una disciplina que combina principios de manufactura, software y gestión para crear entornos de datos más confiables, rápidos y adaptables. Implementar sus prácticas puede reducir el estrés del equipo, mejorar la calidad del trabajo y acelerar la entrega de insights valiosos.
¡Recuerda! No seas héroe, construye sistemas, mide y mejora continuamente para lograr un equipo de datos eficiente y feliz.
En este documento se analiza el pilar de automatización de DataOps, una disciplina que surge del DevOps y comparte varias prácticas y conceptos. La automatización en DataOps permite mejorar la eficiencia, control y calidad en la gestión de datos y código, mediante técnicas como CI/CD, control de versiones e infraestructura como código.
| Áreas relacionadas | Descripción |
|---|---|
| Ingeniería de software | Muchas prácticas de DataOps provienen de DevOps. |
| Gestión de datos | Control de versiones de datos mejora la calidad y control del ciclo de vida. |
La automatización en DataOps es fundamental para mejorar la eficiencia, control y calidad en la gestión de datos. Las principales prácticas incluyen CI/CD, control de versiones y infraestructura como código, que permiten automatizar procesos, mantener trazabilidad y facilitar despliegues confiables. Estas prácticas se integran con otras áreas de la ingeniería de datos y software, fortaleciendo el ciclo de vida de los datos y las aplicaciones.
¿Quieres que agregue alguna fórmula matemática, ejemplo práctico o tabla adicional?
La infraestructura como código (IaC) permite definir, desplegar y mantener recursos de infraestructura en la nube mediante programación. Esto automatiza la creación de recursos como redes, seguridad, computación, almacenamiento y otros recursos de gestión y análisis de datos. La práctica de IaC tiene raíces que datan de los años 70, con scripts básicos para gestionar máquinas físicas, y evolucionó con la llegada de la computación en la nube y herramientas modernas como Terraform y CloudFormation.
| Época | Descripción | Herramientas y conceptos clave |
|---|---|---|
| 1970s | Gestión de máquinas físicas con scripts BAS | Scripts de automatización básica |
| 2006 | Lanzamiento de EC2 en AWS | Creación rápida de recursos en la nube |
| 2010s | Desarrollo de herramientas IaC | Terraform, CloudFormation, Ansible |
| Característica | Terraform | CloudFormation |
|---|---|---|
| Soporte multi-nube | Sí | No (solo AWS) |
| Lenguaje de configuración | HCL | JSON/YAML |
| Popularidad | Alta | Alta en AWS |
resource "aws_s3_bucket" "data_lake" {
bucket = "${var.prefix}-datalake"
acl = "public-read"
}
resource: palabra clave para definir un recurso.aws_s3_bucket: tipo de recurso.data_lake: nombre del recurso.{}: configuración con pares clave-valor.Supongamos que quieres crear 5 instancias EC2:
¿Quieres que incluya alguna sección adicional, ejemplos específicos o tablas con comandos?
Este documento explica el proceso para crear una instancia EC2 en AWS utilizando Terraform. Se abordan los conceptos básicos de la estructura de archivos de configuración, la declaración de proveedores, la definición de recursos y el flujo de trabajo para aprovisionar infraestructura en la nube. Además, se presenta un ejemplo práctico paso a paso para lanzar una instancia EC2 en la VPC predeterminada de la región de Virginia Occidental (US East 1).
.tf.terraform init para instalar los proveedores necesarios.terraform plan para visualizar las acciones que realizará Terraform.terraform apply y aprobar para crear, actualizar o destruir recursos.Los archivos .tf se estructuran en cinco secciones principales:
| Sección | Descripción |
|---|---|
| Configuración de Terraform | Especifica los proveedores y versiones. |
| Proveedores | Define los complementos necesarios para interactuar con recursos externos. |
| Recursos | Declara los recursos que se desean crear (ej. instancias EC2). |
| Variables de entrada | Variables configurables por el usuario. |
| Salidas | Información que se desea obtener tras la creación de recursos. |
Cada sección se representa mediante bloques de código con estructura similar a JSON:
<palabra_clave> "<valor>" {
<argumento> = <valor>
...
}
provider "aws" {
region = "us-east-1"
}
aws permite gestionar recursos en AWS.Para crear una instancia EC2, se utiliza un bloque de recurso:
resource "aws_instance" "mi_instancia" {
ami = "ami-0abcdef1234567890" # ID de la AMI
instance_type = "t2.micro" # Tipo de instancia
tags = {
Name = "ServidorEjemplo"
}
}
aws_instance indica una instancia EC2 en AWS.mi_instancia es el identificador local.ami: Imagen de máquina Amazon (sistema operativo).instance_type: Tipo de instancia (ej. t2.micro).terraform init
Descarga e instala los proveedores definidos en los archivos .tf.
Planificar la creación:
terraform plan
Muestra las acciones que Terraform realizará.
Aplicar la configuración:
terraform apply
| Comando | Función |
|---|---|
terraform init |
Inicializa el directorio y descarga proveedores. |
terraform plan |
Muestra el plan de ejecución. |
terraform apply |
Ejecuta los cambios y crea los recursos. |
¡Con estos pasos y conceptos, estarás listo para gestionar infraestructura en AWS usando Terraform de manera eficiente!
En este documento se explica cómo mejorar la gestión de la infraestructura con Terraform mediante la utilización de variables de entrada, valores de salida y la organización del espacio de trabajo en múltiples archivos. Se abordan conceptos clave para parametrizar configuraciones, exportar atributos de recursos y mantener un proyecto ordenado y escalable.
Permiten parametrizar la configuración, evitando valores codificados y facilitando la personalización sin editar los archivos principales.
Se declaran con la palabra clave variable:
variable "region" {
description = "Nombre de la región de AWS"
type = string
default = "us-east-1"
}
variable "server_name" {
description = "Nombre del servidor EC2"
type = string
}
string, number, etc.).Se hace referencia a las variables con la sintaxis var.nombre_variable:
provider "aws" {
region = var.region
}
resource "aws_instance" "web_server" {
ami = "ami-123456"
instance_type = "t2.micro"
tags = {
Name = var.server_name
}
}
-var:terraform apply -var="server_name=MiServidor"
.tfvars: crear un archivo, por ejemplo terraform.tfvars, con contenido:server_name = "MiServidor"
Terraform automáticamente usará este archivo al aplicar cambios.
Permiten exportar atributos de recursos, como identificadores o ARNs, para usarlos en otros contextos o scripts.
Se declaran con la palabra clave output:
output "instance_id" {
description = "ID de la instancia EC2"
value = aws_instance.web_server.id
}
output "instance_arn" {
description = "ARN de la instancia EC2"
value = aws_instance.web_server.arn
}
Se accede a los atributos del recurso usando la sintaxis:
aws_instance.nombre_recurso.atributo
Por ejemplo:
aws_instance.web_server.id
aws_instance.web_server.arn
Luego de aplicar cambios con terraform apply, se pueden consultar con:
terraform output
o para una salida específica:
terraform output instance_id
Tener todos los recursos, variables y salidas en un solo archivo puede volverse inmanejable a medida que crece la infraestructura.
Dividir la configuración en múltiples archivos:
| Archivo | Propósito |
|---|---|
variables.tf |
Declaración de variables |
outputs.tf |
Definición de valores de salida |
providers.tf |
Configuración de proveedores |
main.tf |
Recursos y configuraciones principales |
Terraform concatena automáticamente todos los archivos .tf en un solo plan de ejecución, permitiendo una gestión modular y ordenada.
variables.tf
providers.tf
outputs.tf
main.tf
En el siguiente video, se abordará el uso de módulos para organizar aún mejor el espacio de trabajo y cómo declarar fuentes de datos en Terraform.
¡Gracias por tu atención!
Terraform permite gestionar recursos de infraestructura mediante archivos de configuración. Además de las variables y bloques de recursos, se pueden utilizar bloques de datos y módulos para mejorar la reutilización y la integración con recursos externos.
Los bloques de datos (o data sources) son referencias a recursos existentes fuera de Terraform o en otros espacios de trabajo. Permiten consultar información sin crear o modificar recursos, facilitando la automatización y la integración.
Para declarar un bloque de datos:
data "<tipo_recurso>" "<nombre>" {
<argumentos>
}
<tipo_recurso>: Tipo del recurso, consultado en la documentación del proveedor.<nombre>: Nombre que se asigna para referenciar en el archivo.Supongamos que queremos usar una subred creada fuera de Terraform:
data "aws_subnet" "selected_subnet" {
id = "<ID_de_subred>"
}
Luego, podemos usar su atributo id en la creación de una instancia EC2:
resource "aws_instance" "example" {
subnet_id = data.aws_subnet.selected_subnet.id
# otros atributos
}
Por ejemplo, para obtener la AMI más reciente de Linux en AWS:
data "aws_ami" "latest_linux" {
owners = ["amazon"]
most_recent = true
filter {
name = "name"
values = ["amzn2-ami-hvm-*-x86_64-gp2"]
}
}
Y en la definición de la instancia EC2:
resource "aws_instance" "web" {
ami = data.aws_ami.latest_linux.id
# otros atributos
}
Un módulo es un subdirectorio que agrupa recursos relacionados, permitiendo empaquetar y reutilizar configuraciones completas. Es útil para gestionar componentes complejos o repetitivos, como un sitio web completo.
/mi_modulo/
main.tf
variables.tf
outputs.tf
module "sitio_web" {
source = "./mi_modulo"
nombre_servidor = var.nombre_servidor
}
variable "nombre_servidor" {
description = "Nombre del servidor"
}
terraform.tfvars:nombre_servidor = "MiServidorWeb"
En outputs.tf del módulo:
output "id_servidor" {
value = aws_instance.servidor.id
}
output "arn_servidor" {
value = aws_instance.servidor.arn
}
En el archivo raíz, para acceder a estas salidas:
output "id_servidor" {
value = module.sitio_web.id_servidor
}
output "arn_servidor" {
value = module.sitio_web.arn_servidor
}
terraform init
terraform apply
| Concepto | Descripción | Ejemplo |
|---|---|---|
| Bloques de datos | Consultar recursos existentes sin crearlos | data "aws_subnet" "selected" { id = "subnet-12345" } |
| Uso de atributos | Referenciar atributos de recursos consultados | data.aws_subnet.selected.id |
| Módulos | Agrupar recursos en subdirectorios para reutilización | module "web" { source = "./web_module" } |
| Variables de entrada | Parámetros que se pasan a los módulos | variable "nombre_servidor" {} |
| Salidas | Valores exportados por módulos para ser usados en otros archivos | output "id_servidor" { value = aws_instance.servidor.id } |
El uso de bloques de datos y módulos en Terraform permite gestionar recursos de manera más eficiente, automatizar búsquedas de recursos existentes y estructurar configuraciones complejas en componentes reutilizables. La práctica constante y la consulta de la documentación oficial facilitarán un dominio avanzado de estas herramientas.
¡Nos vemos en el próximo tutorial para seguir explorando Terraform!
Este curso explica cómo utilizar Terraform para crear y gestionar recursos en la nube, específicamente en AWS, mediante una arquitectura que incluye una base de datos RDS, una instancia EC2 que actúa como host bastión, y la configuración de redes y seguridad. El objetivo principal es aprender a definir, crear y gestionar estos recursos de forma automatizada y segura.
Internet
|
| (SSH con clave pública)
v
Host Bastión (EC2 en subred pública)
|
| (Conexión segura SSH)
v
Red Privada
|
| (Conexión a RDS)
v
Base de Datos RDS (en subred privada)
random, tls, y local.random para generar contraseñas aleatorias.tls y local.| Archivo | Función |
|---|---|
variables.tf |
Definición de variables de entrada |
outputs.tf |
Exportación de valores útiles para conexión y referencia |
main.tf |
Declaración de recursos, módulos y configuración general |
provider.tf |
Configuración de proveedores, regiones y otros servicios |
network.tf |
Datos de la VPC, subredes y grupos de seguridad |
rds.tf |
Configuración de la instancia RDS |
ec2.tf |
Configuración de la instancia EC2 y generación de claves SSH |
backend.tf |
Configuración para almacenamiento del estado de Terraform (local o remoto) |
Este laboratorio permite practicar la creación de recursos en AWS mediante Terraform, incluyendo la configuración de redes, seguridad, bases de datos y servidores bastión. La automatización y parametrización facilitan la gestión y escalabilidad de la infraestructura en la nube.
¿Listo para comenzar a practicar con Terraform?
En el contexto de DataOps, los principios y prácticas de observabilidad y monitoreo son fundamentales para garantizar la calidad y confiabilidad de los sistemas de datos. Estos conceptos tienen su origen en DevOps y en el desarrollo de software, adaptándose a los sistemas distribuidos y a la nube en la última década.
Las mismas herramientas de observabilidad que se usan en software también pueden ser útiles para sistemas de datos. Sin embargo, en DataOps, además de aspectos técnicos, es crucial monitorear la calidad de los datos.
| Tipo de Datos | Características | Impacto |
|---|---|---|
| Alta calidad | Precisión, completitud, disponibilidad oportuna, esquemas bien definidos | Proporciona valor y decisiones confiables |
| Baja calidad | Inexactos, incompletos, inutilizables | Puede ser peor que no tener datos, genera decisiones erróneas y desconfianza |
Supongamos que una empresa en EE. UU. vende en Europa y cambia la moneda de dólares a euros en su base de datos transaccional. Aunque el sistema sigue funcionando y los datos parecen plausibles, puede ocurrir que:
Ejemplo de escenario:
La conversión de moneda no se refleja correctamente en los datos, causando una caída aparente en ingresos del 10-20%, aunque el sistema funcione normalmente.
Este ejemplo ilustra cómo un cambio en los datos puede afectar la percepción y decisiones, incluso si el sistema parece estar en funcionamiento.
La observabilidad y el monitoreo en DataOps son esenciales para mantener la calidad y confiabilidad de los datos. La capacidad de detectar cambios o interrupciones rápidamente ayuda a evitar decisiones basadas en datos incorrectos y a mantener la confianza en los sistemas de datos.
Escucha a Barr Moses, experto en observabilidad y monitoreo de datos, en el siguiente video (opcional).
La observabilidad de datos es una disciplina que permite entender y monitorear el estado de los sistemas de datos, similar a la observabilidad en ingeniería de software. Su objetivo principal es ayudar a los equipos de datos a recuperar la confianza en sus datos, identificando problemas y mejorando continuamente la calidad y confiabilidad de los datos.
El estado actual de los datos se compone de tres elementos principales:
| Componente | Descripción |
|---|---|
| Datos en sí mismos | La información que se ingiere en el sistema. |
| Código | Transformaciones y procesos escritos por ingenieros. |
| Sistema | Infraestructura que ejecuta trabajos y gestiona datos. |
Cada uno puede fallar, afectando la calidad y disponibilidad de los datos.
Al igual que en la ingeniería de software, se deben monitorear métricas que indiquen la salud del sistema de datos:
| KPI | Descripción |
|---|---|
| Número de incidentes | Frecuencia de problemas de datos. |
| Tiempo de detección | Rapidez en identificar un problema. |
| Tiempo de resolución | Velocidad en solucionar incidentes. |
Estos KPIs ayudan a los equipos a mejorar la confiabilidad y disponibilidad de los datos con el tiempo.
La observabilidad de datos es esencial para garantizar la calidad, confiabilidad y disponibilidad de los datos en un entorno cada vez más complejo y dinámico. La clave está en monitorear continuamente, entender las causas raíz y aprender de las experiencias para mejorar los sistemas de datos.
¡Mantente curioso y enfocado en entender a tus clientes y sus necesidades para construir sistemas de datos confiables y escalables!
La observabilidad y el monitoreo de datos son fundamentales para garantizar la calidad y fiabilidad de los sistemas de datos. Sin embargo, es importante saber por dónde comenzar y qué aspectos priorizar para evitar confusiones y fatiga por alertas innecesarias.
En lugar de monitorear todo, se recomienda enfocarse en las métricas más relevantes para las partes interesadas. Algunas métricas comunes incluyen:
| Métrica | Descripción |
|---|---|
| Número total de registros por lote | Cantidad de registros procesados en un intervalo de tiempo determinado. |
| Rango de valores en una columna | Verificar que los valores se mantengan dentro de umbrales aceptables. |
| Número de valores nulos | Contar registros con datos faltantes en una tabla. |
| Diferencia de tiempo entre ahora y la última marca de tiempo | Supervisar la frescura de los datos, asegurando que no tengan más de 24 horas de antigüedad. |
Es crucial entender qué aspectos de los datos son más importantes para los usuarios o stakeholders del proyecto. Por ejemplo:
Es necesario determinar qué componentes de los datos son vitales para el éxito del proyecto y cuáles pueden ser ignorados temporalmente. Esto ayuda a enfocar los esfuerzos y evitar alertas irrelevantes.
Existen diversas maneras de supervisar la calidad de los datos:
Una herramienta de código abierto que permite probar y validar la calidad de los datos de forma automatizada. En el próximo laboratorio, se explorará su uso en detalle.
Nota: La implementación de buenas prácticas en la supervisión de datos ayuda a prevenir problemas mayores y mantiene la integridad del sistema.
El monitoreo efectivo comienza con entender las necesidades de las partes interesadas, priorizar las métricas clave y utilizar las herramientas adecuadas para mantener la calidad de los datos. La comunicación y las validaciones tempranas son esenciales para un sistema confiable y eficiente.
¿Quieres que agregue alguna sección adicional o ejemplos específicos?
En esta conversación, Abe Gong, cofundador y CEO de Great Expectations, comparte su experiencia y visión sobre la calidad de los datos y cómo su proyecto ayuda a garantizarla. La inspiración surge de su trabajo en ciencia de datos y en la gestión de datos en salud, donde la calidad es crucial.
| Uso de datos | Aspectos importantes |
|---|---|
| Paneles de métricas | Registro correcto, distribución adecuada, bajo retraso |
| Modelos de ML | Distribuciones, sesgos, confiabilidad |
¿Quieres que agregue ejemplos específicos, fórmulas en LaTeX o tablas adicionales?
Great Expectations es una herramienta que permite realizar pruebas de calidad de datos mediante un flujo de trabajo estructurado. Este proceso implica definir los datos a validar, establecer expectativas o pruebas, y validar los datos en función de dichas expectativas. Los componentes principales que facilitan este flujo de trabajo son:
El contexto de datos actúa como punto de entrada a la API de Great Expectations, permitiendo gestionar objetos y procesos necesarios para la validación.
import great_expectations as ge
context = ge.get_context()
Este objeto permite configurar y acceder a propiedades y metadatos del proyecto.
La fuente de datos indica de dónde se obtendrán los datos a validar. Puede ser:
# Ejemplo de declaración de fuente de datos
datasource = context.sources.add_pandas(
name="mi_fuente",
data_asset_name="mi_activo"
)
Un activo de datos es una colección de registros dentro de la fuente, como una tabla o un archivo. Se puede dividir en lotes para validar segmentos específicos, por ejemplo, por mes o por tienda.
# Dividir datos en lotes
batches = datasource.get_batch_list_from_batch_request(batch_request)
Las solicitudes por lotes permiten recuperar datos específicos para la validación.
batch_request = datasource.build_batch_request()
Las expectativas son reglas o condiciones que los datos deben cumplir. Pueden ser:
Ejemplo de definición de expectativas:
# Crear un conjunto de expectativas
expectation_suite = context.create_expectation_suite("suite_ejemplo")
# Añadir expectativas
expectation_suite.add_expectation(
expectation_type="expect_column_values_to_not_be_null",
kwargs={"column": "edad"}
)
Para validar, se crea un validador que recibe la solicitud por lotes y el conjunto de expectativas.
validator = context.get_validator(
batch=batch,
expectation_suite=expectation_suite
)
Se puede validar manualmente o mediante un punto de control que automatiza el proceso.
# Crear un punto de control
checkpoint = context.add_or_update_checkpoint(
name="mi_punto_de_control",
config={
"validations": [
{
"batch_request": batch_request,
"expectation_suite_name": "suite_ejemplo"
}
]
}
)
# Ejecutar el punto de control
results = checkpoint.run()
Great Expectations soporta diferentes tipos de almacenes para gestionar la información del proyecto:
| Tipo de Almacén | Descripción |
|---|---|
| Expectation Store | Almacena las suites de expectativas |
| Validation Store | Guarda los resultados de validaciones |
| Checkpoint Store | Configura y almacena puntos de control |
| Data Docs Store | Genera informes y documentación de los resultados |
Estos almacenes se configuran y gestionan a través del objeto de contexto.
Este flujo estructurado permite automatizar y gestionar de manera eficiente la validación de datos, asegurando su calidad y cumplimiento con las expectativas definidas. En el siguiente ejemplo, se aplicarán estos pasos a un conjunto de datos de ejemplo para ilustrar su uso práctico.
¿Quieres que prepare un ejemplo completo en código con datos ficticios?
Este documento explica cómo utilizar la biblioteca Great Expectations para validar datos en una base de datos SQL, específicamente en una tabla de pagos de una base de datos de alquiler de DVDs. Se cubren los pasos para configurar el entorno, conectar con la base de datos, definir expectativas, crear lotes de datos, y automatizar validaciones mediante puntos de control.
pip install great_expectations
great_expectations init
Este comando crea la estructura de carpetas necesaria, incluyendo tiendas backend, puntos de control, expectativas y documentación.
import great_expectations as ge
context = ge.get_context()
context.sources.add_sql(
name="my_datasource",
connection_string="postgresql://usuario:contraseña@host:puerto/base_de_datos"
)
payment_asset = context.add_table_asset(
name="payment_tb",
table_name="payment"
)
payment_asset.add_splitter_datetime_part(
column_name="payment_date",
datetime_part="month"
)
batch_request = payment_asset.build_batch_request()
batches = payment_asset.get_batch_list_from_batch_requests(batch_request)
suite = context.add_or_update_expectation_suite("mysuite")
validator = context.get_validator(
batch_request=batch_request,
expectation_suite_name="mysuite"
)
payment_id debe ser única:
python
validator.expect_column_values_to_be_unique("payment_id")customer_id no debe tener valores nulos:
python
validator.expect_column_values_to_not_be_null("customer_id")La columna amount debe tener valores mínimos no negativos:
python
validator.expect_column_values_to_be_between(
"amount",
min_value=0
)
Guardar el conjunto de expectativas:
validator.save_expectation_suite(discard_failed_expectations=False)
context.add_or_update_checkpoint(
name="mycheckpoint",
validations=[
(batch, "mysuite") for batch in batches
]
)
results = context.run_checkpoint("mycheckpoint")
context.build_data_docs()
Esto genera enlaces con estadísticas y resultados de las validaciones, permitiendo revisar detalles como expectativas cumplidas y fallidas.
| Concepto | Descripción |
|---|---|
| Contexto | Objeto principal para gestionar la interacción con datos y expectativas. |
| Fuente de datos | Conexión a la base de datos o archivo de datos. |
| Activo de datos | Representación de una tabla o conjunto de datos para validar. |
| Lote (Batch) | Subconjunto de datos, por ejemplo, por mes, para validaciones específicas. |
| Expectativa | Condición o regla que los datos deben cumplir. |
| Suite de expectativas | Conjunto de expectativas agrupadas para un análisis coherente. |
| Validador | Objeto que ejecuta las expectativas sobre un lote de datos. |
| Punto de control | Automatiza la ejecución de validaciones en múltiples lotes. |
| Documentos de datos | Reportes visuales con resultados y estadísticas de las validaciones. |
Este proceso permite validar de manera automatizada y estructurada la calidad de los datos en bases de datos SQL, asegurando que cumplen con las expectativas definidas. La integración con notebooks y la automatización mediante puntos de control facilitan la gestión continua de la calidad de datos.
Ahora que conoces los pasos principales, te invitamos a practicar en tu entorno y validar tus propios conjuntos de datos usando Great Expectations.
Esta semana se ha enfocado en el concepto de DataOps, que busca optimizar la gestión y el flujo de datos mediante la automatización, infraestructura como código, observabilidad y supervisión de canalizaciones de datos para garantizar valor a las partes interesadas.
| Tema | Descripción |
|---|---|
| DataOps | Automatización y gestión eficiente de datos |
| Infraestructura como Código | Uso de Terraform para definir y mantener infraestructura de datos |
| Observabilidad | Monitoreo y trazabilidad de datos y canalizaciones |
| Herramientas Clave | CloudWatch, Great Expectations, contratos de datos |
| Próximos pasos | Enfoque en orquestación y control avanzado de canalizaciones de datos |
¡Nos vemos en la próxima semana para seguir profundizando en la orquestación y gestión avanzada de datos!