Skip to content

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

Referencias