No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

13 Días
12 Hrs
4 Min
59 Seg

Carga de datos: subida de archivos a AWS Redshift

17/25
Recursos

Aportes 7

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El profe parece que esta hablando para el solamente, va muy rapido y se hace dificil seguir lo que esta haciendo… ojala mejoren estos cursos.

Por favor editar mejor el video en el minuto 3:46, ya que desaparece de la nada el ciclo que estaba intentando crear 😕

Ha sido un desafío seguir el curso, pero sin duda muy útil, he podido interiorizar conceptos, y analizar detalles en muchas partes del curso.

Como menciona el profesor que hay distintos targets a los que podemos cargar la información, hubiera estado perfecto que se mostrara como se puedo ingestar la información a otras nubes o bases de datos y no solo “casarse” una tecnología…

Subir datos a **AWS Redshift** implica un proceso que usualmente consta de los siguientes pasos: 1. **Preparar los datos**: Asegúrate de que los datos están en un formato compatible, como archivos CSV, JSON, Parquet, o Avro. 2. **Subir los datos a S3**: AWS Redshift carga datos desde Amazon S3, así que primero necesitas colocar tus archivos en un bucket de S3. 3. **Cargar datos a Redshift**: Usa la instrucción `COPY` para transferir los datos desde S3 a tu tabla de Redshift. ### Prerrequisitos 1. **Crear una base de datos y tablas en Redshift**: * Necesitas un clúster configurado y una tabla creada en Redshift donde cargar los datos. 2. **Configurar un bucket en S3**: * Define un bucket donde alojarás los datos que serán importados. 3. **Credenciales AWS**: * Necesitarás una IAM Role o Access Key/Secret Access Key con permisos para acceder a S3 y Redshift. ### Proceso detallado #### 1. **Preparar los datos y subirlos a S3** Puedes usar **AWS CLI** para subir datos a tu bucket de S3: aws s3 cp /path/to/your/data.csv s3://your-bucket-name/data.csv O, si estás usando Python, puedes emplear la librería `boto3`: import boto3 \# Configurar el cliente de S3 s3 = boto3.client('s3') \# Subir archivo s3.upload\_file('data.csv', 'your-bucket-name', 'data.csv') print("Archivo subido exitosamente a S3.") #### 2. **Configurar conexión a Redshift** Usa `psycopg2` o SQLAlchemy para conectarte al clúster de Redshift: from sqlalchemy import create\_engine \# Datos de conexión DATABASE = "your\_database" USER = "your\_user" PASSWORD = "your\_password" HOST = "your-cluster-endpoint" PORT = "5439" \# Crear la conexión engine = create\_engine(f"postgresql+psycopg2://{USER}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}") connection = engine.connect() print("Conexión exitosa a Redshift.") #### 3. **Crear la tabla en Redshift** Define la estructura de tu tabla para que coincida con los datos que cargarás: CREATE TABLE your\_table ( column1 VARCHAR(50), column2 INT, column3 DATE ); #### 4. **Cargar datos desde S3 a Redshift** Usa la instrucción `COPY` para transferir datos desde S3 a tu tabla en Redshift: \# Comando SQL para copiar los datos copy\_command = """ COPY your\_table FROM 's3://your-bucket-name/data.csv' IAM\_ROLE 'arn:aws:iam::your-account-id:role/your-redshift-role' FORMAT AS CSV IGNOREHEADER 1; """ \# Ejecutar el comando connection.execute(copy\_command) print("Datos cargados exitosamente en Redshift.") ### Consideraciones importantes 1. **Rol IAM**: * El rol asociado a tu clúster Redshift debe tener permisos para acceder al bucket S3. * Política mínima necesaria:{ "Version": "2012-10-17", "Statement": \[ { "Effect": "Allow", "Action": "s3:\*", "Resource": "arn:aws:s3:::your-bucket-name/\*" } ] } 2. **Validación**: * Después de cargar los datos, verifica que se cargaron correctamente:SELECT COUNT(\*) FROM your\_table; 3. **Formato del archivo**: * Asegúrate de que el archivo en S3 está correctamente formateado y coincide con las columnas de la tabla. 4. **Errores comunes**: * **Permisos insuficientes**: Verifica que el rol IAM tiene acceso al bucket S3 y permisos COPY en Redshift. * **Formato incorrecto**: Si el archivo CSV tiene delimitadores inconsistentes, podrías recibir errores. ### Alternativa: Usar AWS Data Wrangler La librería `awswrangler` simplifica el proceso de carga desde Pandas DataFrame a Redshift: import awswrangler as wr import pandas as pd \# Crear DataFrame df = pd.read\_csv('data.csv') \# Cargar el DataFrame a Redshift wr.redshift.copy\_from\_files( paths=\["s3://your-bucket-name/data.csv"], con=engine.raw\_connection(), schema="public", table="your\_table", iam\_role="arn:aws:iam::your-account-id:role/your-redshift-role", format="csv", mode="overwrite" ) Con este enfoque, puedes integrar Redshift con tus flujos de datos en Python de manera más sencilla.
![](https://static.platzi.com/media/user_upload/image-92d06eaa-a679-4b81-8a47-89cbf7aa8450.jpg) A alguien le salio este error solo me sale cuando cargo trades
Pude cargar todas las tablas menos la tabla "trades" intenté hacerlo por lotes y tampoco, la verdad no sé qué otra alternativa hay.