

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.

# ¿Qué es Amazon Keyspaces (para Apache Cassandra)?
<a name="what-is-keyspaces"></a>

 Amazon Keyspaces (para Apache Cassandra) es un servicio de base de datos escalable, altamente disponible y administrado compatible con Apache Cassandra. Con Amazon Keyspaces, no tiene que aprovisionar, parchear ni administrar servidores, ni tampoco instalar, mantener ni utilizar software. 

Amazon Keyspaces funciona sin servidor, por lo que solo paga por los recursos que utiliza, y el servicio escala automáticamente las tablas en alza o en baja en respuesta al tráfico de la aplicación. Puede crear aplicaciones que atiendan miles de solicitudes por segundo con un rendimiento y un almacenamiento prácticamente ilimitados. 

**nota**  
 Apache Cassandra es un almacén de datos de código abierto y columnas anchas que está diseñado para gestionar grandes cantidades de datos. Para obtener más información, consulte [Apache Cassandra](http://cassandra.apache.org/).

Amazon Keyspaces facilita la migración, ejecución y escalado de las cargas de trabajo de Cassandra en la Nube de AWS. Con solo unos clics en la consola de AWS administración o unas pocas líneas de código, puede crear espacios clave y tablas en Amazon Keyspaces, sin necesidad de implementar ninguna infraestructura ni instalar software.

Con Amazon Keyspaces, puede ejecutar sus cargas de trabajo de Cassandra existentes con el mismo código de aplicación de Cassandra y las mismas herramientas de desarrollador que AWS utiliza actualmente. 

Con la [calculadora de precios de Amazon Keyspaces (para Apache Cassandra)](https://aws-samples.github.io/sample-pricing-calculator-for-keyspaces/#cassandra) disponible en Github, puede estimar los costes mensuales de Amazon Keyspaces en función de su carga de trabajo actual de Apache Cassandra. Introduzca las métricas del resultado de estado de Cassandra nodetool y de la configuración sin servidor prevista para Amazon Keyspaces a fin de comparar los costes directos entre las dos soluciones. Tenga en cuenta que esta calculadora se centra únicamente en los costes operativos de Amazon Keyspaces en comparación con su implementación actual de Cassandra. No incluye los factores del costo total de propiedad (TCO), como el mantenimiento de la infraestructura, los gastos operativos o los costos de soporte de Cassandra.

Para obtener una lista de puntos de enlace Regiones de AWS y disponibles, consulte Puntos de [enlace de servicio para Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/programmatic.endpoints.html).

Le recomendamos que, para comenzar, lea las siguientes secciones:

**Topics**
+ [Amazon Keyspaces: Cómo funciona](how-it-works.md)
+ [Casos de uso de Amazon Keyspaces](use-cases.md)
+ [¿Qué es Cassandra Query Language (CQL)?](what-is-cql.md)

# Amazon Keyspaces: Cómo funciona
<a name="how-it-works"></a>

Amazon Keyspaces elimina la sobrecarga administrativa que supone administrar Cassandra. Para entender por qué, resulta útil comenzar con la arquitectura de Cassandra y luego compararla con la de Amazon Keyspaces.

**Topics**
+ [Arquitectura de alto nivel: Apache Cassandra vs. Amazon Keyspaces](#how-it-works.cassandra-arch)
+ [Modelo de datos de Cassandra](#how-it-works.data-model)
+ [Acceso a Amazon Keyspaces desde una aplicación](#how-it-works.keyspaces-arch.accessing)

## Arquitectura de alto nivel: Apache Cassandra vs. Amazon Keyspaces
<a name="how-it-works.cassandra-arch"></a>

 Apache Cassandra tradicional se implementa en un clúster formado por uno o más nodos. Usted es responsable de administrar cada nodo y de añadir y eliminar nodos a medida que su clúster escala. 

Un programa cliente accede a Cassandra conectándose a uno de los nodos y emitiendo instrucciones en Cassandra Query Language (CQL). *CQL* es similar a SQL, el popular lenguaje utilizado en las bases de datos relacionales. Si bien Cassandra no es una base de datos relacional, CQL proporciona una interfaz familiar para consultar y manipular datos en Cassandra.

El siguiente diagrama muestra un clúster simple de Apache Cassandra formado por cuatro nodos.

![\[Diagrama de un cluster de Apache Cassandra que contiene 4 nodos e interactúa con una aplicación cliente.\]](http://docs.aws.amazon.com/es_es/keyspaces/latest/devguide/images/keyspaces_cassandra-hi-level.png)


Una implementación de Cassandra en producción puede constar de cientos de nodos ejecutándose en cientos de ordenadores físicos a través de uno o varios centros de datos físicos. Esto puede suponer una carga operativa para los desarrolladores de aplicaciones que necesitan aprovisionar, parchear y administrar los servidores, además de instalar, mantener y operar el software. 

Con Amazon Keyspaces (para Apache Cassandra), no necesita aprovisionar, parchear ni administrar servidores, por lo que puede centrarse en crear mejores aplicaciones. Amazon Keyspaces ofrece dos modos de capacidad de rendimiento para lecturas y escrituras: bajo demanda y aprovisionada. Puede elegir el modo de capacidad de rendimiento de su tabla para optimizar el precio de las lecturas y escrituras en función de la previsibilidad y variabilidad de su carga de trabajo. 

Con el modo bajo demanda, paga solo por las lecturas y escrituras que su aplicación realmente realiza. No necesita especificar de antemano la capacidad de rendimiento de su tabla. Amazon Keyspaces acomoda el tráfico de su aplicación casi al instante a medida que aumenta o disminuye, lo que lo convierte en una buena opción para aplicaciones con tráfico impredecible.

El modo de capacidad aprovisionada le ayuda a optimizar el precio del rendimiento si tiene un tráfico de aplicaciones predecible y puede prever con antelación los requisitos de capacidad de su tabla. Con el modo de capacidad aprovisionada, usted especifica el número de lecturas y escrituras por segundo que espera que realice su aplicación. Al habilitar [escalado automático](https://docs.aws.amazon.com/keyspaces/latest/devguide/autoscaling.html), puede aumentar y disminuir automáticamente la capacidad aprovisionada de su tabla.

Puede cambiar el modo de capacidad de su tabla una vez al día a medida que obtenga más información sobre los patrones de tráfico de su carga de trabajo, o si espera tener un gran aumento de tráfico, por ejemplo, debido a un evento importante que prevea que generará mucho tráfico en la tabla. Para obtener más información sobre la capacidad de lectura y escritura aprovisionada, consulte [Configurar los modos de read/write capacidad en Amazon Keyspaces](ReadWriteCapacityMode.md). 

Amazon Keyspaces (para Apache Cassandra) almacena tres copias de sus datos en múltiples [Zonas de Disponibilidad](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) para garantizar durabilidad y alta disponibilidad. Además, se beneficia de un centro de datos y una arquitectura de red creados para satisfacer los requisitos de las organizaciones más sensibles a la seguridad. El cifrado en reposo se habilita de forma automática al crear una nueva tabla de Amazon Keyspaces y todas las conexiones de cliente requieren Seguridad de la capa de transporte (TLS). Las funciones AWS de seguridad adicionales incluyen la [supervisión](https://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring.html) y los puntos finales de [nube privada virtual (VPC). [AWS Identity and Access Management](https://docs.aws.amazon.com/keyspaces/latest/devguide/security_iam_service-with-iam.html)](https://docs.aws.amazon.com/keyspaces/latest/devguide/vpc-endpoints.html) Para obtener información general sobre todas las características de seguridad disponibles, consulte [Seguridad en Amazon Keyspaces (para Apache Cassandra)](security.md). 

En el siguiente diagrama se muestra la arquitectura de Amazon Keyspaces.

![\[Diagrama de Amazon Keyspaces en interacción con la aplicación cliente.\]](http://docs.aws.amazon.com/es_es/keyspaces/latest/devguide/images/keyspaces-hi-level.png)


Un programa cliente accede a Amazon Keyspaces conectándose a un punto de conexión predeterminado (nombre de host y número de puerto) y emitiendo instrucciones CQL. Para obtener una lista de los puntos de conexión disponibles, consulte [Puntos de conexión de servicio para Amazon Keyspaces](programmatic.endpoints.md).

## Modelo de datos de Cassandra
<a name="how-it-works.data-model"></a>

La forma en que modele los datos para su caso de negocio es fundamental a fin de lograr un rendimiento óptimo de Amazon Keyspaces. Un modelo de datos deficiente puede degradar significativamente el rendimiento.

Si bien CQL tiene un aspecto similar a SQL, los backends de Cassandra y las bases de datos relacionales son muy diferentes y deben abordarse de forma distinta. A continuación se exponen algunas de las cuestiones más significativas a tener en cuenta:

**Almacenamiento**  
Puede visualizar sus datos de Cassandra en tablas, en las que cada fila representa un registro y cada columna un campo dentro de ese registro. 

**Diseño de tablas: Primero la consulta**  
En CQL no existen `JOIN`. Por lo tanto, debería diseñar sus tablas teniendo en cuenta la forma de sus datos y cómo necesita acceder a ellos para sus casos de uso empresarial. Esto podría dar lugar a una desnormalización con datos duplicados. Debería diseñar cada una de sus tablas de forma específica para un patrón de acceso concreto.

**Particiones**  
 Sus datos se almacenan en particiones en disco. El número de particiones en las que se almacenan sus datos y cómo se distribuyen entre las particiones viene determinado por su *clave de partición*. La forma en que defina su clave de partición puede tener un impacto significativo en el rendimiento de sus consultas. Para ver las prácticas recomendadas, consulte [Uso eficaz de las claves de partición en Amazon Keyspaces](bp-partition-key-design.md).

**Clave principal**  
En Cassandra, los datos se almacenan como pares clave-valor. Cada tabla de Cassandra debe tener una clave principal, que es la clave de cada fila de la tabla. La clave principal es el compuesto de una clave de partición requerida y columnas de agrupación opcionales. Los datos que conformen la clave principal deben ser únicos en todos los registros de una tabla.  
+ **Clave de partición**: la parte clave de partición de la clave principal es obligatoria y determina en qué partición de su clúster se almacenan los datos. La clave de partición puede ser una única columna o un valor compuesto formado por dos o más columnas. Usaría una clave de partición compuesta si una clave de partición de una sola columna diera como resultado una sola partición o unas pocas particiones con la mayoría de los datos y, por lo tanto, con la mayoría de las operaciones del disco I/O . 
+ **Columna de agrupación**: la parte opcional de la columna de agrupación de su clave principal determina cómo se agrupan y ordenan los datos dentro de cada partición. Si incluye una columna de agrupación en su clave principal, la columna de agrupación puede tener una o más columnas. Si hay múltiples columnas en la columna de agrupación, el orden de clasificación viene determinado por el orden en que aparecen las columnas en la columna de agrupación, de izquierda a derecha.

Para obtener más información sobre el diseño NoSQL y Amazon Keyspaces, consulte [Diferencias clave y principios de diseño del diseño NoSQL](bp-general-nosql-design.md). Para obtener más información sobre Amazon Keyspaces y el modelado de datos, consulte [Prácticas recomendadas de modelado de datos: recomendaciones para diseñar modelos de datos](data-modeling.md).

## Acceso a Amazon Keyspaces desde una aplicación
<a name="how-it-works.keyspaces-arch.accessing"></a>

Amazon Keyspaces (para Apache Cassandra) implementa la API Apache Cassandra Query Language (CQL), por lo que puede utilizar CQL y los controladores de Cassandra que ya utilice. Actualizar su aplicación es tan sencillo como actualizar su controlador de Cassandra o su configuración de `cqlsh` para que apunte al punto de conexión del servicio de Amazon Keyspaces. Para obtener más información sobre las credenciales necesarias, consulte [Creación y configuración de AWS credenciales para Amazon Keyspaces](access.credentials.md). 

**nota**  
Para ayudarle a empezar, puede encontrar ejemplos de end-to-end código sobre cómo conectarse a Amazon Keyspaces mediante varios controladores de cliente de Cassandra en el repositorio de ejemplos de código de Amazon Keyspaces en. [GitHub](https://github.com/aws-samples/amazon-keyspaces-examples)

 Considere el siguiente programa Python, que se conecta a un clúster de Cassandra y consulta una tabla.

```
from cassandra.cluster import Cluster
#TLS/SSL configuration goes here

ksp = 'MyKeyspace'
tbl = 'WeatherData'

cluster = Cluster(['NNN.NNN.NNN.NNN'], port=NNNN)
session = cluster.connect(ksp)

session.execute('USE ' + ksp)

rows = session.execute('SELECT * FROM ' +  tbl)
for row in rows:
    print(row)
```

Para ejecutar el mismo programa en Amazon Keyspaces, necesita: 
+  **Añadir el punto de conexión del clúster y el puerto**: por ejemplo, el host se puede sustituir por un punto de conexión de servicio, como `cassandra.us-east-1.amazonaws.com`, y el número de puerto por: `9142`. 
+  **Añadir la TLS/SSL configuración**: para obtener más información sobre cómo añadir la TLS/SSL configuración para conectarse a Amazon Keyspaces mediante un controlador Python del cliente Cassandra, consulte. [Uso de un controlador de cliente Python para Cassandra para acceder mediante programación a Amazon Keyspaces](using_python_driver.md) 

# Casos de uso de Amazon Keyspaces
<a name="use-cases"></a>

A continuación se describen algunas de las formas en que puede utilizar Amazon Keyspaces:
+  **Cree aplicaciones que requieran baja latencia**: procese datos a altas velocidades para las aplicaciones que requieren single-digit-millisecond latencia, como el mantenimiento de equipos industriales, la supervisión del comercio, la administración de flotas y la optimización de rutas. 
+  **Cree aplicaciones con tecnologías de código abierto**: cree aplicaciones AWS con Cassandra de código abierto APIs y controladores disponibles para una amplia gama de lenguajes de programación, como Java, Python, Ruby, Microsoft.NET, Node.js, PHP, C\$1\$1, Perl y Go. Para ver ejemplos de código, consulte [Bibliotecas y herramientas para Amazon Keyspaces (para Apache Cassandra)](examples-tools.md).
+  **Movimiento de sus cargas de trabajo de Cassandra a la nube**: administrar usted mismo las tablas de Cassandra lleva mucho tiempo y resulta costoso. Con Amazon Keyspaces, puede configurar, proteger y escalar las tablas de Cassandra Nube de AWS sin necesidad de administrar la infraestructura. Para obtener más información, consulte [Administración de recursos sin servidor en Amazon Keyspaces (para Apache Cassandra)](serverless_resource_management.md).

# ¿Qué es Cassandra Query Language (CQL)?
<a name="what-is-cql"></a>

*Cassandra Query Language* (CQL) es el lenguaje principal para comunicar con Apache Cassandra. Amazon Keyspaces (para Apache Cassandra) es compatible con la API 3.x de CQL (retrocompatible con la versión 2.x). 

En CQL, los datos se almacenan en tablas, columnas y filas. En este sentido, CQL es similar al lenguaje Structured Query Language (SQL). A continuación, se describen los conceptos clave de CQL.
+ **Elementos de CQL**: los elementos fundamentales de CQL son los identificadores, las constantes, los términos y los tipos de datos. 
+ **Lenguaje de definición de datos (DDL)**: las sentencias DDL se utilizan para gestionar estructuras de datos, como los espacios clave y las tablas, que son AWS recursos de Amazon Keyspaces. Las sentencias DDL son operaciones del plano de control en. AWS
+ **Lenguaje de manipulación de datos (DML)**: las instrucciones de DML se utilizan para administrar los datos de las tablas. Las instrucciones DML se utilizan para seleccionar, insertar, actualizar y eliminar datos. Se trata de operaciones del plano de datos en AWS.
+ **Funciones integradas**: Amazon Keyspaces admite diversas funciones escalares integradas que se pueden utilizar en las instrucciones CQL. 

Para obtener más información sobre CQL, consulte [Referencia del lenguaje CQL para Amazon Keyspaces (para Apache Cassandra)](cql.md). Para analizar las diferencias funcionales con Apache Cassandra, consulte [Diferencias funcionales: Amazon Keyspaces vs. Apache Cassandra](functional-differences.md).

Para ejecutar consultas CQL, puede realizar una de las siguientes acciones:
+ Utilizar el editor CQL en la Consola de administración de AWS.
+ El uso AWS CloudShell y la expansión [por colisión](programmatic.cqlsh.md#using_cqlsh).
+ Utilizar un cliente `cqlsh`.
+ Utilizar un controlador de cliente de Cassandra con licencia Apache 2.0.

Además de CQL, puede realizar operaciones con el lenguaje de definición de datos (DDL) en Amazon Keyspaces utilizando y. AWS SDKs AWS Command Line Interface

Para obtener más información sobre el uso de estos métodos para acceder a Amazon Keyspaces, consulte [Acceso a Amazon Keyspaces (para Apache Cassandra)](accessing.md). 