Conexión Fuente GCP Cloud Storage

Storage|16 min de lectura|Actualizado: 18 sept 2026

Requisitos Previos

Antes de configurar la conexión de origen GCP Cloud Storage en Crestone, asegúrese de contar con lo siguiente:

Requisito Principal: Un bucket de GCP Cloud Storage activo que contenga los archivos que desea extraer. Crestone se conecta mediante una clave JSON de cuenta de servicio (service account) — no se requieren cuentas de usuario ni flujos de navegador OAuth.

Nota: Crestone utiliza el SDK google-cloud-storage con Client.from_service_account_info(). No se requieren bibliotecas cliente adicionales ni una puerta de enlace (gateway) local.

Formatos de archivo admitidos:

FormatoExtensiónNotas
CSV.csvDelimitador y fila de encabezado configurables
TSV.tsvDelimitado por tabulaciones, mismas opciones que CSV
JSON.jsonArreglo de objetos planos
Parquet.parquetEl esquema se lee directamente del archivo
Excel (Open XML).xlsxLectura mediante openpyxl; nombre de hoja opcional
Excel (97-2003).xlsLectura mediante xlrd; nombre de hoja opcional

Otros tipos de archivos (ej. .txt, .zip, .gz) no se listan al explorar el bucket.

Información Requerida:

CampoDescripción
Service Account JSONArchivo de clave JSON completo descargado de GCP — arrástrelo y suéltelo en el formulario de credenciales
Project IDExtraído automáticamente de la clave JSON; identifica el proyecto de GCP

Consejo: Puede utilizar la misma cuenta de servicio tanto para el origen (extracción de archivos) como para el destino (carga de archivos) si la cuenta cuenta con los permisos necesarios en ambas operaciones. Crestone los trata como tipos de conexión independientes al crearlos.


Paso de Pre-Verificación

Antes de configurar la conexión en Crestone, verifique su cuenta de servicio y el acceso al bucket en la Consola de GCP:

  1. Vaya a Cloud Storage en la Consola de GCP y confirme que el bucket de destino exista y contenga los archivos que desea extraer.
  2. Vaya a IAM & Admin → Service Accounts y confirme que la cuenta de servicio exista y tenga una clave activa.
  3. Verifique que la cuenta de servicio tenga los permisos requeridos (consulte Permisos Requeridos más abajo).

Cómo crear una clave de cuenta de servicio (si no dispone de una):

  1. Vaya a IAM & Admin → Service Accounts.
  2. Seleccione (o cree) la cuenta de servicio que utilizará Crestone.
  3. Haga clic en Keys → Add key → Create new key → JSON.
  4. Descargue el archivo .json — este es el archivo que subirá a Crestone.

Importante: Mantenga seguro el archivo de clave JSON. Concede acceso a su proyecto de GCP. Revóquelo desde IAM & Admin → Service Accounts → Keys si alguna vez se ve comprometido.


Pasos de Configuración

Siga estos pasos para crear una nueva conexión de origen GCP Cloud Storage en Crestone:

  1. Navegue a Connections en la barra de navegación superior.
  2. Seleccione la pestaña Source.
  3. Haga clic en el botón + para crear una nueva conexión.
  4. Complete el campo Connection Name con un nombre descriptivo (ej. GCP Storage - Data Lake).
  5. En el menú desplegable Source Type, seleccione GCP Storage.
  6. En el formulario de credenciales, arrastre y suelte (o haga clic para examinar) su archivo de clave JSON de cuenta de servicio. El Project ID se completa automáticamente.
  7. Haga clic en Test Connection para validar que Crestone pueda comunicarse con el proyecto de GCP.
  8. 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 GCP Cloud Storage existente:

  1. Navegue a Connections y localice su origen GCP Storage.
  2. Haga clic en Edit.
  3. Suelte el nuevo archivo de clave JSON de la cuenta de servicio en el área de credenciales.
  4. Haga clic en Test Connection para verificar las nuevas credenciales.
  5. Haga clic en Confirm para guardar los cambios.

Uso de GCP Cloud Storage como Fuente en un Nodo de Extracción

Una vez creada la conexión, puede utilizarla como origen de un Extraction Node. GCP Cloud Storage utiliza un modelo de bucket/blob — no hay esquemas ni tablas.

  1. Abra o cree un Extraction Node y diríjase a la pestaña Source.
  2. En Select Source, elija su conexión GCP Cloud Storage.
  3. En Bucket, seleccione el bucket de GCS del que desea leer. Se listan todos los buckets accesibles para la cuenta de servicio.
  4. (Opcional) Utilice el campo Folder / prefix filter para acotar la lista de archivos (ej. data/2026/) y haga clic en Filter.
  5. En File, elija el blob (objeto) a extraer. Solo se listan los archivos con una extensión admitida.
  6. 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.
  7. La tarjeta de resumen muestra el bucket/archivo seleccionado, el formato detectado y las opciones elegidas.
  8. El panel de Preview muestra una muestra de los datos que se extraerán.

Nota: Los archivos de Excel se leen con pandas (motor openpyxl para .xlsx, motor xlrd para .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:

FormatoComportamiento de tipos
CSV / TSVTodas las columnas se leen como tipos inferidos por Polars; cadenas vacías, NULL y null se tratan como valores ausentes
JSONTipos inferidos a partir de los valores JSON (string, number, boolean)
ParquetLos 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

ProblemaCausa PosibleSolución
Fallo en Test connection con error de autenticaciónClave de cuenta de servicio inválida o vencidaGenere una nueva clave en IAM & Admin → Service Accounts → Keys
El menú desplegable de Bucket está vacíoLa cuenta de servicio carece de storage.buckets.list a nivel de proyectoAsigne el rol Storage Object Viewer (o roles/storage.admin) a la cuenta de servicio a nivel de proyecto en IAM & Admin → IAM
El menú desplegable de File está vacío con un recuadro rojo de errorLa cuenta de servicio carece de storage.objects.list sobre el bucket específicoAsigne el rol Storage Object Viewer a la cuenta de servicio sobre el bucket en Cloud Storage → Bucket → Permissions
No se listan archivos en el bucketTodos los archivos tienen extensiones no admitidas, o el filtro de prefijo es demasiado restrictivoLimpie 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 cargarBucket grande con muchos objetosUtilice 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 ExcelNombre de hoja incorrecto o discrepancia de formatoDeje 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 exitosaProblema transitorio de acceso a GCS o blob eliminado entre la vista previa y la ejecuciónVuelva a ejecutar el job; verifique que el blob aún exista en el bucket
Invalid JSON al cargar el archivo de claveEl archivo no es una clave JSON válida de cuenta de servicio de GCPDescargue una clave JSON nueva desde IAM & Admin → Service Accounts → Keys

Permisos Requeridos

Crestone requiere dos niveles independientes de permisos en GCP al utilizar Cloud Storage como fuente:

Nivel de proyecto (para el selector de buckets)

OperaciónPermiso GCP
Listar todos los buckets accesiblesstorage.buckets.list

Otorgue esto a nivel de proyecto en IAM & Admin → IAM asignando uno de los siguientes roles:

  • roles/storage.objectViewer (mínimo recomendado)
  • roles/storage.admin

Nivel de bucket (para listar y descargar archivos)

OperaciónPermiso GCP
Listar blobs en un bucketstorage.objects.list
Descargar un blob para preview/extracciónstorage.objects.get

Otorgue esto a nivel de bucket en Cloud Storage → [nombre del bucket] → Permissions asignando:

  • roles/storage.objectViewer en el bucket específico

Importante: Contar con storage.buckets.list a nivel de proyecto no otorga automáticamente storage.objects.list en todos los buckets. Cada bucket debe otorgar permisos de listar+obtener por separado a menos que el rol se asigne a nivel de proyecto.

Consejo: Para mayor seguridad y conveniencia, otorgue a la cuenta de servicio el rol Storage Object Viewer a nivel de proyecto (cubre tanto el listado de buckets como el acceso a objetos en todos los buckets del proyecto) en lugar de gestionar listas de control de acceso por bucket de forma individual.