Conexión Fuente Azure Storage
Requisitos Previos
Antes de configurar la conexión de origen Azure Storage en Crestone, asegúrese de contar con lo siguiente:
Requisito Principal: Una cuenta de Azure Storage activa (Blob Storage) con al menos un contenedor que albergue los archivos que desea extraer. Crestone se conecta mediante la clave de acceso (access key) de la cuenta — no se requiere registro de aplicaciones en Azure AD ni identidades administradas.
Nota: Crestone utiliza directamente el SDK de Azure Storage Blob. 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) no se listan al explorar un contenedor.
Información Requerida:
| Campo | Descripción |
|---|---|
| Account Name | Nombre de la cuenta de Azure Storage (ej. mystorageaccount) |
| Account Key | Clave de acceso para la cuenta de almacenamiento (disponible en Azure Portal → Storage Account → Access keys) |
Consejo: Puede utilizar la misma conexión de Azure Storage 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 las mismas credenciales.
Paso de Pre-Verificación
Antes de configurar la conexión en Crestone, verifique el nombre de la cuenta y la clave mediante Azure Storage Explorer o el Portal de Azure:
- En el Portal de Azure, vaya a su Storage Account → Access keys.
- Confirme que
key1(okey2) esté activa y copie su valor. - Abra el Container de destino y confirme que los archivos que desea extraer sean visibles y legibles.
Pasos de Configuración
Siga estos pasos para crear una nueva conexión de origen Azure Storage 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.
Azure Storage - Reportes). - En el menú desplegable Source Type, seleccione Azure Storage.
- Complete el formulario de credenciales:
- Account Name — nombre de su cuenta de Azure Storage
- Account Key — clave de acceso de la cuenta
- Haga clic en Test Connection para validar que Crestone pueda comunicarse con la cuenta de almacenamiento.
- 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 Azure Storage existente:
- Navegue a Connections y localice su origen Azure Storage.
- 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 Azure Storage como Fuente en un Nodo de Extracción
Una vez creada la conexión, puede utilizarla como origen de un Extraction Node. Azure Storage utiliza un modelo de contenedor/archivo — 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 Azure Storage.
- En Container, elija el contenedor que alberga el archivo.
- (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 blob/archivo 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, etc.).
Problemas Frecuentes
| Problema | Causa Posible | Solución |
|---|---|---|
Container not found | Nombre de contenedor incorrecto o contenedor eliminado | Verifique que el contenedor exista en la cuenta de almacenamiento y que el nombre coincida exactamente |
| No se listan archivos en un contenedor | Todos los archivos tienen extensiones no admitidas, o un filtro de prefijo es demasiado restrictivo | Limpie el filtro de prefijo; confirme que el contenedor contenga archivos .csv, .tsv, .json, .parquet, .xlsx o .xls |
| La vista previa muestra "No data found" para un archivo Excel | Nombre de hoja incorrecto o discrepancia de motor para archivo .xls | Deje Sheet name en blanco para usar la primera hoja, o verifique la ortografía del nombre de la hoja |
File contains no valid workbook part | Archivo .xls procesado con el motor .xlsx | Corregido en la versión actual: Crestone selecciona automáticamente el motor (xlrd frente a openpyxl) según la extensión del archivo |
| Falla la ejecución del job tras una previsualización exitosa | El conector de destino lee el archivo extraído como CSV en lugar de Parquet | Corregido en la versión actual: los conectores de destino detectan archivos .parquet escritos por la extracción de Azure Storage y los leen en consecuencia |
invalid utf-8 sequence durante la carga a un destino SQL | El destino intentó procesar un archivo Parquet como CSV | Misma corrección anterior; asegúrese de estar ejecutando la versión actual del backend |
| Fallo de autenticación en Test Connection | Nombre de cuenta o clave incorrectos | Vuelva a copiar el Account Key desde Azure Portal → Storage Account → Access keys (key1 o key2) |
Permisos Requeridos
La clave de la cuenta de Azure Storage utilizada por Crestone otorga acceso completo de lectura y escritura a la cuenta de almacenamiento de manera predeterminada (es una clave maestra, no una credencial con alcance limitado). Para la extracción de origen, Crestone solo realiza operaciones de lectura (list_containers, list_blobs, download_blob).
Si desea limitar el acceso de Crestone a solo lectura en contenedores específicos, utilice una Firma de Acceso Compartido (SAS) en lugar de la clave de cuenta, con alcance a:
- Servicios permitidos: Blob
- Tipos de recursos permitidos: Contenedor, Objeto
- Permisos permitidos: Lectura, Lista
Nota: Actualmente, el conector de Azure Storage de Crestone no admite tokens SAS; únicamente se admite la autenticación por nombre de cuenta + clave de cuenta. Si requiere un acceso más restringido, cree una cuenta de almacenamiento dedicada para los datos que Crestone extraerá.