Brains4Cloud
ESEN
Practicar

Tema 2 de 4

D3 · Datos no relacionales en Azure

Azure Files y Azure Table Storage

Además de blobs, una cuenta de Azure Storage ofrece recursos compartidos de archivos y tablas clave-valor. Son servicios sencillos, pero el examen pregunta sus protocolos, cómo se identifica una fila en una tabla y en qué se diferencia una tabla de Azure de una tabla relacional.

En las redes locales es habitual compartir archivos: se guardan en un equipo y se da acceso a usuarios y aplicaciones de otros equipos. Funciona en una red local, pero escala mal cuando crecen los usuarios o están en sedes distintas.

Azure Files ofrece recursos compartidos de archivos totalmente gestionados en la nube, accesibles con los protocolos estándar SMB y NFS.

Al alojar los recursos compartidos en Azure se eliminan los costes de hardware y mantenimiento, y se gana alta disponibilidad y almacenamiento escalable.

Capacidad, niveles y carga de archivos

Capacidad por cuenta

Hasta 256 TiB en cuentas SSD con el modelo de facturación aprovisionado v2, y hasta 5 PiB en cuentas HDD de pago por uso, repartidos en cualquier número de recursos compartidos.

Archivos

El tamaño máximo de un archivo es 4 TiB; se pueden fijar cuotas para limitar cada recurso compartido. Admite hasta 2000 identificadores simultáneos por archivo o directorio.

Niveles de medios

HDD (discos duros) y SSD (discos de estado sólido). SSD ofrece más rendimiento a un precio mayor.

Carga y sincronización

Se suben archivos desde el portal o con AzCopy. Azure File Sync sincroniza copias en caché local con los datos de Azure Files.

Protocolos: SMB y NFS

ProtocoloClientesMejor para
SMB (Server Message Block)Windows, Linux, macOSRecursos compartidos generales, lift and shift, híbrido con Azure File Sync
NFS (Network File System)Linux (no se admite en Windows)Cargas de Linux, contenedores, HPC
API RESTTodas las plataformasAcceso programático desde aplicaciones

Requisitos de NFS

Para crear un recurso compartido NFS hay que usar el nivel SSD y controlar el acceso mediante un punto de conexión privado o un punto de conexión de servicio de una red virtual.

Casos de uso de Azure Files

  • Sustituir o complementar servidores de archivos locales, montando los recursos directamente o en caché con Azure File Sync, con autenticación basada en identidades de Active Directory local.
  • Lift and shift de aplicaciones que esperan almacenamiento compartido, sin cambiar código.
  • Desarrollo en la nube: configuración compartida, registros de diagnóstico y herramientas comunes entre máquinas virtuales.
  • Contenedores: volúmenes persistentes para contenedores con estado.

Admite almacenamiento con redundancia de zona (ZRS) y geográfica (GRS).

Una solución de almacenamiento NoSQL con tablas de elementos clave-valor. Cada elemento es una fila con columnas para los campos que hay que guardar.

No es una tabla relacional

Una tabla de Azure guarda datos semiestructurados. Cada fila necesita una clave única y una marca de tiempo, pero por lo demás las columnas pueden variar entre filas. No hay claves externas, relaciones, procedimientos almacenados ni vistas.

Los datos suelen estar desnormalizados: cada fila contiene todos los datos de una entidad lógica. Una fila de cliente puede guardar nombre, varios teléfonos y varias direcciones, y otra fila tener un número distinto de campos. En una base relacional, esa información se repartiría en varias filas de varias tablas.

Clave de partición y clave de fila

PartitionKey

Un valor que eliges para agrupar filas relacionadas en la misma partición. Las filas con la misma clave de partición se guardan juntas.

RowKey

Un valor único para cada fila dentro de su partición. Juntas, las dos claves identifican de forma única la fila.

El particionado mejora la escalabilidad y el rendimiento:

  • Las particiones son independientes y crecen o se reducen según se añaden o quitan filas; una tabla puede tener cualquier número de particiones.
  • Incluir la clave de partición en la búsqueda reduce el volumen de datos a examinar y la E/S necesaria.
  • Dentro de una partición las filas se guardan en orden de RowKey, lo que permite consultas puntuales (una fila) y consultas de rango (un bloque contiguo de filas).
  • Las entidades con la misma clave de partición pueden insertarse o actualizarse en operaciones atómicas.

Entidades, propiedades y acceso

ConceptoDescripción
TablaColección de entidades sin esquema impuesto
EntidadConjunto de propiedades, como una fila. Hasta 1 MB en Azure Storage (2 MB en Cosmos DB)
PropiedadPar nombre-valor; hasta 252 por entidad, más tres del sistema: clave de partición, clave de fila y marca de tiempo
Direcciónhttp://<cuenta>.table.core.windows.net/<tabla>, accesible con el protocolo OData

Es adecuado para terabytes de datos estructurados que no necesitan uniones complejas, claves externas ni procedimientos, y suele costar menos que SQL tradicional para volúmenes similares.

Table Storage frente a Cosmos DB for Table

Azure Table StorageAzure Cosmos DB for Table
ModeloClave-valor, PartitionKey + RowKeyEl mismo modelo y programación
RendimientoBaseMayor rendimiento y disponibilidad
DistribuciónEn la cuenta de almacenamientoDistribución global
ÍndicesÍndice agrupado por las clavesÍndices secundarios automáticos en todas las propiedades

Azure Table Storage sigue disponible; Cosmos DB for Table conviene cuando la carga necesita esas capacidades extra (ver Cosmos DB en este dominio).

Escenarios de examen

SituaciónRespuestaPor qué
Sustituir un servidor de archivos local por recursos compartidos en la nubeAzure FilesRecursos compartidos de red gestionados.
Mantener en servidores locales una caché de los archivos compartidos en AzureAzure File SyncSincroniza copias locales con Azure Files.
Montar un recurso compartido desde Windows, Linux y macOSSMBProtocolo multiplataforma.
Un recurso compartido para cargas de Linux y contenedoresNFS (nivel SSD)Solo clientes Linux; requiere el nivel SSD.
Guardar perfiles de usuario con campos variables y acceso rápido por claveAzure Table StorageClave-valor sin esquema.
Consultas rápidas filtrando por la clave de particiónParticionado de Table StorageReduce la E/S necesaria.
Tabla clave-valor con distribución global e índices secundarios automáticosAzure Cosmos DB for TableMismo modelo, más rendimiento y disponibilidad.

Trampas frecuentes del examen

❓ ¿Los recursos compartidos NFS de Azure Files funcionan en Windows?

No. NFS es para clientes Linux; SMB funciona en Windows, Linux y macOS.

❓ ¿Qué nivel exige un recurso compartido NFS?

El nivel SSD, con acceso por punto de conexión privado o de servicio.

❓ ¿Qué identifica de forma única una fila de Azure Table Storage?

La combinación de clave de partición y clave de fila.

❓ ¿Azure Table Storage admite claves externas y procedimientos almacenados?

No. No tiene relaciones, claves externas, procedimientos ni vistas.

❓ ¿Todas las filas de una tabla de Azure deben tener las mismas columnas?

No. Aparte de las claves y la marca de tiempo, las columnas pueden variar: son datos semiestructurados.

❓ ¿Para qué sirve Azure File Sync?

Para sincronizar copias en caché local de los recursos compartidos con Azure Files.

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

Una aplicación guarda datos de dispositivos en Azure Table Storage y casi siempre consulta todos los dispositivos de una misma planta. ¿Qué conviene usar como clave de partición?

¿Listo para poner a prueba "Azure Files y Azure Table Storage"?

Preguntas originales, cada una con su explicación.

Empezar un simulacro