Diferencias funcionales: Amazon Keyspaces vs. Apache Cassandra - Amazon Keyspaces (para Apache Cassandra)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Diferencias funcionales: Amazon Keyspaces vs. Apache Cassandra

A continuación se indican las diferencias funcionales entre Amazon Keyspaces y Apache Cassandra.

Apache CassandraAPIs, operaciones y tipos de datos

Amazon Keyspaces admite todas las operaciones del plano de datos de Cassandra de uso habitual, como la creación de espacios de claves y tablas, y la lectura y escritura de datos. Para ver qué se admite en la actualidad, consulte API, operaciones, funciones y tipos de datos de Cassandra admitidos.

Creación y eliminación asíncronas de espacios de claves y tablas

Amazon Keyspaces realiza operaciones de lenguaje de definición de datos (DDL), como la creación y eliminación de espacios clave y tablas, de forma asíncrona. Para obtener información sobre cómo monitorear el estado de creación de recursos, consulte Compruebe el estado de creación de los espacios de claves en Amazon Keyspaces y Comprueba el estado de creación de la tabla en Amazon Keyspaces. Para obtener una lista de las DDL declaraciones del idioma de referencia, consulteCQL. DDLdeclaraciones (lenguaje de definición de datos) en Amazon Keyspaces

Autenticación y autorización

Amazon Keyspaces (para Apache Cassandra) usa AWS Identity and Access Management (IAM) para la autenticación y autorización de los usuarios, y admite las políticas de autorización equivalentes a las de Apache Cassandra. Como tal, Amazon Keyspaces no admite los comandos de configuración de seguridad de Apache Cassandra.

Lote

Amazon Keyspaces admite comandos en lotes no registrados con un máximo de 30 comandos en el lote. Solo se permiten los comandos incondicionales INSERT, UPDATE o DELETE en un lote. No se admiten lotes registrados.

Configuración del clúster

Amazon Keyspaces no tiene servidor, por lo que no hay clústeres, hosts ni máquinas virtuales Java (JVMs) que configurar. La configuración de Cassandra para compactación, compresión, almacenamiento en caché, recopilación de elementos no utilizados y filtrado bloom no es aplicable a Amazon Keyspaces y se ignora si se especifica.

Conexiones

Puede utilizar los controladores de Cassandra existentes para comunicar con Amazon Keyspaces, pero debe configurarlos de forma diferente. Amazon Keyspaces admite hasta 3000 CQL consultas por TCP conexión por segundo, pero no hay límite en el número de conexiones que puede establecer un conductor.

La mayoría de los controladores de código abierto para Cassandra establecen un grupo de conexiones a Cassandra y equilibran la carga de consultas sobre ese grupo de conexiones. Amazon Keyspaces expone 9 direcciones IP pares a los controladores y el comportamiento predeterminado de la mayoría de los controladores es establecer una única conexión con cada dirección IP homóloga. Por lo tanto, el rendimiento máximo de CQL consultas de un conductor que utilice la configuración predeterminada es de 27 000 CQL consultas por segundo.

Para aumentar esta cifra, le recomendamos aumentar el número de conexiones por dirección IP que su controlador mantiene en su grupo de conexiones. Por ejemplo, si se establece el número máximo de conexiones por dirección IP en 2, se duplica el rendimiento máximo del controlador, hasta 54 000 CQL consultas por segundo.

Como práctica recomendada, recomendamos configurar los controladores para que utilicen 500 CQL consultas por segundo por conexión, a fin de reducir la sobrecarga y mejorar la distribución. En este escenario, la planificación de 18 000 CQL consultas por segundo requiere 36 conexiones. Configurar el controlador para 4 conexiones a través de 9 puntos de conexión proporciona 36 conexiones que realicen 500 consultas por segundo. Para obtener más información sobre las prácticas recomendadas para las conexiones, consulte Optimice las conexiones de los controladores del cliente para el entorno sin servidor.

Al conectarse con VPC puntos de conexión, es posible que haya menos puntos de conexión disponibles. Esto significa que tiene que aumentar el número de conexiones en la configuración del controlador. Para obtener más información sobre las prácticas recomendadas para las VPC conexiones, consulte. Cómo configurar las conexiones a través de VPC puntos de enlace en Amazon Keyspaces

Palabra clave IN

Amazon Keyspaces admite la palabra clave IN en la instrucción SELECT. IN no se admite con UPDATE y DELETE. Al utilizar la palabra clave IN en la instrucción SELECT, los resultados de la consulta se devuelven en el orden en que se presentan las claves en la instrucción SELECT. En Cassandra, los resultados se ordenan lexicográficamente.

Al utilizar ORDER BY, no se admite la reordenación completa con la paginación deshabilitada y los resultados se ordenan dentro de una página. No se admiten las consultas segmentadas con la palabra clave IN. No se admiten TOKENS con la palabra clave IN. Amazon Keyspaces procesa las consultas con la palabra clave IN creando subconsultas. Cada subconsulta se considera una conexión para el límite de 3000 CQL consultas por TCP conexión por segundo. Para obtener más información, consulte Usa el IN operador con la SELECT sentencia en una consulta en Amazon Keyspaces.

CQLajuste del rendimiento de las consultas

Amazon Keyspaces admite hasta 3000 CQL consultas por TCP conexión por segundo, pero no hay límite en el número de conexiones que puede establecer un conductor.

La mayoría de los controladores de código abierto para Cassandra establecen un grupo de conexiones a Cassandra y equilibran la carga de consultas sobre ese grupo de conexiones. Amazon Keyspaces expone 9 direcciones IP pares a los controladores y el comportamiento predeterminado de la mayoría de los controladores es establecer una única conexión con cada dirección IP homóloga. Por lo tanto, el rendimiento máximo de CQL consultas de un conductor que utilice la configuración predeterminada será de 27 000 CQL consultas por segundo.

Para aumentar esta cifra, le recomendamos aumentar el número de conexiones por dirección IP que su controlador mantiene en su grupo de conexiones. Por ejemplo, si se establece el número máximo de conexiones por dirección IP en 2, se duplicará el rendimiento máximo del controlador hasta alcanzar las 54 000 CQL consultas por segundo.

Para obtener más información sobre las prácticas recomendadas para las conexiones, consulte Optimice las conexiones de los controladores del cliente para el entorno sin servidor.

Cuando se conecta con puntos de VPC conexión, hay menos puntos de conexión disponibles. Esto significa que tiene que aumentar el número de conexiones en la configuración del controlador. Para obtener más información sobre las prácticas recomendadas para las conexiones de VPC puntos finales, consulte. Cómo configurar las conexiones a través de VPC puntos de enlace en Amazon Keyspaces

Colecciones FROZEN

La palabra clave FROZEN en Cassandra serializa múltiples componentes de un tipo de datos de colección en un único valor inmutable que se trata como un BLOB. Las instrucciones INSERT y UPDATE sobrescriben toda la colección.

Amazon Keyspaces admite de forma predeterminada hasta cinco niveles de anidamiento para las colecciones congeladas. Para obtener más información, consulte Cuotas de servicio de Amazon Keyspaces.

Amazon Keyspaces no admite comparaciones de desigualdades que utilicen toda la colección congelada en una instrucción condicional UPDATE o SELECT. El comportamiento de las colecciones y las colecciones congeladas es el mismo en Amazon Keyspaces.

Cuando se utilizan colecciones congeladas con marcas de tiempo del lado del cliente, en el caso de que la marca de tiempo de una operación de escritura coincida con la marca de tiempo de una columna existente que no esté caducada o lapidada, Amazon Keyspaces no realiza comparaciones. En su lugar, deja que el servidor determine el escritor más reciente y el escritor más reciente gana.

Para obtener más información sobre colecciones anidadas, consulte Tipos de colección.

Transacciones ligeras

Amazon Keyspaces (para Apache Cassandra) es totalmente compatible con la funcionalidad de comparación y configuración deINSERT, UPDATE y con DELETE los comandos, que se conocen como transacciones ligeras (LWTs) en Apache Cassandra. Como oferta sin servidor, Amazon Keyspaces (para Apache Cassandra) proporciona un rendimiento coherente a cualquier escala, incluso para las transacciones ligeras. Con Amazon Keyspaces, el rendimiento no se ve afectado por el uso de transacciones ligeras.

Equilibrio de carga

Las entradas de la tabla system.peers corresponden a equilibradores de carga de Amazon Keyspaces. Para obtener los mejores resultados, recomendamos utilizar una política de equilibrador de carga round-robin y ajustar el número de conexiones por IP a las necesidades de su aplicación.

Paginación

Amazon Keyspaces pagina los resultados en función del número de filas que lee para procesar una solicitud, no del número de filas devueltas en el conjunto de resultados. Como resultado, es posible que algunas páginas contengan menos filas de las que especificas PAGE SIZE para las consultas filtradas. Además, Amazon Keyspaces pagina los resultados automáticamente después de leer 1 MB de datos para ofrecer a los clientes un rendimiento de lectura coherente de un dígito de milisegundo. Para obtener más información, consulte Paginar los resultados en Amazon Keyspaces.

En las tablas con columnas estáticas, tanto Apache Cassandra como Amazon Keyspaces establecen el valor de la columna estática de la partición al principio de cada página en una consulta de varias páginas. Cuando una tabla tiene filas de datos de gran tamaño, como resultado del comportamiento de paginación de Amazon Keyspaces, es más probable que el resultado de una operación de lectura de rango devuelva más páginas para Amazon Keyspaces que para Apache Cassandra. En consecuencia, existe una mayor probabilidad en Amazon Keyspaces de que las actualizaciones simultáneas de la columna estática provoquen que el valor de la columna estática sea diferente en diferentes páginas del conjunto de resultados del rango leído.

Particionadores

El particionador predeterminado en Amazon Keyspaces es el Murmur3Partitioner compatible con Cassandra. Además, puede elegir entre utilizar el DefaultPartitioner de Amazon Keyspaces o el RandomPartitioner compatible con Cassandra.

Con Amazon Keyspaces, puede cambiar de forma segura el particionador de su cuenta sin tener que recargar los datos de Amazon Keyspaces. Una vez completado el cambio de configuración, que tarda unos 10 minutos, los clientes verán automáticamente la nueva configuración del particionador la próxima vez que se conecten. Para obtener más información, consulte Uso de particionadores en Amazon Keyspaces.

Instrucciones preparadas

Amazon Keyspaces admite el uso de sentencias preparadas para operaciones con el lenguaje de manipulación de datos (DML), como leer y escribir datos. Actualmente, Amazon Keyspaces no admite el uso de declaraciones preparadas para las operaciones del lenguaje de definición de datos (DDL), como la creación de tablas y espacios clave. DDLlas operaciones deben ejecutarse fuera de las declaraciones preparadas.

Eliminación de rangos

Amazon Keyspaces admite la eliminación de filas dentro de un rango. Un rango es un conjunto contiguo de filas dentro de una partición. El rango de una DELETE operación se especifica mediante una WHERE cláusula. Puede especificar que el rango sea una partición entera.

Además, puede especificar que un rango sea un subconjunto de filas contiguas dentro de una partición utilizando operadores relacionales (por ejemplo, “>”, “<”), o incluyendo la clave de partición y omitiendo una o más columnas de agrupación. Con Amazon Keyspaces, puede eliminar hasta 1000 filas dentro de un rango en una sola operación.

Las eliminaciones de rangos no están aisladas. Las eliminaciones de filas individuales son visibles para otras operaciones mientras se está borrando un rango.

Tablas del sistema

Amazon Keyspaces rellena las tablas del sistema que son necesarias para los controladores de Cassandra de código abierto con licencia Apache 2.0. Las tablas del sistema visibles para un cliente contienen información exclusiva del usuario autenticado. Las tablas del sistema están totalmente controladas por Amazon Keyspaces y son de solo lectura. Para obtener más información, consulte Espacios clave del sistema en Amazon Keyspaces.

Se requiere el acceso de solo lectura a las tablas del sistema y se puede controlar mediante políticas de acceso. IAM Para obtener más información, consulte Administración de acceso mediante políticas. Debe definir las políticas de control de acceso basadas en etiquetas para las tablas del sistema de forma diferente en función de si utiliza o no AWS SDKo Cassandra Query Language (CQL) utiliza los controladores y API las herramientas de desarrollo de Cassandra. Para obtener más información sobre el control de acceso basado en etiquetas para las tablas del sistema, consulte Acceso a recursos de Amazon Keyspaces basado en etiquetas.

Si accede a Amazon Keyspaces mediante VPCpuntos de enlace de Amazon, verá entradas en la system.peers tabla para cada punto de enlace de Amazon para los VPC que Amazon Keyspaces tiene permisos de visualización. Como resultado, su controlador Cassandra podría emitir un mensaje de advertencia sobre el propio nodo de control en la tabla system.peers. Puede ignorar sin problemas esta advertencia.

Marcas temporales

En Amazon Keyspaces, las marcas de tiempo a nivel de celda que son compatibles con las marcas de tiempo predeterminadas en Apache Cassandra son una característica opcional.

La cláusula USING TIMESTAMP y la función WRITETIME solo están disponibles cuando las marcas de tiempo del lado del cliente están activadas para una tabla. Para obtener más información sobre las marcas de tiempo del lado del cliente en Amazon Keyspaces, consulte Marcas de tiempo del lado del cliente en Amazon Keyspaces.