Cloud Storage
Google Cloud Storage es el servicio de almacenamiento de objetos utilizado para almacenar archivos, datos no estructurados y servir como staging area en la arquitectura de Solvento.
Descripción
Cloud Storage proporciona almacenamiento escalable y duradero para cualquier tipo de datos. Se utiliza como área de staging para datos antes del procesamiento, almacenamiento de archivos de configuración, y backups.
Flujo de Datos
graph TB
subgraph fuentes["Fuentes"]
APIs[APIs Externas]
Functions[Cloud Functions]
Run[Cloud Run]
end
subgraph storage["Cloud Storage"]
Buckets[Buckets]
Objects[Objetos/Archivos]
end
subgraph procesamiento["Procesamiento"]
Dataflow[Dataflow]
Functions2[Cloud Functions]
end
subgraph destino["Destinos"]
BigQuery[BigQuery]
PubSub[Pub/Sub]
end
APIs --> Buckets
Functions --> Buckets
Run --> Buckets
Buckets --> Objects
Objects --> Dataflow
Objects --> Functions2
Dataflow --> BigQuery
Dataflow --> PubSub
Recursos
Buckets
Los buckets son contenedores para objetos. Documenta aquí los buckets principales:
- Por agregar: Lista de buckets con descripción, clase de almacenamiento y ubicación
Objetos y Archivos
Los objetos almacenados en los buckets. Documenta aquí los tipos de archivos y patrones de nombres:
- Por agregar: Estructura de archivos, formatos (CSV, JSON, Parquet, etc.) y convenciones de nombres
Configuraciones Relevantes
Clases de Almacenamiento
- Standard: Acceso frecuente
- Nearline: Acceso mensual
- Coldline: Acceso trimestral
- Archive: Acceso anual
Especificar qué clases se utilizan y para qué casos
Lifecycle Policies
- Políticas de transición entre clases de almacenamiento
- Políticas de eliminación automática
Versioning
- Configuración de versionado de objetos
Retention Policies
- Políticas de retención de objetos
Permisos y Accesos
- IAM roles y permisos relevantes
- Configuración de CORS si aplica
Relaciones con Otros Componentes
Entrada de Datos
- APIs Externas: Archivos descargados o exportados
- Cloud Functions: Archivos generados o procesados
- Cloud Run: Archivos generados por servicios
- Airbyte: Archivos temporales de staging (si aplica)
Salida de Datos
- Dataflow: Lee archivos para procesamiento batch
- Cloud Functions: Procesa archivos cuando se crean o modifican
- BigQuery: Exporta datos a Cloud Storage
- Pub/Sub: Notifica cuando se crean nuevos archivos
Patrones de Uso
Staging Area
Cloud Storage actúa como área de staging donde los datos se almacenan temporalmente antes del procesamiento.
Data Lake
Los buckets pueden organizarse como un data lake con diferentes zonas (raw, processed, curated).
Event-Driven Processing
Los cambios en Cloud Storage pueden activar Cloud Functions o notificaciones a Pub/Sub para procesamiento automático.
Ejemplos de Uso
Subir Archivo
from google.cloud import storage
client = storage.Client(project='solvento-data-prod')
bucket = client.bucket('my-bucket')
blob = bucket.blob('path/to/file.csv')
blob.upload_from_filename('local-file.csv')
Listar Archivos
from google.cloud import storage
client = storage.Client(project='solvento-data-prod')
bucket = client.bucket('my-bucket')
blobs = bucket.list_blobs(prefix='data/')
Procesar con Dataflow
Ejemplos de cómo Dataflow lee desde Cloud Storage
Estructura de Buckets
Documentar la estructura de buckets y convenciones de nombres:
bucket-name/
├── raw/ # Datos sin procesar
├── processed/ # Datos procesados
├── curated/ # Datos listos para consumo
└── archive/ # Datos archivados
Monitoreo y Métricas
- Uso de almacenamiento: Tamaño total y número de objetos
- Operaciones: Lecturas, escrituras y eliminaciones
- Costos: Costos por clase de almacenamiento y operaciones
- Latencia: Tiempo de acceso a objetos