Semana 5 · Módulo 5 de 12

Almacenamiento y bases de datos

Aprenderás a elegir entre almacenamiento de objetos, bloque y ficheros, y entre Cloud SQL, AlloyDB, Spanner, Firestore, Bigtable, Memorystore y BigQuery según los requisitos. También verás cómo mover datos a Google Cloud y protegerlos. Es uno de los bloques con más preguntas de «¿qué servicio eliges?» del examen.

⏱ ~16 h de estudioApartados del examen: 1.32.2
Al terminar este módulo sabrás:
  • Distinguir almacenamiento de objetos, bloque y ficheros y saber cuándo usar cada uno
  • Configurar buckets de Cloud Storage con la clase, ubicación, ciclo de vida, versionado y retención adecuados
  • Controlar el acceso a Cloud Storage con acceso uniforme, IAM y URLs firmadas
  • Elegir la base de datos correcta (relacional, NoSQL, en memoria o analítica) a partir de palabras clave del enunciado
  • Diseñar la alta disponibilidad, las réplicas, las copias de seguridad y la PITR de Cloud SQL
  • Elegir el método de transferencia de datos según el volumen y el ancho de banda
  • Planificar el crecimiento y la protección de datos con Backup and DR Service
Índice del módulo

Reparto de la semana

Día Qué hacer Tiempo
Lunes Leer «Tipos de almacenamiento» y «Cloud Storage» (clases, ubicaciones, Autoclass, ciclo de vida) 2 h
Martes Leer el resto de Cloud Storage (versionado, retención, acceso, cifrado) y hacer lab-10-cloud-storage 2 h 30 min
Miércoles Leer «Almacenamiento en bloque y de ficheros» y «Bases de datos relacionales» 2 h
Jueves Hacer lab-11-cloud-sql-ha (reserva un bloque sin interrupciones: la instancia cuesta dinero por hora) 2 h
Viernes Leer «Bases de datos NoSQL», «Memorystore» y «BigQuery (introducción)» 2 h
Sábado Leer «Transferencia de datos», «Crecimiento y protección» y la tabla de decisión; repasar tarjetas 3 h
Domingo Test del módulo, repasar los fallos contra la teoría y las tarjetas 2 h 30 min

Por qué importa

Casi todas las arquitecturas del examen guardan datos en algún sitio, y la pregunta típica no es «¿cómo se configura X?», sino «¿qué servicio eliges?». El enunciado te da cuatro o cinco pistas (volumen, patrón de acceso, consistencia, alcance geográfico, esquema, coste, operativa mínima) y tienes que traducirlas a un producto. Si dominas las palabras clave de este módulo, muchas preguntas de los casos de estudio se resuelven en segundos.

El apartado 1.3 pide «elegir tipos de almacenamiento adecuados (objeto, fichero, bases de datos)» y el 2.2 cubre la configuración: asignación del almacenamiento, seguridad y acceso, transferencia y latencia, retención y ciclo de vida, crecimiento y protección (copias de seguridad y recuperación). Todo eso está aquí.

Tipos de almacenamiento: objeto, bloque y fichero

Antes de ver productos, fija los tres modelos de almacenamiento. Cada uno responde a una forma distinta de acceder a los datos.

Modelo Cómo se accede Unidad Ejemplo en Google Cloud Casos típicos
Objeto API HTTP (GET/PUT de objetos completos) Objeto inmutable con metadatos, dentro de un bucket Cloud Storage Ficheros estáticos, copias de seguridad, data lake, medios, logs
Bloque El sistema operativo ve un disco y le pone un sistema de ficheros Volumen (disco) montado en una VM Persistent Disk, Hyperdisk, Local SSD Disco de arranque, bases de datos autogestionadas
Fichero Protocolo de red de ficheros (NFS, SMB) compartido por varios clientes Directorios y ficheros POSIX Filestore, NetApp Volumes, Managed Lustre Carpetas compartidas, aplicaciones heredadas, HPC

Encima de estos modelos están las bases de datos gestionadas, que ya no te exponen el almacenamiento: te exponen tablas, documentos o claves. El examen mezcla los cuatro grupos en la misma pregunta, así que conviene pensar primero «¿qué modelo de acceso necesita la aplicación?» y después «¿qué producto?».

Cloud Storage

Cloud Storage es el almacenamiento de objetos de Google Cloud. Guardas objetos (cualquier fichero más sus metadatos) dentro de buckets. Ideas base:

  • El nombre del bucket es único a nivel global (compartes espacio de nombres con todos los clientes de Google Cloud) y la ubicación se fija al crearlo: no se puede cambiar después; hay que crear otro bucket y copiar.
  • Los objetos son inmutables: «modificar» un objeto es sustituirlo por una versión nueva.
  • La capacidad es ilimitada, sin tamaño mínimo de objeto, y la durabilidad de diseño es del 99,999999999 % (once nueves) anual en todas las clases.
  • La consistencia es fuerte: tras escribir un objeto, cualquier lectura o listado posterior lo ve.
  • Se accede por la consola, gcloud storage, las bibliotecas cliente y la API JSON/XML. gsutil es la herramienta heredada: sigue apareciendo en la guía del examen, pero hoy se recomienda gcloud storage.

Clases de almacenamiento

La clase determina el precio de almacenamiento frente al precio de acceso. Cuanto más «fría», más barato guardar y más caro leer, y además hay una duración mínima de almacenamiento: si borras, sustituyes o cambias de clase un objeto antes de ese plazo, pagas igualmente los días que faltan (early deletion fee).

Clase Duración mínima Tarifa de recuperación Acceso previsto Disponibilidad típica (región / dual o multirregión)
Standard Ninguna No Datos «calientes», acceso frecuente 99,99 % / más del 99,99 %
Nearline 30 días Sí Aproximadamente una vez al mes 99,9 % / 99,95 %
Coldline 90 días Sí Aproximadamente una vez al trimestre 99,9 % / 99,95 %
Archive 365 días Sí Menos de una vez al año (archivo legal, DR) 99,9 % / 99,95 %

Fíjate en dos detalles que el examen explota:

  1. Todas las clases tienen latencia de milisegundos. Archive no es una «cinta» con horas de espera, como Glacier Deep Archive: lees el objeto al momento, solo que pagas más por leerlo.
  2. La clase es una propiedad del objeto. El bucket tiene una clase por defecto, pero en un mismo bucket puede haber objetos Standard y Archive a la vez.

Existe además una clase Rapid para buckets zonales (Rapid Bucket), pensada para cargas de IA/ML y analítica muy intensivas en E/S. Es un caso especializado; para el examen basta con saber que existe y que es zonal.

Ubicaciones: región, dual-región y multirregión

Tipo Qué es Cuándo elegirlo
Región (europe-southwest1) Datos redundantes en varias zonas de una región Datos que se procesan en esa región (VMs, GKE, Managed Service for Apache Spark, antes Dataproc), menor coste, soberanía de datos en un país
Dual-región (predefinida, como EUR4, o configurable eligiendo dos regiones del mismo continente) Datos replicados en dos regiones concretas Alta disponibilidad y continuidad de negocio con control exacto de dónde están los datos; cargas analíticas en dos regiones
Multirregión (EU, US, ASIA) Datos en varias regiones de un área geográfica amplia Contenido servido a usuarios repartidos por un continente, máxima disponibilidad sin elegir regiones

La replicación entre regiones es asíncrona. Por defecto, Google diseña el servicio para replicar el 99,9 % de los objetos nuevos en menos de una hora y el 100 % en menos de 12 horas. Si necesitas un RPO de 15 minutos, activa turbo replication, que solo existe en dual-región y tiene coste adicional.

Autoclass

Autoclass mueve cada objeto automáticamente de clase según su uso real, sin que tengas que escribir reglas:

  • Un objeto sin accesos pasa a Nearline a los 30 días; si configuras Archive como clase terminal, sigue a Coldline a los 90 días y a Archive a los 365. La clase terminal por defecto es Nearline.
  • Si se vuelve a leer un objeto frío, vuelve a Standard.
  • No se cobran tarifas de recuperación ni de borrado anticipado (salvo en la activación). A cambio hay una tarifa de gestión por objeto.
  • Los objetos de menos de 128 KiB no bajan de clase.
  • Es incompatible con reglas de ciclo de vida que usen SetStorageClass o matchesStorageClass.

Usa Autoclass cuando no conoces o no puedes predecir el patrón de acceso. Si lo conoces (p. ej. «los logs se consultan solo el primer mes y hay que guardarlos siete años»), las reglas de ciclo de vida son más baratas y explícitas.

Gestión del ciclo de vida (Object Lifecycle Management)

Las reglas de ciclo de vida se definen por bucket y combinan acciones y condiciones:

  • Acciones: Delete, SetStorageClass y AbortIncompleteMultipartUpload.
  • Condiciones: age (días desde la creación), createdBefore, isLive (versión actual o no), numNewerVersions, daysSinceNoncurrentTime, matchesStorageClass, matchesPrefix/matchesSuffix, daysSinceCustomTime y tamaño (sizeAboveBytes/sizeBelowBytes).

Las transiciones de clase solo van «hacia abajo»: Standard → Nearline → Coldline → Archive. Los cambios en la configuración pueden tardar hasta 24 horas en aplicarse. Un ejemplo típico (logs que se enfrían y se borran a los 7 años):

{
  "lifecycle": {
    "rule": [
      { "action": { "type": "SetStorageClass", "storageClass": "NEARLINE" }, "condition": { "age": 30 } },
      { "action": { "type": "SetStorageClass", "storageClass": "ARCHIVE" }, "condition": { "age": 365 } },
      { "action": { "type": "Delete" }, "condition": { "age": 2555 } }
    ]
  }
}
gcloud storage buckets update gs://mi-bucket-logs --lifecycle-file=lifecycle.json
gcloud storage buckets describe gs://mi-bucket-logs --format="default(lifecycle_config)"

Versionado y soft delete

Con el versionado de objetos (Object Versioning) activado, al sobrescribir o borrar un objeto la versión anterior no desaparece: pasa a ser una versión no actual (noncurrent) identificada por su número de generación. Protege contra borrados y sobrescrituras accidentales, pero cada versión ocupa (y cuesta) espacio. Lo habitual es combinarlo con reglas de ciclo de vida como numNewerVersions: 3 o daysSinceNoncurrentTime: 30 para limitar cuántas versiones se conservan.

Aparte existe el soft delete, activado por defecto en los buckets con una retención de 7 días (configurable entre 7 y 90 días, o 0 para desactivarlo). Durante ese periodo, los objetos borrados se pueden restaurar, incluso si no había versionado. Ten en cuenta que los objetos en soft delete se facturan: en buckets con muchos datos temporales conviene desactivarlo.

Mecanismo Protege frente a Ámbito
Versionado Sobrescrituras y borrados, de forma indefinida mientras conserves versiones Bucket
Soft delete Borrados (incluido el borrado de un bucket entero) durante 7-90 días Bucket
Política de retención Cualquier borrado o sobrescritura antes de un plazo Bucket
Object Retention Lock Borrado de un objeto concreto antes de su fecha Objeto

Retención, Bucket Lock y Object Retention Lock

Para cumplimiento normativo (WORM, write once, read many: «los registros no se pueden borrar durante 7 años») tienes estas herramientas:

  • Política de retención del bucket (retention policy): ningún objeto del bucket se puede borrar ni sustituir hasta que cumpla la edad indicada. Mientras la política no esté bloqueada, se puede reducir o quitar.
  • Bucket Lock: bloquear la política de retención. Es irreversible: ya no puedes reducir ni eliminar la política (solo ampliarla), y el bucket no se puede borrar hasta que todos los objetos hayan cumplido su retención. Es la respuesta a «requisito regulatorio de inmutabilidad» (p. ej. SEC 17a-4).
  • Object Retention Lock: fija una fecha de retención por objeto. Tiene dos modos: Unlocked (equivalente a «governance»: usuarios autorizados pueden cambiarla o quitarla) y Locked (equivalente a «compliance»: solo se puede ampliar). Una vez activada en un bucket, la función no se puede desactivar. Si un objeto tiene a la vez retención de bucket y de objeto, debe cumplir ambas.
  • Retenciones temporales y basadas en eventos (object holds): impiden borrar un objeto mientras el hold esté puesto, útil en litigios.
gcloud storage buckets update gs://registros-fiscales --retention-period=2557d   # unos 7 años
gcloud storage buckets update gs://registros-fiscales --lock-retention-period   # irreversible

Control de acceso: acceso uniforme, ACL y URLs firmadas

Hay dos modelos de permisos en Cloud Storage:

  • Uniform bucket-level access (acceso uniforme a nivel de bucket): solo cuenta IAM, aplicado al bucket (o a carpetas gestionadas). Las ACL de objeto quedan desactivadas. Es la opción recomendada; permite además IAM Conditions y es requisito de funciones como carpetas gestionadas. Tras activarlo tienes 90 días para volver atrás.
  • Fine-grained (detallado): IAM más ACL por objeto. Solo se justifica si de verdad necesitas permisos distintos objeto a objeto, por compatibilidad con Amazon S3 o con aplicaciones antiguas.

Otras piezas clave:

  • Public access prevention: impide que nada del bucket se haga público (a allUsers o allAuthenticatedUsers). Se puede forzar en toda la organización con una política de organización.
  • URL firmada (signed URL): una URL con una firma criptográfica que da acceso temporal a un objeto concreto a quien la tenga, sin necesidad de cuenta de Google. Con firma V4 la validez máxima es de 7 días. Es la respuesta a «un cliente externo sin cuenta debe descargar (o subir) un fichero durante 24 horas».
  • Signed policy document: parecido, pero para subidas desde un formulario HTML con restricciones (tamaño, tipo de contenido).
# Firma una URL de descarga válida 1 hora suplantando una cuenta de servicio
gcloud storage sign-url gs://mi-bucket/informe.pdf \
  --duration=1h \
  --impersonate-service-account=firmador@mi-proyecto.iam.gserviceaccount.com

Cifrado

Todo se cifra en reposo siempre. Tú eliges quién controla las claves:

Opción Quién gestiona la clave Cuándo
Cifrado por defecto de Google Google Caso general, sin requisitos especiales
CMEK (customer-managed encryption keys) Tú, en Cloud KMS (rotación, desactivación, auditoría) Requisitos de cumplimiento: «controlar la rotación», «poder revocar el acceso»
CSEK (customer-supplied encryption keys) Tú, fuera de Google: envías la clave en cada petición Cuando la clave no puede residir en Google (poco frecuente, más operativa)

En la semana 7 verás Cloud KMS, Cloud HSM y Cloud External Key Manager (EKM) a fondo.

Rendimiento y otras funciones útiles

  • Cloud CDN delante de un bucket (con un balanceador de carga de aplicaciones externo) para servir contenido estático con baja latencia global.
  • Anywhere Cache: caché SSD zonal delante de un bucket para cargas de lectura intensiva (p. ej. entrenamiento de IA en una zona).
  • Hierarchical namespace (espacio de nombres jerárquico): carpetas reales con renombrado atómico, útil para analítica y IA con muchos ficheros.
  • Cloud Storage FUSE: monta un bucket como sistema de ficheros en VMs o GKE. Útil para IA/ML y lectura masiva, pero no es un sistema de ficheros POSIX completo (no hay bloqueos de fichero ni escrituras parciales eficientes).
  • Notificaciones Pub/Sub y eventos de Eventarc cuando se crea o borra un objeto: la base de muchas arquitecturas orientadas a eventos («al subir una imagen, procesarla con Cloud Run»).

Almacenamiento en bloque y de ficheros

Persistent Disk, Hyperdisk y Local SSD

Son los discos de las VMs de Compute Engine (y los volúmenes persistentes de GKE).

Opción Qué es Claves para el examen
Persistent Disk (pd-standard, pd-balanced, pd-ssd, pd-extreme) Disco en red, zonal o regional (replicado de forma síncrona en dos zonas) Se puede ampliar en caliente; snapshots; el PD regional permite conmutar una VM a otra zona
Hyperdisk (Balanced, Balanced High Availability, Extreme, Throughput, ML) Nueva generación de disco en red, con IOPS y rendimiento configurables por separado del tamaño Obligatorio en las series de máquina más recientes; Hyperdisk Balanced HA replica en dos zonas; Hyperdisk ML se monta en solo lectura en muchas VMs a la vez; Storage Pools para comprar capacidad y rendimiento en bloque
Local SSD SSD físico conectado al host Máxima IOPS y mínima latencia, pero efímero: los datos se pierden si la VM se para o el host falla. Solo para cachés, scratch o datos replicados por la aplicación

Las snapshots son incrementales, se guardan por defecto en una ubicación multirregional y sirven como copia de seguridad y para clonar discos en otra zona o región. Programa snapshots con una snapshot schedule o, para gobierno centralizado, con Backup and DR Service.

Filestore, NetApp Volumes y Managed Lustre

Servicio Protocolos Claves
Filestore NFSv3 y NFSv4.1 NFS gestionado. Niveles Zonal y Regional (1-100 TiB, rendimiento configurable; el regional replica en varias zonas) y los niveles heredados Basic HDD/SSD. Multishares para GKE. Respuesta típica a «NFS compartido para VMs o GKE sin modificar la aplicación»
Google Cloud NetApp Volumes NFSv3/v4.1/v4.2, SMB, iSCSI y NVMe/TCP Basado en NetApp ONTAP. Niveles Flex, Standard, Premium y Extreme. Respuesta a «compartir ficheros SMB para Windows», «migrar cabinas NetApp sin rediseñar», SAP o datastores de VMware
Managed Lustre Lustre (sistema de ficheros paralelo) Alto rendimiento y baja latencia para HPC y entrenamiento de IA con miles de clientes. En material antiguo verás Parallelstore para el mismo caso de uso; la documentación actual de Google orienta estos casos a Managed Lustre

Bases de datos relacionales

Cloud SQL

Cloud SQL es el servicio gestionado de MySQL, PostgreSQL y SQL Server. Google se encarga de parches, copias de seguridad, replicación y conmutación por error; tú eliges el tamaño de la instancia y la configuración. Escala verticalmente (más CPU y memoria) y en lectura con réplicas, pero la escritura va siempre a un único primario. Es la respuesta por defecto para «base de datos relacional regional, lift-and-shift de MySQL/PostgreSQL/SQL Server, aplicación web tradicional».

Tiene dos ediciones:

Enterprise Enterprise Plus
SLA 99,95 % (excluye mantenimiento) 99,99 % (incluye mantenimiento)
Tiempo de inactividad en mantenimiento Menos de 60 s Inferior al segundo
Retención de logs para PITR Hasta 7 días Hasta 35 días
Data cache (caché en SSD local) No Sí
Máximo de máquina Hasta 96 vCPU y 624 GB (también núcleo compartido) Hasta 128 vCPU y 864 GB
Read pools No Sí

Alta disponibilidad (HA regional)

Una instancia con HA (--availability-type=REGIONAL) tiene un primario en una zona y un standby en otra zona de la misma región. Las escrituras se replican de forma síncrona a los discos de ambas zonas antes de confirmarse, así que no se pierden transacciones confirmadas (RPO ≈ 0).

  • Si el primario deja de responder a los latidos (heartbeats) durante varios segundos, Cloud SQL conmuta automáticamente al standby. La conmutación tarda del orden de 60 segundos.
  • La instancia conserva la misma IP, así que la aplicación solo tiene que reconectar.
  • El standby no sirve lecturas. Si quieres descargar lecturas, necesitas réplicas de lectura.
  • La HA protege frente a la caída de una zona, no de una región. Para DR regional necesitas una réplica entre regiones.
flowchart LR
  App["Aplicación"] --> IP["IP de la instancia"]
  IP --> P["Primario (zona A)"]
  P -- "replicación síncrona" --> S["Standby (zona B)"]
  P -- "replicación asíncrona" --> R1["Réplica de lectura (misma región)"]
  P -- "replicación asíncrona" --> R2["Réplica entre regiones (DR)"]

Réplicas de lectura

  • Son copias asíncronas (pueden ir unos segundos por detrás) que solo admiten lecturas.
  • Pueden estar en la misma región o en otra (cross-region replica), lo que sirve para acercar las lecturas a los usuarios y como plan de DR: ante la pérdida de la región, promocionas la réplica a instancia independiente (o, con la función de DR avanzada de Enterprise Plus, haces un switchover controlado).
  • Se pueden encadenar (réplicas en cascada) y tener HA propia.
  • La réplica no es una copia de seguridad: un DROP TABLE se replica al instante.

Copias de seguridad y PITR

  • Copias automáticas diarias (por defecto se conservan 7) y copias bajo demanda antes de operaciones arriesgadas.
  • Point-in-time recovery (PITR): usa las copias automáticas más los logs de transacciones para restaurar el estado de un momento concreto (p. ej. «justo antes del borrado accidental de las 10:42»). La restauración PITR crea una instancia nueva (un clon), no sobrescribe la original.
  • Restaurar una copia sobre una instancia existente sobrescribe sus datos. Si la instancia tiene réplicas, hay que eliminarlas antes.
  • Al borrar una instancia, las copias automáticas se van eliminando; puedes pedir una copia final (--enable-final-backup) que se conserva 30 días por defecto.
  • Las copias mejoradas (enhanced backups) se gestionan con Backup and DR Service, con retención forzada de hasta 10 años.

Conexión: por IP privada (acceso a servicios privados o Private Service Connect) o IP pública con Cloud SQL Auth Proxy o los conectores de lenguaje, que cifran la conexión y autentican con IAM sin gestionar listas de IPs autorizadas.

AlloyDB for PostgreSQL

AlloyDB es una base de datos compatible con PostgreSQL con arquitectura propia de Google: cómputo y almacenamiento separados y escalables por separado. Aspectos clave:

  • Mucho más rendimiento transaccional que PostgreSQL estándar y un motor columnar que acelera las consultas analíticas sobre los mismos datos (cargas HTAP, transaccionales y analíticas a la vez).
  • HA por defecto en el primario, read pools con balanceo de lecturas, copia continua y PITR, replicación entre regiones.
  • AlloyDB AI (vectores, búsqueda semántica, llamadas a modelos) y AlloyDB Omni (versión descargable para ejecutar en tu centro de datos u otras nubes).

Palabras clave: «PostgreSQL de alto rendimiento», «informes analíticos sobre datos transaccionales sin ETL», «migrar Oracle o PostgreSQL exigente sin pasar a una base global». Si el enunciado exige escala global de escrituras, la respuesta es Spanner, no AlloyDB.

Spanner

Spanner es una base de datos relacional distribuida con consistencia fuerte (consistencia externa, gracias a los relojes TrueTime) y escalado horizontal de lecturas y escrituras. Combina lo que normalmente es incompatible: SQL y transacciones ACID con escala prácticamente ilimitada y distribución multirregional.

  • Capacidad en unidades de procesamiento: desde 100 PU; 1 nodo son 1.000 PU. Escala sin parada añadiendo capacidad (hay autoescalado gestionado en las ediciones superiores).
  • Configuraciones regionales, dual-región y multirregión.
  • Ediciones: Standard (solo regional), Enterprise (añade Spanner Graph, búsqueda de texto y vectorial, autoescalado gestionado) y Enterprise Plus (añade dual y multirregión, geoparticionado y hasta 99,999 % de SLA). Standard y Enterprise ofrecen 99,99 %.
  • Dialectos GoogleSQL y PostgreSQL.
  • Diseño: evita claves primarias monótonas (autoincrementales o que empiezan por timestamp), porque concentran las escrituras en un único split (hotspot). Usa UUID v4 o secuencias con bits invertidos. Las tablas intercaladas (interleaved) guardan juntas las filas padre e hijas para acelerar los joins.

Palabras clave: «global», «consistencia fuerte», «SQL», «escala horizontal de escrituras», «99,999 %», «inventario o transacciones financieras en varios continentes», «superamos los límites de Cloud SQL».

Bases de datos NoSQL

Firestore

Firestore es una base de datos documental serverless: documentos (similares a JSON) organizados en colecciones, escalado automático, transacciones ACID, índices y pago por operaciones y almacenamiento.

  • Modo nativo: sincronización en tiempo real y soporte sin conexión en los SDK móviles y web (Firebase). Es la respuesta a «aplicación móvil con sincronización en tiempo real y modo sin conexión».
  • Modo Datastore: compatible con la API del antiguo Cloud Datastore, para aplicaciones de servidor.
  • Ediciones: Standard (modo nativo o Datastore, consultas con índices) y Enterprise (almacenamiento en SSD, consultas más flexibles con o sin índice, y compatibilidad con MongoDB). «Migrar una aplicación MongoDB a un servicio gestionado y serverless» apunta a Firestore Enterprise con compatibilidad MongoDB.
  • Ubicación regional o multirregional (SLA de 99,99 % y 99,999 % respectivamente).

Firestore no está pensado para analítica masiva ni para cientos de miles de escrituras por segundo sobre el mismo documento: para eso hay otros servicios.

Bigtable

Bigtable es una base de datos NoSQL de columnas anchas (wide-column) para volúmenes enormes (terabytes a petabytes) con latencia de milisegundos de un dígito y un rendimiento que escala linealmente con el número de nodos. Es compatible con la API de Apache HBase.

  • Modelo: una sola clave indexada, la clave de fila (row key); las filas se ordenan lexicográficamente por ella. Columnas agrupadas en familias; celdas con versiones por timestamp.
  • Solo hay transacciones por fila (atomicidad de una fila). No hay joins ni transacciones multifila; hoy admite consultas GoogleSQL, pero no es un almacén analítico.
  • Almacenamiento SSD (lo normal) o HDD (más barato, para datos poco leídos); los datos viven en Colossus, así que añadir o sustituir nodos es rápido.
  • Replicación entre clústeres (incluso en regiones distintas) con perfiles de aplicación: enrutamiento a un único clúster (consistencia fuerte) o multiclúster (consistencia eventual, más disponibilidad).
  • Key Visualizer para detectar hotspots.

Casos típicos: series temporales, IoT, adtech, datos financieros de mercado, personalización, grafos de gran tamaño. Palabras clave: «millones de escrituras por segundo», «petabytes», «baja latencia», «sensores», «HBase».

Diseño de la clave de fila

Es lo más preguntado de Bigtable. Las consultas eficientes leen por clave, por prefijo o por rango de claves, así que la clave se diseña a partir de las consultas:

  • No empieces la clave por un timestamp ni por un valor secuencial: todas las escrituras recientes caerían en el mismo nodo (hotspot).
  • Coloca primero un valor de alta cardinalidad que reparta la carga (ID del dispositivo, ID del usuario) y después el timestamp: sensor#4711#20261001T1030. Esto se llama promoción de campos (field promotion).
  • Si necesitas leer lo más reciente primero, usa un timestamp invertido (valor máximo menos el timestamp).
  • Salting (prefijo con un hash) reparte aún más, pero complica las lecturas por rango: úsalo solo si hace falta.
  • Mantén las claves cortas (máximo 4 KB), rellena los números con ceros a la izquierda (el orden es lexicográfico) y evita filas enormes (límite duro de 256 MB, recomendado menos de 100 MB).
  • Para series temporales, prefiere tablas «altas y estrechas» (una fila por evento o por intervalo) a filas con millones de columnas.

Memorystore

Memorystore es el almacén en memoria gestionado (caché, sesiones, tablas de clasificación, colas ligeras), con latencias de submilisegundo. Hoy hay estas variantes:

Servicio Qué es Cuándo
Memorystore for Valkey Valkey (bifurcación de código abierto de Redis, compatible con su protocolo). Modo clúster activado o desactivado, autenticación IAM Opción recomendada para proyectos nuevos
Memorystore for Redis Cluster Redis en modo clúster (fragmentado, escala horizontal hasta cientos de nodos) Gran volumen de lecturas y escrituras con Redis
Memorystore for Redis Instancia Redis sin clúster (niveles Basic y Standard con réplica) Aplicaciones existentes que usan comandos multiclave o varias bases de datos Redis
Memorystore for Memcached Memcached gestionado Obsoleto: desde el 20 de enero de 2026 ya no se recomienda, no se podrá crear en proyectos nuevos a partir del 1 de febrero de 2027 y se retira el 31 de enero de 2029. Google recomienda migrar a Valkey

Palabras clave: «caché», «reducir la carga de lectura de la base de datos», «almacenar sesiones de usuario», «latencia de submilisegundo», «ranking en tiempo real». Recuerda que una caché no es la fuente de verdad: los datos deben estar también en una base de datos.

BigQuery como almacén analítico (introducción)

BigQuery es el almacén de datos analítico (data warehouse) serverless de Google Cloud. Almacena datos en formato columnar y ejecuta SQL sobre terabytes o petabytes en segundos, separando almacenamiento y cómputo. Es OLAP (analítica), no OLTP (transacciones): no lo uses como base de datos de una aplicación que hace miles de lecturas y escrituras de filas individuales por segundo.

Ideas mínimas para esta semana (la semana 6 lo amplía):

  • Organización: proyecto → dataset (con ubicación regional o multirregional) → tablas y vistas.
  • Pagas por almacenamiento (más barato si una tabla o partición no se modifica en 90 días: long-term storage) y por cómputo: bajo demanda por TiB escaneado (el primer TiB al mes es gratis) o por capacidad (slots) con las ediciones.
  • Palabras clave: «analítica», «data warehouse», «informes con SQL sobre petabytes», «sin gestionar infraestructura», «BI».

Tabla de decisión: ¿qué almacenamiento o base de datos elijo?

Pista en el enunciado Servicio
Ficheros no estructurados, imágenes, vídeo, copias de seguridad, data lake, contenido estático Cloud Storage
Archivo a largo plazo por cumplimiento, acceso casi nulo Cloud Storage Archive (+ retención y Bucket Lock)
Disco para una VM, base de datos autogestionada Persistent Disk / Hyperdisk
Máxima IOPS temporal, caché, scratch Local SSD
NFS compartido, aplicación heredada Linux, GKE con ReadWriteMany Filestore
SMB para Windows, migrar NetApp ONTAP NetApp Volumes
HPC o entrenamiento de IA con sistema de ficheros paralelo Managed Lustre
Relacional regional, MySQL/PostgreSQL/SQL Server, lift-and-shift Cloud SQL
PostgreSQL de alto rendimiento, HTAP, analítica sobre datos transaccionales AlloyDB
Relacional global, consistencia fuerte, escala horizontal, 99,999 % Spanner
Documentos, app móvil/web, sincronización en tiempo real, sin conexión, serverless Firestore (nativo)
MongoDB gestionado y serverless Firestore Enterprise con compatibilidad MongoDB
Series temporales, IoT, petabytes, millones de escrituras por segundo, HBase Bigtable
Caché, sesiones, submilisegundo Memorystore (Valkey o Redis)
Analítica SQL, data warehouse, BI sobre petabytes BigQuery
flowchart TD
  A["¿Qué tipo de datos?"] --> B["Ficheros u objetos"]
  A --> C["Datos estructurados o semiestructurados"]
  B --> B1{"¿Acceso por API o sistema de ficheros?"}
  B1 -- "API / HTTP" --> GCS["Cloud Storage"]
  B1 -- "NFS o SMB compartido" --> FS["Filestore / NetApp Volumes"]
  B1 -- "Disco de una VM" --> PD["Persistent Disk / Hyperdisk"]
  C --> C1{"¿Analítica u operacional?"}
  C1 -- "Analítica (OLAP)" --> BQ["BigQuery"]
  C1 -- "Operacional" --> C2{"¿Relacional (SQL, transacciones)?"}
  C2 -- "Sí" --> C3{"¿Escala global o escrituras horizontales?"}
  C3 -- "Sí" --> SP["Spanner"]
  C3 -- "No" --> C4{"¿PostgreSQL muy exigente o HTAP?"}
  C4 -- "Sí" --> AL["AlloyDB"]
  C4 -- "No" --> SQL["Cloud SQL"]
  C2 -- "No" --> C5{"¿Patrón de acceso?"}
  C5 -- "Documentos, apps móviles" --> FSDB["Firestore"]
  C5 -- "Enorme volumen, baja latencia, series temporales" --> BT["Bigtable"]
  C5 -- "Caché en memoria" --> MS["Memorystore"]

Transferencia de datos a Google Cloud

La herramienta depende del volumen, del ancho de banda disponible, del origen y de si la transferencia es única o recurrente.

Herramienta Para qué Claves
gcloud storage cp / rsync Transferencias pequeñas o medianas desde un equipo o servidor Paralelismo automático; sencillo. gsutil es el equivalente heredado
Storage Transfer Service Transferencias grandes y recurrentes: desde Amazon S3, Azure Blob, URLs HTTP, otros buckets, sistemas de ficheros locales y HDFS (con agentes instalados en tu red) Gestionado, programable, con filtros, reintentos y transferencias basadas en eventos. Google lo recomienda para más de 1 TiB
Transfer Appliance Transferencia offline: Google te envía un dispositivo físico (modelos TA40 y TA300, según capacidad), lo llenas y lo devuelves Cuando subir por red tardaría más de una semana o el ancho de banda es muy limitado
BigQuery Data Transfer Service Cargas programadas a BigQuery desde SaaS (Google Ads, YouTube…), otros almacenes de datos y S3 Datos analíticos directamente a BigQuery
Database Migration Service Migrar bases de datos a Cloud SQL, AlloyDB (con replicación continua) Se verá en la semana 11

Tiempos teóricos al 100 % de uso del enlace (en la práctica, cuenta con un 20-30 % más; la guía de Google estima 12 días para 100 TB a 1 Gbps):

Volumen 100 Mbps 1 Gbps 10 Gbps
1 TB ~22 horas ~2,2 horas ~13 minutos
10 TB ~9 días ~22 horas ~2,2 horas
100 TB ~3 meses ~9 días ~22 horas
1 PB ~2,5 años ~3 meses ~9 días

La regla práctica: si por red no llegas en el plazo del proyecto (o tardarías más de una semana), piensa en Transfer Appliance; si llegas y es desde otra nube o se repite, Storage Transfer Service; si es poco volumen y puntual, gcloud storage. Si el problema es el ancho de banda de forma permanente, la solución de fondo es Cloud Interconnect (semana 4).

Planificación del crecimiento

El apartado 2.2 pide «planificar el crecimiento de los datos». Traducido a servicios:

  • Cloud Storage y BigQuery: capacidad ilimitada; el crecimiento se controla con ciclo de vida, Autoclass, expiración de tablas y particiones.
  • Persistent Disk / Hyperdisk: se amplían en caliente (no se pueden reducir); con Hyperdisk ajustas IOPS y rendimiento sin cambiar de disco.
  • Cloud SQL: activa el aumento automático de almacenamiento para no quedarte sin disco (no se puede reducir después). Si el cuello de botella son las escrituras y ya estás en la máquina más grande razonable, es la señal para pasar a AlloyDB o Spanner.
  • Spanner y Bigtable: escalan añadiendo capacidad (nodos o unidades de procesamiento), con autoescalado.
  • Firestore y Memorystore for Valkey/Redis Cluster: escalado automático o por nodos sin parada.
  • Revisa cuotas y límites antes de un crecimiento previsto (se piden ampliaciones desde la consola).

Protección de datos: copias de seguridad y recuperación

Diseña la protección con dos métricas: RPO (cuántos datos puedes perder) y RTO (cuánto puedes tardar en recuperar). Herramientas por servicio:

Servicio Mecanismos
Cloud Storage Versionado, soft delete, dual/multirregión (turbo replication), retención y Bucket Lock, copia a otro bucket con Storage Transfer Service
Discos Snapshots programadas, discos regionales, imágenes de máquina
Cloud SQL Copias automáticas y bajo demanda, PITR, HA regional, réplicas entre regiones
AlloyDB Copia continua, PITR, replicación entre regiones
Spanner Copias de seguridad, PITR (retención de versiones hasta 7 días), configuraciones multirregión
Firestore Copias programadas, PITR, exportaciones
Bigtable Copias de seguridad, replicación

Por encima de todo eso está Backup and DR Service, el servicio centralizado de copias de seguridad:

  • Backup vaults (almacenes de copias): almacenamiento aislado y gestionado por Google donde las copias son inmutables e imborrables hasta que vence su retención forzada (hasta 99 años). Protegen incluso frente a un administrador malicioso o un ransomware que haya comprometido el proyecto.
  • Backup plans: políticas con reglas de frecuencia (de cada hora a anual) y retención que se asocian a los recursos.
  • Protege VMs de Compute Engine, discos, Filestore, Cloud SQL, AlloyDB, VMs de Google Cloud VMware Engine y bases de datos autogestionadas (Oracle, SQL Server, SAP HANA, MySQL, PostgreSQL), con copias incrementales para siempre.

Trampas típicas del examen

  • Cloud Storage Archive no es lento: la latencia es de milisegundos. Lo que cuesta es la tarifa de recuperación y la duración mínima de 365 días.
  • Duraciones mínimas 30/90/365 días (Nearline/Coldline/Archive). Standard no tiene mínimo.
  • Ubicación del bucket inmutable: para cambiarla, nuevo bucket y copia (Storage Transfer Service).
  • Turbo replication solo en dual-región (RPO 15 minutos). Multirregión no la tiene.
  • Bucket Lock es irreversible; la retención sin bloquear, no. Retención por objeto → Object Retention Lock.
  • URL firmada = acceso temporal sin cuenta de Google. Si el usuario tiene identidad, usa IAM.
  • Acceso uniforme es lo recomendado; las ACL solo si hace falta granularidad por objeto.
  • HA de Cloud SQL ≠ réplica de lectura ≠ copia de seguridad. El standby de HA no sirve lecturas y la HA es zonal, no regional.
  • PITR crea una instancia nueva; restaurar una copia sobre una instancia la sobrescribe.
  • Spanner: «global + consistencia fuerte + SQL + escala horizontal». Si falta lo global o la escala, probablemente sea Cloud SQL o AlloyDB.
  • Bigtable: nunca claves que empiecen por timestamp. No es para SQL ad hoc ni para transacciones multifila, y no compensa con volúmenes pequeños (unos pocos GB).
  • Firestore para móviles con sincronización y sin conexión; Bigtable para enorme volumen de escrituras; BigQuery para analítica.
  • Memorystore for Memcached está obsoleto: si aparece, la alternativa moderna es Memorystore for Valkey.
  • Local SSD es efímero: nunca como único almacén de datos que importen.
  • Filestore (NFS) vs NetApp Volumes (también SMB): Windows apunta a NetApp Volumes.
  • Transfer Appliance cuando la red no llega a tiempo; Storage Transfer Service desde otra nube o de forma recurrente.

Resumen

  • Objeto (Cloud Storage), bloque (Persistent Disk, Hyperdisk, Local SSD) y fichero (Filestore, NetApp Volumes, Managed Lustre) responden a formas distintas de acceso.
  • Cloud Storage: clases Standard/Nearline/Coldline/Archive con mínimos de 0/30/90/365 días, todas con latencia de milisegundos; ubicación región, dual-región o multirregión; turbo replication para RPO de 15 minutos.
  • Ciclo de vida para patrones conocidos, Autoclass para patrones impredecibles; versionado y soft delete frente a borrados; retención, Bucket Lock y Object Retention Lock para WORM.
  • Acceso uniforme con IAM como norma; URLs firmadas (máximo 7 días) para usuarios sin cuenta; CMEK cuando necesitas controlar las claves.
  • Cloud SQL para relacional regional (HA regional síncrona, réplicas asíncronas, copias y PITR); AlloyDB para PostgreSQL exigente y HTAP; Spanner para relacional global con escala horizontal.
  • Firestore para documentos y apps móviles; Bigtable para series temporales e IoT con clave de fila bien diseñada; Memorystore (Valkey recomendado) para caché; BigQuery para analítica.
  • Transferencias: gcloud storage (poco volumen), Storage Transfer Service (otras nubes, recurrente, más de 1 TiB), Transfer Appliance (offline, cuando la red no llega).
  • Protección: define RPO y RTO; Backup and DR Service con backup vaults para copias inmutables y centralizadas.

Practica lo aprendido

Hacer el test (18 preguntas)Repasar tarjetas (22)

Documentación oficial para ampliar