Brains4Cloud
ESEN
Practicar

Tema 5 de 5

D2 · Datos relacionales en Azure

Bases de datos de código abierto en Azure

No todas las organizaciones usan SQL Server. Para las que trabajan con MySQL o PostgreSQL, Azure ofrece versiones gestionadas de esos motores. El examen pide identificar estos servicios, reconocer qué distingue a cada motor y qué ventajas da la versión PaaS.

Por qué hay servicios de código abierto

Además de Azure SQL, Azure ofrece servicios de datos para otros sistemas relacionales populares, como MySQL y PostgreSQL. El motivo principal es permitir que las organizaciones que ya los usan en aplicaciones locales se trasladen a Azure rápido, sin cambios importantes en sus aplicaciones.

Como con Azure SQL, los administradores los gestionan para aplicaciones transaccionales, y sirven de origen para los pipelines de los ingenieros de datos y los informes de los analistas.

¿Qué es MySQL?

MySQL nació como un sistema de gestión de bases de datos de código abierto fácil de usar. Es muy popular en aplicaciones del stack LAMP (Linux, Apache, MySQL y PHP).

Community

Gratuita; históricamente muy usada en aplicaciones web sobre Linux. También hay versiones para Windows.

Standard

Edición comercial, de pago.

Enterprise

Comercial, con más herramientas de seguridad, disponibilidad y escalabilidad.

¿Qué es PostgreSQL?

PostgreSQL es una base de datos objeto-relacional: guarda datos en tablas relacionales, pero también permite tipos de datos personalizados con sus propias propiedades no relacionales.

  • Extensible: se le pueden añadir módulos de código que se ejecutan desde las consultas.
  • Puede guardar y manipular datos geométricos: líneas, círculos y polígonos.
  • Tiene su propio lenguaje procedimental, PL/pgSQL, que amplía SQL para escribir procedimientos almacenados dentro de la base.

Implementación PaaS de MySQL en Azure, basada en MySQL Community Edition (versiones 5.7, 8.0 y 8.4 en servidor flexible). Escala a bases grandes sin gestionar hardware, red, servidores virtuales ni parches.

Alta disponibilidad

Integrada, con conmutación por error automática.

Copias y restauración

Copias automáticas y restauración a un momento dado de hasta 35 días (7 por defecto).

Seguridad de conexión

Reglas de firewall y, opcionalmente, conexiones TLS obligatorias. Datos protegidos en reposo y en movimiento.

Configuración y pago

Parámetros de servidor (modos de bloqueo, conexiones máximas, tiempos de espera) y pago por uso. Métricas, registros y alertas.

Algunas operaciones, sobre todo de seguridad y administración del propio servidor, no están disponibles porque las gestiona Azure.

Implementación PaaS de PostgreSQL con las mismas ventajas de disponibilidad, rendimiento, escalado, seguridad y administración que el servicio de MySQL.

  • Alta disponibilidad con detección de fallos y conmutación por error integradas, dentro de una zona o entre varias zonas de disponibilidad.
  • Separa proceso y almacenamiento; el almacenamiento mantiene tres copias síncronas y locales de los archivos de la base.
  • Admite un conjunto de extensiones, pero no todas las de PostgreSQL local.
  • Se puede seguir usando pgAdmin para gestionar y supervisar, aunque sin funciones de servidor como copias y restauraciones, que gestiona Microsoft.
  • El almacén de consultas registra las consultas ejecutadas en una base llamada azure_sys; se consultan en la vista query_store.qs_view para ajustar el rendimiento.

Servidor flexible

Ambos servicios se despliegan como servidor flexible (flexible server): un servicio totalmente gestionado que da un control más granular de la administración y la configuración, con opciones para optimizar costes.

Para probar sin coste

Con una cuenta gratuita de Azure, el servidor flexible de MySQL y el de PostgreSQL se pueden usar gratis durante 12 meses.

Comparativa con Azure SQL

Azure SQLAzure Database for MySQLAzure Database for PostgreSQL
MotorSQL ServerMySQL Community EditionPostgreSQL
DialectoT-SQLSQL de MySQLPL/pgSQL
Rasgo distintivoOpciones IaaS y PaaSStack LAMP, aplicaciones webObjeto-relacional, extensible, datos geométricos
Motivo típicoOrganizaciones con SQL ServerMigrar apps MySQL sin cambiosMigrar apps PostgreSQL sin cambios

Escenarios de examen

SituaciónRespuestaPor qué
Migrar una aplicación web LAMP a un servicio gestionadoAzure Database for MySQLMySQL es la base típica del stack LAMP.
Guardar formas geométricas (líneas, polígonos) y tipos de datos propiosAzure Database for PostgreSQLBase objeto-relacional y extensible.
Escribir procedimientos almacenados en PL/pgSQLAzure Database for PostgreSQLEs su lenguaje procedimental.
Recuperar una base de MySQL a como estaba hace 20 díasRestauración a un momento dadoHasta 35 días (7 por defecto).
Revisar qué consultas ejecutan los usuarios en PostgreSQLAlmacén de consultas (query store)Guarda información en la base azure_sys.
Mover una app con SQL Server con los mínimos cambiosAzure SQL, no MySQL ni PostgreSQLCada servicio corresponde a su motor.
Más control sobre la configuración del servidor y del costeServidor flexibleControl granular y opciones de ahorro.

Trampas frecuentes del examen

❓ ¿En qué edición de MySQL se basa Azure Database for MySQL?

En MySQL Community Edition.

❓ ¿PostgreSQL es una base puramente relacional?

Es objeto-relacional: además de tablas admite tipos de datos personalizados con propiedades no relacionales.

❓ ¿Cuántos días de restauración a un momento dado ofrece Azure Database for MySQL?

Hasta 35 días, con 7 por defecto.

❓ ¿Azure Database for PostgreSQL admite todas las extensiones de PostgreSQL local?

No. Admite un conjunto de extensiones y módulos, no todas.

❓ ¿Puedo hacer copias y restauraciones de servidor con pgAdmin en Azure?

No. pgAdmin sirve para gestionar y supervisar, pero esas funciones de servidor las gestiona Microsoft.

❓ ¿Cuál es el principal motivo de estos servicios?

Que quien ya usa MySQL o PostgreSQL pueda moverse a Azure rápido y sin cambios importantes en sus apps.

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

Un equipo tiene una aplicación que guarda datos geográficos como polígonos y usa tipos de datos personalizados. Quieren un servicio gestionado en Azure sin cambiar de motor. ¿Qué eligen?

¿Listo para poner a prueba "Bases de datos de código abierto en Azure"?

Preguntas originales, cada una con su explicación.

Empezar un simulacro