Curso de Especialización en Ingeniería de Datos

Descripción

En este segundo curso de la especialización en ingeniería de datos, se profundiza en la ingesta de datos desde sistemas de origen, así como en conceptos de DataOps y la orquestación de canalizaciones de datos. Este curso es fundamental para entender las etapas iniciales del ciclo de vida de la ingeniería de datos.

Contenido del Curso

Temas Principales

  1. Visión General de la Ingesta de Datos
  2. Importancia de la ingesta de datos en el ciclo de vida de la ingeniería de datos.
  3. Relación entre la ingesta de datos y el modelado de aprendizaje automático.

  4. Sistemas de Origen de Datos

  5. Tipos de sistemas de origen: bases de datos, almacenamiento de objetos, etc.
  6. Interacción con sistemas de origen en el trabajo de un ingeniero de datos.

  7. Ingesta de Datos

  8. Métodos de ingesta de datos desde sistemas de origen.
  9. Desafíos en la ingesta de datos y su impacto en la calidad de los datos.

  10. DataOps y Orquestación

  11. Organización y supervisión de flujos de trabajo de canalización de datos.
  12. Importancia de mantener la calidad y el rendimiento de los datos.

  13. Datos Estructurados vs. No Estructurados

  14. Diferencias entre datos tabulares y no estructurados (texto, imágenes, videos).
  15. Creciente relevancia de los datos no estructurados en el mundo actual.

Importancia de la Ingesta de Datos

Desafíos en la Ingesta de Datos

Conclusiones

Tabla Resumen de Temas

Tema Descripción
Visión General Introducción a la ingesta de datos y su importancia en IA.
Sistemas de Origen Tipos de sistemas y su interacción con la ingesta de datos.
Métodos de Ingesta Estrategias para la ingesta de datos y sus desafíos.
DataOps y Orquestación Organización y supervisión de flujos de trabajo de datos.
Datos Estructurados vs. No Estructurados Comparación y relevancia de ambos tipos de datos en la actualidad.

Lista de Recursos

Próximos Pasos


Curso sobre Sistemas de Origen, Ingestión y Canalizaciones de Datos

Descripción

Este curso se centra en la comprensión de los sistemas de origen, la ingesta de datos y la creación de canalizaciones de datos. A lo largo de cuatro semanas, se explorarán diferentes tipos de sistemas fuente, técnicas de ingesta, prácticas de DataOps y la organización de canalizaciones de datos.

Contenido del Curso

Semana 1: Introducción a los Sistemas Fuente

Semana 2: Ingestión de Datos

Semana 3: DataOps y Automatización

Semana 4: Organización de Canalizaciones de Datos

Resumen

Este curso abarca un amplio espectro de conocimientos necesarios para la ingeniería de datos, desde la comprensión de los sistemas fuente hasta la organización y monitoreo de canalizaciones de datos. Se recomienda a los participantes que se preparen para un aprendizaje intensivo y práctico.

Próximos Pasos

Acompáñame en el siguiente video para profundizar en los diferentes tipos de sistemas fuente y su importancia en el ciclo de vida de la ingeniería de datos.


Introducción a los Sistemas Fuente en Ingeniería de Datos

En este documento se resumen los conceptos clave sobre los sistemas fuente que un ingeniero de datos puede encontrar, así como los tipos de datos que se pueden ingerir de estos sistemas.

Tipos de Datos

Los datos con los que un ingeniero de datos trabaja se pueden clasificar en tres categorías principales:

  1. Datos Estructurados:
  2. Organizados en tablas con filas y columnas.
  3. Ejemplos: hojas de cálculo, bases de datos relacionales, archivos CSV.

  4. Datos Semiestructurados:

  5. No están en forma tabular, pero tienen cierta estructura.
  6. Ejemplo común: JSON (JavaScript Object Notation).
  7. Contiene pares clave-valor, donde cada valor puede ser de diferentes tipos de datos (números, cadenas, matrices, etc.).
  8. Ejemplo de JSON: json { "FirstName": "Joe", "LastName": "Reis", "Address": { "City": "Madrid", "PostalCode": "28001", "Country": "España" } }

  9. Datos No Estructurados:

  10. No tienen una estructura predefinida.
  11. Ejemplos: texto, video, audio, imágenes.
  12. Aunque no tienen una estructura visible, pueden tener características inherentes (dimensiones de píxeles, colores, etc.).

Sistemas Fuente

Los sistemas fuente de los que se pueden ingerir datos se pueden clasificar en tres tipos generales:

Tipo de Sistema Fuente Descripción
Bases de Datos Almacenan información de forma organizada, permitiendo operaciones CRUD (Crear, Leer, Actualizar, Eliminar).
Archivos Pueden ser documentos, imágenes, videos o archivos CSV. Representan una secuencia de bytes que contienen información.
Sistemas de Streaming Proporcionan un flujo continuo de datos en forma de mensajes sobre eventos.

Bases de Datos

Archivos

Sistemas de Streaming

Resumen

Como ingeniero de datos, se extraerán datos sin procesar de diferentes sistemas de origen, que pueden ser estructurados, semiestructurados o no estructurados. Los sistemas fuente incluyen bases de datos, archivos y sistemas de streaming. En las próximas secciones del curso, se explorarán más a fondo las características de cada uno de estos sistemas fuente, comenzando con las bases de datos relacionales.

Próximos Pasos

Acompáñame en el siguiente video para empezar a explorar las bases de datos relacionales.


Introducción a Bases de Datos Relacionales

Las bases de datos relacionales son sistemas de almacenamiento de datos que se utilizan ampliamente en aplicaciones web y móviles, así como en sistemas corporativos como la gestión de relaciones con clientes (CRM), recursos humanos (HR) y planificación de recursos empresariales (ERP). Este documento resume los conceptos clave sobre las bases de datos relacionales, su estructura y su uso en el contexto de la ingeniería de datos.

Conceptos Clave

1. Bases de Datos Relacionales

2. Estructura de la Base de Datos

Ejemplo de Estructura de Tablas

Tabla Descripción
Clientes Información sobre los clientes
Productos Información sobre los productos
Pedidos Información sobre los pedidos

3. Redundancia y Normalización

4. Claves en Bases de Datos

Ejemplo de Claves

Tabla Clave Primaria Clave Foránea
Clientes id -
Productos id -
Pedidos id customer_id (referencia a Clientes)

5. Esquema de Base de Datos

Interacción con Bases de Datos

Para interactuar con bases de datos relacionales, se utiliza un Sistema de Gestión de Bases de Datos Relacionales (RDBMS). Algunos RDBMS populares incluyen:

Lenguaje de Consulta Estructurado (SQL)

Consideraciones Finales

Aunque la normalización proporciona integridad y minimiza la redundancia, puede ser lenta al consultar datos. Dependiendo del caso de uso, los ingenieros de datos pueden optar por diferentes modelos de almacenamiento, incluyendo el enfoque de "una gran tabla" (OBT) para un procesamiento más rápido.

En el próximo video, se explorarán comandos SQL necesarios para la práctica en el laboratorio, seguido de una introducción a bases de datos NoSQL.


Este documento proporciona una visión general de las bases de datos relacionales y su importancia en la ingeniería de datos, así como los conceptos fundamentales que los ingenieros de datos deben comprender.


Introducción a SQL en la Base de Datos Rentio

En este documento se presenta un resumen del curso sobre el uso de SQL en una base de datos transaccional para una compañía ficticia de alquiler de DVDs llamada Rentio. Se abordarán conceptos clave, comandos SQL básicos y la estructura de la base de datos.

Descripción de la Base de Datos

La base de datos de Rentio incluye tablas que contienen información sobre:

Esquema de la Base de Datos

La base de datos está normalizada, lo que significa que los datos, como las direcciones de las tiendas, el personal y los clientes, se almacenan en tablas separadas para reducir la redundancia y facilitar las actualizaciones. Las tablas principales que se utilizarán son:

Tabla Descripción
film Información sobre los títulos y duración de los films.
category Lista de categorías de films.
film_category Relación entre film y category mediante film_id y category_id.

Comandos SQL Básicos

SELECT y FROM

El comando más básico en SQL comienza con la cláusula SELECT, donde se especifica qué datos se desean, seguido de la cláusula FROM, que indica de qué tabla se recuperarán los datos.

SELECT title, release_year FROM film;

LIMIT

Para limitar el número de resultados devueltos, se puede usar la cláusula LIMIT.

SELECT title, release_year FROM film LIMIT 10;

WHERE

Para filtrar resultados, se utiliza la cláusula WHERE.

SELECT * FROM film WHERE length < 60;

ORDER BY

Para ordenar los resultados, se puede usar la cláusula ORDER BY.

SELECT * FROM film WHERE length < 60 ORDER BY length ASC;

JOIN

Para explorar datos de más de una tabla, se utiliza la cláusula JOIN. Por ejemplo, para obtener títulos de films y sus categorías:

SELECT film.title, category.name 
FROM film 
JOIN film_category ON film.film_id = film_category.film_id 
JOIN category ON film_category.category_id = category.category_id 
WHERE film.length < 60;

Tipos de JOIN

GROUP BY y COUNT

Para agrupar resultados y contar registros, se utiliza GROUP BY junto con COUNT.

SELECT category.name, COUNT(*) AS film_count 
FROM film 
JOIN film_category ON film.film_id = film_category.film_id 
WHERE film.length < 60 
GROUP BY category.name 
ORDER BY film_count DESC;

Conclusión

Este resumen cubre algunos de los comandos SQL más comunes y su aplicación en la base de datos Rentio. El curso también incluye operaciones de manipulación de datos como CREATE, INSERT INTO, UPDATE y DELETE. Se recomienda leer las instrucciones cuidadosamente al realizar los ejercicios en el laboratorio.

Al finalizar el laboratorio, se explorarán bases de datos NoSQL.


Introducción a las Bases de Datos NoSQL

En los inicios de los años 2000, empresas tecnológicas como Google y Amazon comenzaron a superar las capacidades de sus bases de datos relacionales. La necesidad de procesar grandes volúmenes de datos provenientes de diversas fuentes llevó al desarrollo de bases de datos distribuidas no relacionales, conocidas como NoSQL. Este documento resume los conceptos clave sobre las bases de datos NoSQL, sus características y tipos.

¿Qué son las Bases de Datos NoSQL?

NoSQL no significa "No SQL", sino "No solo SQL". Es una categoría de bases de datos que se aleja del marco relacional tradicional. Algunas bases de datos no relacionales aún admiten SQL o lenguajes de consulta similares.

Características de las Bases de Datos NoSQL

Comparación con Bases de Datos Relacionales

Característica Bases de Datos Relacionales Bases de Datos NoSQL
Estructura Tabular No tabular
Esquema Fijo Flexible
Consistencia Fuerte Eventual
Escalabilidad Vertical Horizontal
Soporte de transacciones ACID Variable (algunas lo soportan)

Tipos Comunes de Bases de Datos NoSQL

1. Bases de Datos Clave-Valor

Ejemplo: - Clave: user_session_id - Valor: { "productos_vistos": [...], "carrito": [...] }

2. Almacenes de Documentos

Ejemplo: - Colección: usuarios - Documento: { "id": 1, "nombre": "Juan", "email": "juan@example.com" }

Ventajas y Desventajas

Aplicaciones de Bases de Datos NoSQL

Ambos tipos de bases de datos, relacionales y NoSQL, pueden ser utilizados en una amplia gama de aplicaciones. Sin embargo, en aplicaciones de procesamiento de transacciones en línea (OLTP) como banca y comercio electrónico, la consistencia y la integridad de los datos son críticas.

Conclusión

Las bases de datos NoSQL ofrecen una alternativa poderosa a las bases de datos relacionales, especialmente en escenarios donde la escalabilidad y la flexibilidad son esenciales. Sin embargo, es importante considerar las implicaciones de la consistencia eventual y la gestión de datos al elegir una solución NoSQL.

En el próximo video, exploraremos los principios de atomicidad, consistencia, aislamiento y durabilidad (ACID), que son fundamentales para los sistemas OLTP. ¡Nos vemos allí!


Resumen sobre Bases de Datos y Principios ACID

Descripción

Este documento resume los conceptos clave sobre bases de datos relacionales y no relacionales, así como los principios ACID que garantizan la integridad y confiabilidad de las transacciones en sistemas de procesamiento de transacciones en línea (OLTP).

Tipos de Bases de Datos

Tipo de Base de Datos Descripción
Relacionales Cumplen con los principios ACID y son ideales para transacciones confiables.
No Relacionales (NoSQL) Pueden no cumplir con ACID de forma predeterminada, pero permiten configuraciones para cumplir con estos principios.

Principios ACID

Los principios ACID son fundamentales para garantizar la integridad de las transacciones en bases de datos. A continuación se describen cada uno de ellos:

  1. Atomicidad
  2. Garantiza que las transacciones se traten como una unidad indivisible.
  3. Si una parte de la transacción falla, toda la transacción se anula.
  4. Ejemplo: En una compra, si se deduce el costo de la cuenta pero no se actualiza el inventario, la transacción se revertirá.

  5. Coherencia

  6. Asegura que cualquier cambio en los datos siga las reglas definidas por el esquema de la base de datos.
  7. La base de datos debe pasar de un estado válido a otro.
  8. Ejemplo: Si el inventario no puede bajar de cero, un pedido que exceda el stock disponible fallará.

  9. Aislamiento

  10. Permite que las transacciones se ejecuten de forma independiente, incluso si se inician simultáneamente.
  11. Ejemplo: Si dos clientes piden el mismo artículo al mismo tiempo, uno de los pedidos fallará si no hay suficiente inventario.

  12. Durabilidad

  13. Asegura que una vez completada una transacción, sus efectos son permanentes, incluso ante fallos del sistema.
  14. Esto es crucial para mantener la confiabilidad de la base de datos.

Consistencia Sólida

Consideraciones Finales

Próximos Pasos

En el siguiente laboratorio, se trabajará con DynamoDB, una base de datos de valores clave de NoSQL. Se recomienda revisar el video introductorio para familiarizarse con el entorno de trabajo.


Laboratorio de Amazon DynamoDB

Descripción

En este laboratorio, se trabajará con Amazon DynamoDB, una base de datos NoSQL de valores clave, y se aplicarán operaciones CRUD (Crear, Leer, Actualizar, Eliminar) a los datos. Se proporcionará una descripción general de las funciones de DynamoDB, los datos a utilizar y los métodos para interactuar con la base de datos.

Conceptos Clave

¿Qué es DynamoDB?

DynamoDB es una base de datos NoSQL que almacena datos en tablas. Cada tabla contiene elementos identificados de forma única por una clave principal. Los elementos se componen de atributos que describen los datos.

Ejemplo de Elementos

Clave (ID de Persona) Atributos (Nombre, Edad, etc.)
1 Nombre: Juan, Edad: 30
2 Nombre: Ana, Edad: 25

Clave Principal

Ejemplo de Clave Compuesta

Clave de Partición (ID de Pedido) Clave de Clasificación (Número de Línea) Atributos (Descripción del Artículo)
1001 1 Artículo: Laptop
1001 2 Artículo: Mouse

Esquema de Tablas

Las tablas en DynamoDB no tienen un esquema fijo, lo que permite que cada elemento tenga atributos distintos.

Operaciones CRUD en DynamoDB

Se utilizarán los siguientes métodos de Boto3 para realizar operaciones CRUD:

Operación Método Boto3 Descripción
Crear Tabla CreateTable Crea una nueva tabla en DynamoDB.
Agregar/Actualizar Elemento putItem, updateItem Agrega o actualiza un elemento en la tabla.
Leer Elemento getItem, scan, query Lee elementos de la tabla.
Eliminar Elemento DeleteItem Elimina un elemento de la tabla.

Interacción con DynamoDB

Para interactuar con DynamoDB, se utilizará Boto3, el kit de desarrollo de software de AWS para Python. Se debe crear un objeto cliente que represente la tabla de DynamoDB.

Archivos JSON

Se proporcionan cuatro archivos JSON que contienen datos para cargar en las tablas de DynamoDB: 1. Catálogo de Productos: Contiene información sobre productos. 2. Foro: Información sobre foros de AWS. 3. Hilo: Detalles sobre hilos en foros. 4. Respuesta: Información sobre respuestas a hilos.

Ejercicio Inicial

  1. Importar Paquetes: Importar los paquetes necesarios en Jupyter Notebook.
  2. Definir Variables: Definir variables para el laboratorio.
  3. Crear Tablas: Utilizar el método CreateTable de Boto3 para crear las tablas.

Ejemplo de Código para Crear Tablas

import boto3

def CreateTableDB(table_name, **kwargs):
    client = boto3.client('dynamodb')
    client.create_table(
        TableName=table_name,
        **kwargs
    )

# Ejemplo de uso
CreateTableDB('NombreTabla', AttributeDefinitions=[...], KeySchema=[...])

Conclusión

Al finalizar el laboratorio, se habrá creado y manipulado una base de datos en DynamoDB utilizando Python y Boto3. Se explorarán más conceptos en el siguiente video, donde se abordará el almacenamiento de archivos en la nube.


Almacenamiento de Objetos en Ingeniería de Datos

Descripción

El almacenamiento de objetos es un sistema fundamental en la ingeniería de datos, utilizado para almacenar y recuperar archivos de manera eficiente. Este documento resume los conceptos clave sobre el almacenamiento de objetos, su estructura, características y ventajas.

Conceptos Clave

1. Definición de Almacenamiento de Objetos

El almacenamiento de objetos trata los datos como objetos individuales, almacenándolos en una estructura plana, a diferencia de la jerarquía tradicional de carpetas y subcarpetas.

2. Características del Almacenamiento de Objetos

3. Identificación y Metadatos

4. Inmutabilidad

5. Control de Versiones

Ventajas del Almacenamiento de Objetos

Aplicaciones del Almacenamiento de Objetos

El almacenamiento de objetos es fundamental en arquitecturas modernas como: - Lagos de Datos - Casas de Lagos de Datos

Próximos Pasos

En el siguiente laboratorio, se trabajará con el almacenamiento de objetos de Amazon, creando consultas de datos y gestionando el control de versiones. Posteriormente, se explorarán los registros de aplicaciones como fuentes de datos en sistemas de streaming.

Tabla Resumen de Características

Característica Descripción
Estructura Plana, sin jerarquía
Tipos de Datos CSV, JSON, texto, vídeo, imágenes, audio, datos binarios
Identificación UUID para cada objeto
Metadatos Información adicional sobre el objeto
Inmutabilidad Objetos no modificables después de la escritura inicial
Control de Versiones Permite mantener múltiples versiones de un objeto
Escalabilidad Fácil ampliación para grandes volúmenes de datos
Durabilidad Replicación en múltiples zonas de disponibilidad
Costo Generalmente más económico que otras opciones de almacenamiento

Este documento proporciona una visión general del almacenamiento de objetos y su importancia en la ingeniería de datos, preparando el camino para un aprendizaje más profundo en los próximos cursos.


Resumen del Curso sobre Registros de Información en Sistemas

Descripción

En este curso se aborda el concepto de registros de información en sistemas y aplicaciones, su importancia en el monitoreo y depuración, así como su potencial como fuente de datos valiosa para análisis posteriores.

Contenido

1. Introducción a los Registros

2. Funciones de los Registros

3. Tipos de Datos en Registros

Los registros pueden incluir: - Actividades de usuarios (inicio de sesión, navegación). - Eventos del back-end (actualizaciones de bases de datos, errores).

4. Importancia de los Registros

5. Estructura de un Registro

Un registro típico incluye: - Identificador de usuario: Cuenta personal, dirección IP. - Descripción del evento: Qué ocurrió y su estado. - Marca de tiempo: Cuándo ocurrió el evento.

6. Formatos de Registro

Los datos de registro pueden ser: - Texto simple no estructurado. - Formato JSON o CSV. - Datos codificados binarios.

7. Niveles de Registro

Los registros pueden clasificarse según su nivel, que indica la gravedad de la información: | Nivel de Registro | Descripción | |-------------------|--------------------------------------| | Debug | Información de depuración | | Info | Información general | | Warn | Advertencias sobre posibles problemas| | Error | Errores que requieren atención | | Fatal | Fallos críticos que necesitan atención urgente |

8. Conclusión

Es fundamental que los ingenieros de datos comprendan cómo trabajar con registros, sus tipos, formatos y aplicaciones, ya que serán una fuente importante de datos en su trabajo.

Próximos Pasos

Acompáñame en el siguiente video para explorar algunos de los sistemas de streaming y su relación con los registros de información.


Resumen del Curso sobre Arquitecturas Basadas en Eventos

Descripción

En este curso, se exploran las arquitecturas basadas en eventos, centrándose en la diferencia entre el procesamiento por lotes y en flujo, así como en el papel de las colas de mensajes y las plataformas de transmisión en la ingeniería de datos. Se definen conceptos clave como eventos, mensajes y transmisiones, y se describen los componentes de un sistema de streaming.

Contenido

1. Procesamiento por Lotes vs. Procesamiento en Flujo

2. Terminología Clave

3. Componentes de un Sistema de Streaming

Componente Descripción
Productor de Eventos Genera los mensajes en una transmisión (ej. dispositivos IoT, aplicaciones).
Consumidor de Eventos Procesa cada mensaje individual (ej. servicios de pago, inventario).
Router de Eventos Intermediario que filtra y distribuye eventos entre productores y consumidores.

4. Funcionamiento de un Sistema de Streaming

5. Tipos de Sistemas de Streaming

6. Conclusiones

Los sistemas de streaming son fundamentales en la ingeniería de datos, permitiendo la ingesta, transformación y servicio de datos en tiempo real. En la próxima lección, se explorará cómo conectarse a los sistemas fuente.

Próximos Pasos

¡Nos vemos en la próxima lección!


Conexión a Sistemas Fuente en Ingeniería de Datos

Descripción

En esta lección, se abordarán los aspectos prácticos de la conexión a sistemas fuente en el contexto de la ingeniería de datos. Se explorarán los problemas comunes que pueden surgir al intentar acceder a datos y se discutirán las habilidades necesarias para resolver estos problemas. Además, se presentará una introducción a la seguridad en la nube y la creación de redes, con un enfoque en AWS.

Contenido

Problemas Comunes al Conectar a Sistemas Fuente

Los ingenieros de datos a menudo enfrentan problemas imprevistos al intentar acceder a datos. Algunos de estos problemas incluyen:

Importancia de la Resolución de Problemas

Resolver problemas de conexión es una habilidad fundamental para los ingenieros de datos. Durante las entrevistas, se recomienda evaluar la capacidad de los candidatos para solucionar problemas en un entorno simulado.

Conexión a Sistemas Fuente en AWS

Se presentará una demostración de cómo conectarse a diferentes sistemas fuente utilizando AWS. Los principios discutidos también son aplicables a otras plataformas en la nube.

Conceptos Clave de IAM

Creación de Redes en AWS

Se ofrecerá una descripción general de la creación de redes, incluyendo:

Concepto Descripción
VPC Virtual Private Cloud, permite crear redes privadas en la nube.
Subredes Segmentos de una VPC que permiten organizar y gestionar el tráfico.
Puertas de enlace Conectan la VPC con otras redes o Internet.
Enrutamiento Controla cómo se dirigen los datos dentro de la red.
Grupos de seguridad Reglas que controlan el acceso a instancias dentro de la VPC.

Desafío de Laboratorio

Al final de la lección, se presentará un ejercicio de laboratorio que simula un escenario real en el que los estudiantes deberán:

  1. Conectarse a un sistema fuente en la nube.
  2. Identificar y resolver problemas de conexión.
  3. Aplicar los conocimientos adquiridos sobre redes y seguridad.

Conclusión

Esta lección proporcionará una base sólida para entender cómo conectarse a sistemas fuente y resolver problemas comunes en la ingeniería de datos. Se espera que los estudiantes apliquen estos conceptos en el ejercicio de laboratorio y en situaciones del mundo real.


Conexión a Sistemas de Origen en AWS

Descripción

En este documento se resumen los conceptos y métodos para establecer conexiones a sistemas de origen en AWS, así como la importancia de la autenticación y la repetibilidad en estos procesos.

Contenido

1. Introducción

Para ingerir datos desde un sistema de origen, es fundamental establecer una conexión a la fuente de datos y verificar que se cuenta con los permisos necesarios para acceder a ella.

2. Métodos de Conexión

Existen varias formas de conectarse a bases de datos y otros recursos en AWS:

Método de Conexión Descripción
Consola de AWS Permite localizar la información de conexión (endpoint y puerto) de recursos como RDS. Es conveniente para tareas rápidas, pero no es repetible.
Interfaz de Línea de Comandos (CLI) Permite ejecutar comandos directamente para obtener información de conexión y conectarse a la base de datos. Es más programático, pero sigue siendo manual.
SDK (Boto3) Permite automatizar la conexión a sistemas fuente mediante código en un IDE o Jupyter Notebook. Mejora la repetibilidad y la automatización.
Conectores API Utiliza JDBC o ODBC para conectar aplicaciones a un DBMS y realizar consultas.

3. Proceso de Conexión

  1. Acceso a la Consola: Navegar a la consola de administración de AWS y localizar el recurso deseado.
  2. Obtener Información de Conexión: Encontrar el endpoint y el número de puerto.
  3. Autenticación: Usar credenciales (nombre de usuario y contraseña) para autenticar el acceso.
  4. Conexión: Utilizar la sintaxis adecuada del sistema de gestión de bases de datos (DBMS) para conectarse.

4. Consideraciones

5. Recursos Adicionales

Se recomienda revisar materiales adicionales sobre los métodos de conexión mencionados. En el siguiente video se abordará la Gestión de Identidad y Acceso y los permisos necesarios para operar en AWS.

Conclusión

Establecer conexiones a sistemas de origen en AWS es un proceso que puede realizarse de diversas maneras, cada una con sus ventajas y desventajas. La elección del método dependerá de la necesidad de repetibilidad, automatización y la complejidad de la carga de trabajo.


Resumen sobre la Administración de Identidades y Accesos (IAM) en la Nube

Descripción

La administración de identidades y accesos (IAM) es un aspecto crucial para los ingenieros de datos que trabajan con canalizaciones de datos en la nube. Este documento resume los conceptos clave sobre IAM, su importancia en la seguridad de los datos y los componentes básicos que se utilizan en plataformas como AWS.

Importancia de IAM

Prácticas Recomendadas

Componentes de IAM en AWS

A continuación se presentan los componentes básicos de IAM en AWS:

Componente Descripción
Usuario Raíz Crea la cuenta en AWS y tiene acceso sin restricciones a todos los recursos.
Usuarios de IAM Cuentan con permisos específicos para ciertos recursos.
Grupos de IAM Conjuntos de usuarios a los que se les puede adjuntar políticas.
Políticas Documentos JSON que definen los permisos y recursos que tienen los grupos o usuarios.
Roles de IAM Permisos temporales asumidos por usuarios o aplicaciones para realizar acciones específicas.

Ejemplo de Políticas IAM

Una política de IAM puede permitir a un usuario acceder a recursos específicos. Por ejemplo: - Permitir acceso a cubos de S3 cuyo nombre comience con "ingeniería de datos de DLai". - Permitir acciones como enumerar o obtener objetos de esos cubos.

Conclusión

La administración de identidades y accesos es esencial para la seguridad de las canalizaciones de datos en la nube. Comprender los componentes de IAM y aplicar prácticas recomendadas puede ayudar a prevenir desastres de datos y proteger la información confidencial.

Recursos Adicionales

Este resumen proporciona una visión general de la importancia de IAM y sus componentes en la gestión segura de datos en la nube.


Resumen del Curso: Arquitectura de Canalizaciones de Datos en la Nube

Descripción

Este documento resume los conceptos clave sobre la creación de canalizaciones de datos en arquitecturas basadas en la nube, centrándose en la importancia de las redes y la infraestructura subyacente, especialmente en el contexto de AWS.

Conceptos Clave

  1. Red de Recursos Conectados
  2. Al crear una canalización de datos, se establece una red de recursos conectados.
  3. La configuración de esta red es crucial para el flujo correcto de datos.

  4. Principios Básicos de Redes

  5. Las redes son conjuntos de dispositivos conectados que comparten datos.
  6. Los principios de redes en la nube son similares entre los principales proveedores, como AWS.

  7. Infraestructura de la Nube

  8. La computación en la nube se basa en centros de datos físicos distribuidos globalmente.
  9. AWS tiene una red global que se organiza en regiones y zonas de disponibilidad.

Estructura de AWS

Término Descripción
Región Área geográfica que contiene clústeres de zonas de disponibilidad.
Zona de Disponibilidad Conjunto de uno o más centros de datos con redundancia en energía y conectividad.
VPC (Nube Privada Virtual) Red personalizada dentro de una región que abarca varias zonas de disponibilidad.

Consideraciones al Crear Recursos en la Nube

Configuración de Redes en la Nube

Importancia de la Configuración de Red

Próximos Pasos


Este resumen proporciona una visión general de los aspectos fundamentales de la creación de canalizaciones de datos en la nube, enfatizando la importancia de la infraestructura de red y las consideraciones necesarias para una implementación exitosa.


Creación de Redes en AWS para Ingenieros de Datos

Descripción

Este documento resume los conceptos básicos sobre la creación de redes en AWS, específicamente en el contexto de la implementación de sistemas de datos. Se abordarán elementos clave como las VPC (Virtual Private Clouds), subredes, puertas de enlace, tablas de rutas, listas de control de acceso y grupos de seguridad. Además, se presentará un escenario práctico para la implementación de una base de datos Amazon RDS y una instancia Amazon EC2.

Contenido

Conceptos Básicos

  1. Amazon Virtual Private Cloud (VPC):
  2. Permite crear una red virtual en la nube de AWS.
  3. Abarca varias zonas de disponibilidad (AZ) en una región.

  4. Subredes:

  5. Divisiones más pequeñas del espacio IP privado de la VPC.
  6. Se utilizan para agrupar recursos según requisitos de seguridad y acceso.

  7. Puertas de Enlace:

  8. Facilitan la comunicación entre la VPC y el mundo exterior (Internet).

  9. Tablas de Rutas:

  10. Controlan el tráfico de red dentro de la VPC.

  11. Listas de Control de Acceso (ACL):

  12. Definen qué tráfico puede entrar y salir de las subredes.

  13. Grupos de Seguridad:

  14. Actúan como un firewall virtual para controlar el tráfico hacia y desde las instancias.

Escenario Práctico

Diagrama de Red

+---------------------+
|        VPC          |
| 10.0.0.0/16        |
|                     |
|  +---------------+  |
|  | Subred Pública|  |
|  | 10.0.1.0/24   |  |
|  +---------------+  |
|                     |
|  +---------------+  |
|  | Subred Privada|  |
|  | 10.0.2.0/24   |  |
|  +---------------+  |
|                     |
|  +---------------+  |
|  | Subred Pública|  |
|  | 10.0.3.0/24   |  |
|  +---------------+  |
|                     |
|  +---------------+  |
|  | Subred Privada|  |
|  | 10.0.4.0/24   |  |
|  +---------------+  |
+---------------------+

Pasos para la Creación de la VPC y Subredes

  1. Crear una VPC:
  2. Asignar un nombre descriptivo.
  3. Definir el rango de direcciones IP privadas (ej. 10.0.0.0/16).

  4. Crear Subredes:

  5. Crear al menos una subred pública y una privada por cada zona de disponibilidad.
  6. Asignar rangos CIDR a las subredes:

Notación CIDR

Consideraciones Finales

Próximos Pasos


Este documento proporciona una base sólida para entender la creación de redes en AWS y su aplicación en la ingeniería de datos.


Conectividad a Internet en una VPC de AWS

Descripción

En este documento se resumen los conceptos y pasos necesarios para habilitar la conectividad a Internet en una VPC (Virtual Private Cloud) de AWS, utilizando puertas de enlace de Internet y puertas de enlace NAT. Se explican las consideraciones sobre la ubicación de los recursos y la importancia de la seguridad en la configuración de la red.

Contenido

1. Introducción

Al crear una VPC, se pueden establecer subredes públicas y privadas. Sin embargo, por defecto, estas subredes no tienen conectividad a Internet. Para permitir el acceso a Internet, es necesario implementar puertas de enlace de Internet y NAT.

2. Consideraciones sobre la conectividad

3. Puerta de enlace de Internet

4. Puerta de enlace NAT

5. Balanceador de carga de aplicaciones (ALB)

6. Pasos para la implementación

Paso Descripción
1 Crear una puerta de enlace de Internet y conectarla a la VPC.
2 Crear puertas de enlace NAT en cada subred pública.
3 Configurar las tablas de rutas para permitir el tráfico adecuado.
4 Definir reglas de seguridad para proteger la VPC.

7. Creación de la puerta de enlace de Internet

  1. Acceder a la consola de administración de AWS.
  2. Buscar "VPC" en la barra de búsqueda.
  3. Seleccionar "Puertas de enlace a Internet" en el panel de navegación.
  4. Hacer clic en "Crear puerta de enlace de Internet".
  5. Asignar un nombre y crear la puerta de enlace.
  6. Conectar la puerta de enlace a la VPC seleccionando "Adjuntar puerta de enlace a Internet".

8. Creación de puertas de enlace NAT

  1. Desde el panel de navegación, seleccionar "Puertas de enlace NAT".
  2. Hacer clic en "Crear puerta de enlace NAT".
  3. Asignar un nombre y seleccionar la subred pública correspondiente.
  4. Configurar una dirección IP elástica.
  5. Repetir el proceso para crear una segunda puerta de enlace NAT en la otra subred pública.

9. Conclusión

Al finalizar estos pasos, se habrá configurado una VPC con conectividad segura a Internet y un control de acceso sólido. En los siguientes videos, se abordarán los detalles de la configuración de las tablas de rutas y las reglas de seguridad.


Este documento proporciona una guía clara sobre cómo habilitar la conectividad a Internet en una VPC de AWS, asegurando que se sigan las mejores prácticas de seguridad y configuración.


Configuración de Tablas de Rutas en AWS

Descripción

En este documento se resumen los pasos necesarios para configurar las tablas de rutas en una VPC de AWS, permitiendo la conectividad a Internet para subredes públicas y privadas. Se explican los conceptos básicos de las tablas de rutas y se detallan los procedimientos para su creación y asociación.

Conceptos Clave

Tablas de Rutas

Las tablas de rutas son esenciales para dirigir el tráfico de red dentro de la VPC. Cada subred puede asociarse a una tabla de rutas que contiene reglas que determinan hacia dónde se dirige el tráfico.

Tabla de Rutas Predeterminada

Configuración de Tablas de Rutas

  1. Subredes Públicas:
  2. Configurar la tabla de rutas para dirigir todo el tráfico de Internet a la puerta de enlace de Internet.

  3. Subredes Privadas:

  4. Dirigir el tráfico con destino a Internet a la puerta de enlace NAT de la subred pública.

Procedimiento de Configuración

Creación de Tablas de Rutas

Nombre de la Tabla Subred Asociada
public-route-table-1 public-subnet-1
public-route-table-2 public-subnet-2
private-route-table-1 private-subnet-1
private-route-table-2 private-subnet-2
  1. Crear Tabla de Rutas:
  2. Desde el panel de control de la VPC, seleccionar "Tablas de rutas" y luego "Crear tabla de rutas".
  3. Asignar un nombre y asociar la tabla a la subred correspondiente.

Configuración de Rutas

Subredes Públicas

Subredes Privadas

Resumen de Rutas

Tipo de Subred Destino Objetivo
Pública 0.0.0.0/0 Puerta de enlace de Internet
Privada 0.0.0.0/0 Puerta de enlace NAT

Conclusión

Las tablas de rutas están configuradas para gestionar el tráfico interno y externo de manera efectiva. Las subredes públicas pueden comunicarse con Internet, mientras que las subredes privadas pueden establecer conexiones salientes de forma segura. En el siguiente video, se abordarán configuraciones adicionales de red, como grupos de seguridad y ACL de red, para mejorar la seguridad de la VPC.


Resumen del Curso: Configuración de Redes en AWS

Descripción

En este curso, se abordaron conceptos fundamentales sobre la configuración de redes en Amazon Web Services (AWS), centrándose en la gestión de tráfico, grupos de seguridad y listas de control de acceso (ACL) para garantizar la conectividad y seguridad de las instancias en una Virtual Private Cloud (VPC).

Contenidos Clave

1. Tablas de Enrutamiento

2. Grupos de Seguridad

3. Listas de Control de Acceso (ACL)

4. Diagrama de Conectividad

5. Solución de Problemas de Conectividad

Ejemplo de Configuración de Grupos de Seguridad

Nombre del Grupo de Seguridad Tipo de Tráfico Puerto Fuente
Albsg HTTP 80 0.0.0.0/0
Albsg HTTPS 443 0.0.0.0/0
RDS-SG TCP 3306 Grupo EC2-SG

Conclusión

Este curso proporciona una base sólida para la gestión de redes en AWS, enfatizando la importancia de la configuración adecuada de las tablas de enrutamiento, grupos de seguridad y ACL. En el próximo laboratorio, se aplicarán estos conceptos para solucionar problemas de conectividad en bases de datos, utilizando los conocimientos adquiridos.


Este resumen en formato Markdown incluye los conceptos clave, ejemplos y una tabla para facilitar la comprensión de la configuración de redes en AWS.


Resumen del Laboratorio de Conexión a Base de Datos RDS desde EC2

Descripción

En este laboratorio, se aprenderá a conectarse a una base de datos RDS desde una instancia EC2, crear una tabla y cargar datos desde un archivo CSV almacenado en un bucket de S3. Se abordarán problemas comunes de conexión y permisos que pueden surgir durante el proceso.

Contenido del Laboratorio

Objetivos

Pasos a Seguir

  1. Conexión a la Base de Datos RDS
  2. Acceder a la consola de AWS y buscar RDS.
  3. Hacer clic en "Bases de datos" y anotar el punto final de la base de datos.
  4. Conectarse a la instancia EC2 etiquetada como "bastion host".

  5. Instalación de psql

  6. Ejecutar el comando para instalar psql, la interfaz de línea de comandos para PostgreSQL.
  7. Conectarse a la base de datos utilizando el punto final y las credenciales proporcionadas.

  8. Solución de Problemas de Conexión

  9. Verificar la configuración de red de la instancia EC2 y la base de datos RDS.
  10. Asegurarse de que ambas instancias estén en la misma VPC.
  11. Comprobar los grupos de seguridad y agregar reglas de entrada si es necesario.

  12. Creación de la Tabla

  13. Descargar el archivo SQL que contiene el esquema de la tabla.
  14. Ejecutar el comando para crear la tabla en la base de datos.

  15. Carga de Datos desde S3

  16. Descargar el archivo CSV desde el bucket de S3.
  17. Verificar y modificar los permisos del bucket para permitir la lectura desde la instancia EC2.
  18. Ejecutar el script de Python para descargar el archivo CSV.

  19. Copia de Datos a la Tabla

  20. Utilizar el comando de copia para transferir los datos del archivo CSV a la tabla creada.
  21. Ejecutar una sentencia SELECT para verificar que los datos se han cargado correctamente.

Problemas Comunes y Soluciones

Problema Solución
Fallo en la conexión a la base de datos Verificar que la instancia EC2 y la base de datos RDS estén en la misma VPC.
Problemas de permisos en S3 Modificar la política del bucket de S3 para permitir el acceso a la instancia EC2.
Error de autenticación Asegurarse de que se está utilizando la contraseña correcta para la base de datos.

Consejos

Conclusión

Este laboratorio proporciona una experiencia práctica en la conexión a bases de datos y la manipulación de datos en AWS. Los problemas de conexión y permisos son comunes en el trabajo de un ingeniero de datos, y este ejercicio ayuda a desarrollar habilidades para resolverlos eficazmente.


Resumen del Curso sobre Sistemas de Origen, Ingestión y Canalizaciones de Datos

Descripción

Este documento resume los conceptos clave y las actividades de la primera semana del curso sobre sistemas de origen, ingesta y canalizaciones de datos. Se abordan los fundamentos de la ingeniería de datos, centrándose en la generación de datos y la conexión a sistemas de origen.

Contenidos Clave

Sistemas de Origen

Conexión a Fuentes de Datos

Problemas Comunes

Próximos Pasos

Conclusión

La primera semana del curso ha proporcionado una base sólida sobre los sistemas de origen y su importancia en la ingeniería de datos. Se espera que los participantes se sientan más cómodos y preparados para abordar la ingesta de datos en las próximas sesiones.