Conexión Fuente AWS S3
Requisitos Previos
Antes de configurar la conexión de origen AWS S3 en Crestone, asegúrese de contar con lo siguiente:
Requisito Principal: Un bucket de AWS S3 activo que contenga los archivos que desea extraer. Crestone se conecta mediante una clave de acceso de IAM (Access Key ID + Secret Access Key) — no se requieren roles de instancia EC2 ni tokens de sesión temporales.
Nota: Crestone utiliza el SDK
boto3en modo cliente estándar. No se requieren bibliotecas cliente adicionales ni una puerta de enlace (gateway) local.
Formatos de archivo admitidos:
| Formato | Extensión | Notas |
|---|---|---|
| CSV | .csv | Delimitador y fila de encabezado configurables |
| TSV | .tsv | Delimitado por tabulaciones, mismas opciones que CSV |
| JSON | .json | Arreglo de objetos planos |
| Parquet | .parquet | El esquema se lee directamente del archivo |
| Excel (Open XML) | .xlsx | Lectura mediante openpyxl; nombre de hoja opcional |
| Excel (97-2003) | .xls | Lectura mediante xlrd; nombre de hoja opcional |
Otros tipos de archivos (ej. .txt, .zip, .gz) no se listan al explorar el bucket.
Información Requerida:
| Campo | Descripción |
|---|---|
| Bucket Name | Nombre del bucket de S3 (ej. my-data-lake) |
| Region | Región de AWS donde se aloja el bucket (ej. us-east-1) |
| Access Key ID | ID de la clave de acceso del usuario IAM (ej. AKIAIOSFODNN7EXAMPLE) |
| Secret Access Key | Clave de acceso secreta de IAM asociada al Access Key ID anterior |
Consejo: Puede utilizar las mismas credenciales de AWS tanto para el origen (extracción de archivos) como para el destino (carga de archivos); Crestone los trata como tipos de conexión independientes al crearlos, pero aceptan el mismo formato de credenciales.
Paso de Pre-Verificación
Antes de configurar la conexión en Crestone, verifique sus credenciales y el acceso al bucket mediante la AWS CLI o la Consola de AWS:
- En la Consola de AWS, vaya a S3 y confirme que el bucket de destino exista y contenga los archivos que desea extraer.
- Vaya a IAM → Users → su usuario → Security credentials y confirme que la clave de acceso esté en estado Active.
- Verifique que el usuario IAM tenga al menos los siguientes permisos de S3 sobre el bucket:
s3:HeadBuckets3:ListBuckets3:GetObject
Una política IAM mínima para el acceso de origen en Crestone:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:HeadBucket",
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::my-data-lake",
"arn:aws:s3:::my-data-lake/*"
]
}
]
}Pasos de Configuración
Siga estos pasos para crear una nueva conexión de origen AWS S3 en Crestone:
- Navegue a Connections en la barra de navegación superior.
- Seleccione la pestaña Source.
- Haga clic en el botón + para crear una nueva conexión.
- Complete el campo Connection Name con un nombre descriptivo (ej.
AWS S3 - Data Lake). - En el menú desplegable Source Type, seleccione AWS.
- Complete el formulario de credenciales:
- Bucket Name — nombre del bucket de S3
- Region — región de AWS donde se encuentra alojado el bucket
- Access Key ID — ID de clave de acceso de IAM
- Secret Access Key — clave de acceso secreta de IAM
- Haga clic en Test Connection para validar que Crestone pueda comunicarse con el bucket.
- Una vez superada la prueba, haga clic en Create Source para guardar la conexión.
Edición de una Conexión Existente
Para actualizar las credenciales de una conexión de origen AWS S3 existente:
- Navegue a Connections y localice su origen AWS S3.
- Haga clic en Edit.
- Modifique los campos deseados en el formulario de credenciales.
- Haga clic en Test Connection para verificar las nuevas credenciales.
- Haga clic en Confirm para guardar los cambios.
Uso de AWS S3 como Fuente en un Nodo de Extracción
Una vez creada la conexión, puede utilizarla como origen de un Extraction Node. AWS S3 utiliza un modelo de bucket/objeto — no hay esquemas ni tablas.
- Abra o cree un Extraction Node y diríjase a la pestaña Source.
- En Select Source, elija su conexión AWS S3.
- El Bucket mostrado es el almacenado en las credenciales de la conexión; no se puede modificar aquí.
- (Opcional) Utilice el campo Folder / prefix filter para acotar la lista de archivos (ej.
data/2026/) y haga clic en Filter. - En File, elija el objeto a extraer. Solo se listan los archivos con una extensión admitida.
- El File format se detecta automáticamente a partir de la extensión del archivo, pero se puede anular:
- Para CSV/TSV: configure el Delimiter y active/desactive File has header row.
- Para Excel (
.xlsx/.xls): opcionalmente configure el Sheet name (déjelo en blanco para usar la primera hoja). - JSON y Parquet no requieren opciones adicionales.
- La tarjeta de resumen muestra el archivo seleccionado, el formato detectado y las opciones elegidas.
- El panel de Preview muestra una muestra de los datos que se extraerán.
Nota: Los archivos de Excel se leen con
pandas(motoropenpyxlpara.xlsx, motorxlrdpara.xls). Todos los valores de celda se leen como cadenas de texto para evitar problemas de análisis de números y fechas dependientes de la configuración regional; la inferencia de tipos se realiza posteriormente en el destino.
Manejo de Tipos de Datos
El manejo de tipos depende del formato del archivo de origen:
| Formato | Comportamiento de tipos |
|---|---|
| CSV / TSV | Todas las columnas se leen como tipos inferidos por Polars; cadenas vacías, NULL y null se tratan como valores ausentes |
| JSON | Tipos inferidos a partir de los valores JSON (string, number, boolean) |
| Parquet | Los tipos de columna nativos se conservan tal como se almacenan en el archivo |
Excel (.xlsx / .xls) | Todas las celdas se leen como strings (dtype=str); las celdas en blanco se convierten en null |
Los nombres de columna se sanitizan automáticamente antes de la extracción: los caracteres especiales se reemplazan por _, los nombres no pueden comenzar con un dígito y los nombres duplicados se desambiguan (ej. name, name_1). Esto garantiza la compatibilidad con todos los destinos admitidos (SQL Server, Snowflake, Oracle, PostgreSQL, etc.).
Problemas Frecuentes
| Problema | Causa Posible | Solución |
|---|---|---|
Test connection fails con 403 Forbidden | El usuario IAM carece del permiso s3:HeadBucket | Adjunte la política IAM mínima descrita en la sección de Requisitos Previos |
Test connection fails con NoSuchBucket | Nombre de bucket o región incorrectos | Verifique el nombre del bucket y la región en la Consola de AWS |
| No se listan archivos en el bucket | Todos los archivos tienen extensiones no admitidas, o el filtro de prefijo es demasiado restrictivo | Limpie el filtro de prefijo; confirme que el bucket contenga archivos .csv, .tsv, .json, .parquet, .xlsx o .xls |
| La lista de archivos es muy extensa y tarda en cargar | Bucket grande con muchos objetos | Utilice el filtro de prefijo para restringir el listado a una carpeta específica (ej. reports/2026/) |
| La vista previa muestra "No data found" para un archivo Excel | Nombre de hoja incorrecto o discrepancia de formato | Deje Sheet name en blanco para usar la primera hoja, o verifique la ortografía del nombre de la hoja |
| Falla la ejecución del job tras una previsualización exitosa | Problema transitorio de acceso a S3 u objeto eliminado entre la vista previa y la ejecución | Vuelva a ejecutar el job; verifique que el objeto aún exista en el bucket |
InvalidAccessKeyId en Test Connection | El Access Key ID es incorrecto o la clave ha sido eliminada | Regenere la clave de acceso en IAM → Users → Security credentials |
SignatureDoesNotMatch en Test Connection | La Secret Access Key es incorrecta | Vuelva a copiar la Secret Access Key exactamente como se mostró al crearla (no se puede recuperar nuevamente desde la consola de AWS) |
Permisos Requeridos
Crestone solo realiza operaciones de lectura cuando utiliza S3 como fuente:
| Operación | Llamada a la API de AWS |
|---|---|
| Test connection | s3:HeadBucket |
| Listar objetos en el bucket | s3:ListBucket |
| Descargar un objeto para preview/extracción | s3:GetObject |
No se requieren permisos de escritura (s3:PutObject, s3:DeleteObject) para conexiones exclusivas de origen. Si también utiliza el mismo bucket como destino, agregue s3:PutObject a la política.
Consejo: Para mayor seguridad, cree un usuario de IAM dedicado con acceso de solo lectura al bucket específico utilizado por Crestone como origen, independiente del usuario de IAM utilizado para conexiones de destino S3.