Determinación del tipo de aplicación en Azure Cosmos DB for PostgreSQL

SE APLICA A: Azure Cosmos DB for PostgreSQL (con tecnología de la extensión de base de datos de Citus en PostgreSQL)

Para ejecutar consultas eficaces en un clúster, es necesario que las tablas se distribuyan correctamente entre los servidores. La distribución recomendada varía según el tipo de aplicación y sus patrones de consulta.

En general, existen dos tipos de aplicaciones que funcionan bien en Azure Cosmos DB for PostgreSQL. El primer paso para el modelado de datos es identificar qué tipo se parece más a la aplicación.

De un vistazo

Aplicaciones multiinquilino Aplicaciones en tiempo real
A veces, decenas o centenares de tablas en el esquema Pocas tablas
Consultas relacionadas con un único inquilino (empresa o tienda) cada vez Consultas de análisis relativamente sencillas con agregaciones
Cargas de trabajo de OLTP para prestar servicio a clientes web Gran volumen de ingesta de datos principalmente inmutables
Cargas de trabajo de OLAP que atienden consultas de análisis por inquilino Enfoque habitual en una gran tabla de eventos

Ejemplos y características

Aplicación multiinquilino

Suelen ser aplicaciones SaaS que sirven para otras compañías, cuentas u organizaciones. La mayoría de las aplicaciones SaaS son intrínsecamente relacionales. Tienen una dimensión natural en la que distribuir los datos entre los nodos: solo con particiones por tenant_id.

Azure Cosmos DB for PostgreSQL permite escalar horizontalmente la base de datos a millones de inquilinos sin necesidad de volver a diseñar la aplicación. Puede mantener la semántica relacional que necesita, como combinaciones, restricciones de clave externa, transacciones, ACID y coherencia.

  • Ejemplos: sitios web en los que se almacenan los escaparates de otras empresas, como una solución de marketing digital o una herramienta de automatización de ventas.
  • Características: consultas relacionadas con un solo inquilino en lugar de combinar información entre los inquilinos. Esto incluye las cargas de trabajo de OLTP para prestar servicio a los clientes web y las cargas de trabajo de OLAP que atienden consultas de análisis por inquilino. Tener docenas o centenares de tablas en el esquema de la base de datos también es un indicador del modelo de datos multiinquilino.

El escalado de una aplicación multiinquilino con Azure Cosmos DB for PostgreSQL también requiere realizar cambios mínimos en el código de la aplicación. Se ofrece compatibilidad con marcos populares, como Ruby on Rails y Django.

Análisis en tiempo real

Las aplicaciones necesitan paralelismos masivos y coordinan cientos de núcleos para obtener resultados rápidos en consultas numéricas, estadísticas o de recuento. Mediante el particionamiento y la paralelización de consultas SQL en varios nodos, Azure Cosmos DB for PostgreSQL permite realizar consultas en tiempo real en miles de millones de registros en menos de un segundo.

Las tablas de los modelos de datos de análisis en tiempo real normalmente se distribuyen por columnas, como user_id, host_id o device_id.

  • Ejemplos: paneles de análisis orientados al cliente que requieren tiempos de respuesta en fracciones de segundo.
  • Características: pocas tablas, que a menudo se centran en una gran tabla de eventos de dispositivo, sitio o usuario, y que, además, requieren un gran volumen de ingesta de datos principalmente inmutables. Consultas de análisis relativamente sencillas (pero de cálculo intensivo) que implican varias agregaciones e instrucciones GROUP BY.

Si su caso se parece a cualquiera de los anteriores, el siguiente paso es decidir cómo particionar los datos en el clúster. La elección de las columnas de distribución del administrador de bases de datos debe coincidir con los patrones de acceso de las consultas típicas para garantizar el rendimiento.

Pasos siguientes