Elección de una API en Azure Cosmos DB

SE APLICA A: NoSQL MongoDB Cassandra Gremlin Table PostgreSQL

Azure Cosmos DB es una base de datos NoSQL totalmente administrada para el desarrollo de aplicaciones modernas. Azure Cosmos DB le libera de la administración de bases de datos con administración, actualizaciones y revisiones automáticas. También controla la administración de la capacidad con opciones de escalado automático y sin servidor rentables que responden a las necesidades de la aplicación para hacer coincidir la capacidad con la demanda.

Las API en Azure Cosmos DB

Azure Cosmos DB ofrece varias API de base de datos, como NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin y Table. Con estas API, puede modelar datos reales mediante documentos, clave-valor, grafos y modelos de datos de familia de columnas. Estas API permiten que las aplicaciones traten Azure Cosmos DB como si fueran otras tecnologías de bases de datos, sin la sobrecarga de los enfoques de administración y escalado. Azure Cosmos DB le ayuda a usar los ecosistemas, las herramientas y las aptitudes que ya tiene para el modelado y las consultas de datos con sus distintas API.

Todas las API ofrecen garantías de escalado automático del rendimiento y del almacenamiento, flexibilidad y rendimiento. No hay ninguna API que sea la mejor, y puede elegir cualquiera de las API para compilar la aplicación. Este artículo le ayudará a elegir una API en función de los requisitos de la carga de trabajo y del equipo.

Consideraciones al elegir una API

La API para NoSQL es nativa de Azure Cosmos DB.

Las API para MongoDB, PostgreSQL, Cassandra, Gremlin y Table implementan el protocolo de conexión de los motores de base de datos de código abierto. Estas API son más adecuadas si se cumplen las condiciones siguientes:

  • Si tiene aplicaciones existentes de MongoDB, PostgreSQL, Cassandra o Gremlin.
  • Si no quiere reescribir toda la capa de acceso a datos.
  • Si quiere usar el ecosistema para desarrolladores de código abierto, los controladores de cliente, la experiencia y los recursos de su base de datos.
  • Si desea usar las características principales de Azure Cosmos DB, como:
    • Distribución global
    • Escalado elástico del almacenamiento y el rendimiento
    • Alto rendimiento a gran escala
    • Baja latencia.
    • Capacidad de ejecutar cargas de trabajo transaccionales y analíticas
    • Plataforma totalmente administrada
  • Si está desarrollando aplicaciones modernizadas en un entorno de varias nubes.

Puede compilar nuevas aplicaciones con estas API o migrar los datos existentes. Para ejecutar las aplicaciones migradas, cambie la cadena de conexión de la aplicación y siga con la ejecución como antes. Al migrar aplicaciones existentes, asegúrese de evaluar la compatibilidad de estas API con las distintas características.

En función de la carga de trabajo, debe elegir la API que se ajuste a sus necesidades. En la imagen siguiente se muestra un gráfico de flujo sobre cómo elegir la API adecuada al compilar nuevas aplicaciones o migrar aplicaciones existentes a Azure Cosmos DB:

Diagram of the decision tree to choose an API in Azure Cosmos DB.

Diagrama del árbol de decisión para elegir una API en Azure Cosmos DB. La mitad del diagrama muestra cuántas cargas de trabajo de base de datos de código abierto existentes pueden usar las API correspondientes para Azure Cosmos DB. La otra mitad del diagrama muestra cómo las nuevas aplicaciones pueden usar la API para NoSQL o usar sus aptitudes existentes con las API para bases de datos de código abierto.

API para NoSQL

La API para NoSQL de Azure Cosmos DB almacena datos en formato de documento. Ofrece la mejor experiencia integral, ya que se tiene control total sobre la interfaz, el servicio y las bibliotecas cliente del SDK. Toda nueva característica que se implantada en Azure Cosmos DB primero está disponible en las cuentas de la API para NoSQL. Las cuentas de NoSQL brindan compatibilidad para consultar elementos mediante la sintaxis del Lenguaje de consulta estructurado (SQL), uno de los lenguajes de consulta más conocidos y populares para consultar objetos JSON. Para obtener más información, consulte el módulo de entrenamiento de la API para NoSQL de Azure Cosmos DB y el artículo Introducción a las consultas SQL.

Si va a migrar desde otras bases de datos, como Oracle, DynamoDB, HBase, etc., y quiere usar las tecnologías modernizadas para compilar las aplicaciones, la API para NoSQL es la opción recomendada. La API para NoSQL admite análisis y ofrece aislamiento de rendimiento entre cargas de trabajo operativas y analíticas.

API para MongoDB

La API para MongoDB de Azure Cosmos DB almacena los datos en una estructura de documentos a través del formato BSON. Es compatible con el protocolo de conexión de MongoDB; sin embargo, no usa ningún código nativo relacionado con MongoDB. La API para MongoDB es una excelente opción si desea usar el ecosistema y las aptitudes más amplios de MongoDB, sin poner en peligro el uso de características de Azure Cosmos DB.

Algunas de las características que proporciona Azure Cosmos DB en las que no tiene que comprometerse son las siguientes:

  • Ampliación
  • Alta disponibilidad
  • Replicación geográfica
  • Múltiples ubicaciones de escritura
  • Administración automática y transparente de particiones
  • Replicación transparente entre almacenes operativos y analíticos

Para usar las aplicaciones de MongoDB existentes con la API para MongoDB, simplemente cambie la cadena de conexión. Puede mover los datos existentes mediante herramientas nativas de MongoDB, como mongodump y mongorestore, o con nuestra herramienta Azure Database Migration. Las herramientas, como el shell de MongoDB, MongoDB Compass y Robo3T, pueden ejecutar consultas y trabajar con datos como lo hacen con MongoDB nativo. Para más información, consulte el artículo API para MongoDB.

API para PostgreSQL

Azure Cosmos DB for PostgreSQL es un servicio administrado para ejecutar PostgreSQL a cualquier, con la superpotencia del código abierto de Citus de tablas distribuidas. Almacena datos en un único nodo o distribuidos en una configuración de varios nodos.

Azure Cosmos DB for PostgreSQL se basa en PostgreSQL nativo, y no en una bifurcación de PostgreSQL, y le permite elegir cualquier versión de base de datos principal compatible con la comunidad de PostgreSQL. Es ideal para comenzar en una base de datos de un solo nodo con indización enriquecida, funcionalidades geoespaciales y compatibilidad con JSONB. Más adelante, si necesita más rendimiento, puede agregar nodos al clúster sin tiempo de inactividad.

Si busca una base de datos relacional de código abierto administrada con un alto rendimiento y replicación geográfica, Azure Cosmos DB para PostgreSQL es la opción recomendada. Para obtener más información, consulte la introducción de Azure Cosmos DB para PostgreSQL.

API para Apache Cassandra

La API para Cassandra de Azure Cosmos DB almacena los datos en el esquema orientado a columnas. Apache Cassandra ofrece un enfoque de escalado horizontal y altamente distribuido para almacenar grandes volúmenes de datos, al tiempo que ofrece un enfoque flexible para un esquema orientado a columnas. La API para Cassandra de Azure Cosmos DB se alinea con esta filosofía relativa a las bases de datos NoSQL distribuidas. Esta API para Cassandra es compatible con el protocolo de conexión nativo de Apache Cassandra. Debe considerar la posibilidad de usar la API para Cassandra si quiere aprovechar la elasticidad y la naturaleza totalmente administrada de Azure Cosmos DB, y seguir usando la mayoría de las características, herramientas y el ecosistema nativos de Apache Cassandra. Esta naturaleza totalmente administrada significa que, con la API para Cassandra, no es necesario administrar el sistema operativo, VM Java, el recolector de elementos no utilizados, el rendimiento de lectura y escritura, los nodos, los clústeres, etc.

Puede usar controladores de cliente de Apache Cassandra para conectarse a la API para Cassandra. La API para Cassandra permite interactuar con los datos mediante Cassandra Query Language (CQL), y herramientas como el shell de CQL, controladores de cliente de Cassandra con los que ya está familiarizado. Actualmente, la API para Cassandra solo admite escenarios OLTP. Con la API para Cassandra, también puede usar las características únicas de Azure Cosmos DB, como la fuente de cambios. Para más información, consulte el artículo API para Cassandra. Para obtener más información si ya está familiarizado con Apache Cassandra, pero no está familiarizado con Azure Cosmos DB, consulte cómo adaptarse a la API para Cassandra.

API para Apache Gremlin

La API para Gremlin de Azure Cosmos DB permite a los usuarios realizar consultas de grafos y almacenar datos como bordes y vértices.

Use la API para Gremlin en los escenarios que:

  • Impliquen datos dinámicos
  • Impliquen datos con relaciones complejas
  • Impliquen datos demasiado complejos para modelar con bases de datos relacionales
  • Desee usar el ecosistema y las aptitudes de Gremlin existentes

La API para Gremlin combina la potencia de los algoritmos de base de datos de grafo con una infraestructura administrada altamente escalable. Esta API brinda una solución única y flexible para los problemas de datos comunes asociados a la falta de flexibilidad o enfoques relacionales. Actualmente, la API para Gremlin solo admite escenarios OLTP.

La API para Gremlin se basa en el marco de trabajo de computación de grafos Apache TinkerPop. La API para Gremlin usa el mismo lenguaje de consulta de Graph para ingerir y consultar datos. Usa la estrategia de particiones de Azure Cosmos DB para realizar las operaciones de lectura y escritura desde el motor de base de datos de Graph. La API para Gremlin tiene compatibilidad con el protocolo de conexión con Gremlin de código abierto, por lo que puede usar los SDK de Gremlin de código abierto para compilar la aplicación. La API para Gremlin también funciona con Apache Spark y GraphFrames para escenarios de grafos analíticos complejos. Para más información, consulte el artículo API para Gremlin.

API para Table

La API para Table de Azure Cosmos DB almacena datos en formato clave-valor. Si actualmente usa Azure Table Storage, es posible que observe algunas limitaciones en la latencia, el escalado, el rendimiento, la distribución global, la administración de índices y el bajo rendimiento de las consultas. La API para Table supera estas limitaciones y se recomienda migrar la aplicación si quiere aprovechar las ventajas de Azure Cosmos DB. La API para Table solo admite escenarios OLTP.

Las aplicaciones escritas para Azure Table Storage pueden migrarse a la API para Table con pocos cambios en el código, y pueden sacar provecho de las funcionalidades prémium. Para más información, consulte el artículo API para Table.

Planificación de capacidad al migrar datos

¿Desea planear la capacidad para una migración a Azure Cosmos DB for NoSQL o MongoDB desde un clúster de base de datos existente? Para ello, puede usar información sobre el clúster de bases de datos existente.

Pasos siguientes