

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Qu'est-ce qu'Amazon Keyspaces (pour Apache Cassandra) ?
<a name="what-is-keyspaces"></a>

 Amazon Keyspaces (pour Apache Cassandra) est un service de base de données évolutif, hautement disponible et géré compatible avec Apache Cassandra. Avec Amazon Keyspaces, vous n'avez pas besoin de provisionner, de patcher ou de gérer des serveurs, et vous n'avez pas besoin d'installer, de maintenir ou d'exploiter des logiciels. 

Amazon Keyspaces fonctionne sans serveur. Vous ne payez donc que pour les ressources que vous utilisez, et le service fait automatiquement évoluer les tables vers le haut ou vers le bas en fonction du trafic des applications. Vous pouvez créer des applications au service de milliers de demandes par seconde avec un débit et un stockage pratiquement illimités. 

**Note**  
 Apache Cassandra est un magasin de données open source, à colonne large, conçue pour gérer de grandes quantités de données. Pour de plus amples informations, veuillez consulter [Apache Cassandra](http://cassandra.apache.org/).

Amazon Keyspaces facilite la migration, l'exécution et le dimensionnement des charges de travail Cassandra dans le. AWS Cloud En quelques clics sur la console de AWS gestion ou en quelques lignes de code, vous pouvez créer des espaces clés et des tables dans Amazon Keyspaces, sans déployer d'infrastructure ni installer de logiciel.

Avec Amazon Keyspaces, vous pouvez exécuter vos charges de travail Cassandra existantes en AWS utilisant le même code d'application Cassandra et les mêmes outils de développement que ceux que vous utilisez aujourd'hui. 

Grâce au [calculateur de prix pour Amazon Keyspaces (pour Apache Cassandra)](https://aws-samples.github.io/sample-pricing-calculator-for-keyspaces/#cassandra) disponible sur Github, vous pouvez estimer vos coûts mensuels pour Amazon Keyspaces en fonction de votre charge de travail Apache Cassandra existante. Entrez les statistiques issues de la sortie de statut de votre outil de nœud Cassandra et de la configuration sans serveur prévue pour Amazon Keyspaces afin de comparer les coûts directs entre les deux solutions. Notez que ce calculateur se concentre uniquement sur les coûts opérationnels d'Amazon Keyspaces par rapport à votre déploiement Cassandra existant. Il n'inclut pas les facteurs liés au coût total de possession (TCO) tels que la maintenance de l'infrastructure, les frais d'exploitation ou les coûts de support pour Cassandra.

Pour obtenir la liste des points de terminaison Régions AWS et des points de terminaison disponibles, consultez la section Points [de terminaison de service pour Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/programmatic.endpoints.html).

Nous vous recommandons de commencer par lire les sections suivantes :

**Topics**
+ [Amazon Keyspaces : comment ça marche](how-it-works.md)
+ [Cas d'utilisation d'Amazon Keyspaces](use-cases.md)
+ [Qu'est-ce que le langage de requête Cassandra (CQL) ?](what-is-cql.md)

# Amazon Keyspaces : comment ça marche
<a name="how-it-works"></a>

Amazon Keyspaces élimine les frais administratifs liés à la gestion de Cassandra. Pour comprendre pourquoi, il est utile de commencer par l'architecture de Cassandra, puis de la comparer à celle d'Amazon Keyspaces.

**Topics**
+ [Architecture de haut niveau : Apache Cassandra contre Amazon Keyspaces](#how-it-works.cassandra-arch)
+ [Modèle de données Cassandra](#how-it-works.data-model)
+ [Accès à Amazon Keyspaces depuis une application](#how-it-works.keyspaces-arch.accessing)

## Architecture de haut niveau : Apache Cassandra contre Amazon Keyspaces
<a name="how-it-works.cassandra-arch"></a>

 Apache Cassandra traditionnelle est déployée dans un cluster composé d'un ou plusieurs nœuds. Vous êtes responsable de la gestion de chaque nœud et de l'ajout et de la suppression de nœuds à mesure que votre cluster évolue. 

Un programme client accède à Cassandra en se connectant à l'un des nœuds et en émettant des instructions Cassandra Query Language (CQL). *CQL* est similaire à SQL, le langage populaire utilisé dans les bases de données relationnelles. Même si Cassandra n'est pas une base de données relationnelle, CQL fournit une interface familière pour interroger et manipuler des données dans Cassandra.

Le diagramme suivant montre un cluster Apache Cassandra simple, composé de quatre nœuds.

![\[Schéma d'un cluster Apache Cassandra contenant 4 nœuds et interagissant avec l'application cliente.\]](http://docs.aws.amazon.com/fr_fr/keyspaces/latest/devguide/images/keyspaces_cassandra-hi-level.png)


Un déploiement Cassandra de production peut être composé de centaines de nœuds, s'exécutant sur des centaines d'ordinateurs physiques dans un ou plusieurs centres de données physiques. Cela peut entraîner un fardeau opérationnel pour les développeurs d'applications qui doivent allouer, corriger et gérer des serveurs en plus de l'installation, de la maintenance et de l'exploitation des logiciels. 

Avec Amazon Keyspaces (pour Apache Cassandra), vous n'avez pas besoin de provisionner, de patcher ou de gérer des serveurs. Vous pouvez donc vous concentrer sur le développement de meilleures applications. Amazon Keyspaces propose deux modes de capacité de débit pour les lectures et les écritures : à la demande et provisionné. Vous pouvez choisir le mode de capacité de débit de votre table pour optimiser le prix des lectures et des écritures en fonction de la prévisibilité et de la variabilité de votre charge de travail. 

Avec le mode à la demande, vous ne payez que les lectures et les écritures que votre application effectue. Il n'est pas nécessaire de spécifier à l'avance la capacité de débit de votre table. Amazon Keyspaces gère le trafic de vos applications presque instantanément, qu'il augmente ou diminue, ce qui en fait une bonne option pour les applications dont le trafic est imprévisible.

Le mode de capacité allouée permet d’optimiser le débit si vous disposez d’un trafic d’application prévisible et pouvez prévoir les besoins en capacité de votre table. Avec le mode de capacité allouée, vous spécifiez le nombre de lectures et d'écritures par seconde dont vous pensez que votre application aura besoin. Vous pouvez augmenter et diminuer automatiquement la capacité allouée de votre table en activant la mise à [l'échelle automatique](https://docs.aws.amazon.com/keyspaces/latest/devguide/autoscaling.html).

Vous pouvez modifier le mode de capacité de votre table une fois par jour à mesure que vous en apprendrez plus sur les schémas de trafic de votre charge de travail, ou si vous prévoyez avoir une forte explosion de trafic, par exemple en raison d'un événement majeur qui, selon vous, entraînera beaucoup de trafic de table. Pour de plus amples informations sur l'allocation de capacité en lecture et en écriture, reportez-vous à la section [Configurer les modes de read/write capacité dans Amazon Keyspaces](ReadWriteCapacityMode.md). 

Amazon Keyspaces (pour Apache Cassandra) stocke trois copies de vos données dans plusieurs [zones de disponibilité pour des raisons de durabilité et de haute disponibilité](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/). En outre, vous bénéficiez d'un centre de données et d'une architecture réseau conçus pour répondre aux exigences des organisations les plus pointilleuses en termes de sécurité. Le chiffrement au repos est automatiquement activé lorsque vous créez une nouvelle table Amazon Keyspaces et toutes les connexions client nécessitent le protocole TLS (Transport Layer Security). Les fonctionnalités AWS de sécurité supplémentaires incluent [la surveillance](https://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring.html) et [Gestion des identités et des accès AWS](https://docs.aws.amazon.com/keyspaces/latest/devguide/security_iam_service-with-iam.html)les points de terminaison du [cloud privé virtuel (VPC).](https://docs.aws.amazon.com/keyspaces/latest/devguide/vpc-endpoints.html) Pour obtenir une vue d'ensemble de toutes les fonctionnalités de sécurité disponibles, reportez-vous à la section [La sécurité dans Amazon Keyspaces (pour Apache Cassandra)](security.md). 

Le schéma suivant montre l'architecture d'Amazon Keyspaces.

![\[Schéma d'Amazon Keyspaces interagissant avec l'application cliente.\]](http://docs.aws.amazon.com/fr_fr/keyspaces/latest/devguide/images/keyspaces-hi-level.png)


Un programme client accède à Amazon Keyspaces en se connectant à un point de terminaison prédéterminé (nom d'hôte et numéro de port) et en émettant des instructions CQL. Pour obtenir la liste des points de terminaison disponibles, reportez-vous à la section [Points de terminaison de service pour Amazon Keyspaces](programmatic.endpoints.md).

## Modèle de données Cassandra
<a name="how-it-works.data-model"></a>

La façon dont vous modélisez vos données pour votre analyse de rentabilisation est essentielle pour optimiser les performances d'Amazon Keyspaces. Un modèle de données de médiocre qualité peut considérablement dégrader les performances.

Même si CQL ressemble à SQL, les backends de Cassandra et des bases de données relationnelles sont très différents et doivent être abordés différemment. Voici quelques-unes des questions les plus importantes à considérer :

**Stockage**  
Vous pouvez visualiser vos données Cassandra dans des tables, chaque ligne représentant un enregistrement et chaque colonne un champ dans cet enregistrement. 

**Conception du tableau : première requête**  
Il n'y a pas d'instruction `JOIN` dans CQL. Par conséquent, vous devez concevoir vos tables en fonction de la forme de vos données et de la manière dont vous devez y accéder pour vos cas d'utilisation professionnels. Cela peut entraîner une dénormalisation avec des données dupliquées. Vous devez concevoir chacune de vos tables spécifiquement pour un modèle d'accès particulier.

**Partitions**  
 Vos données sont stockées dans des partitions sur le disque. Le nombre de partitions dans lesquelles vos données sont stockées et la façon dont elles sont distribuées entre les partitions sont déterminées par votre *clé de partition*. La façon dont vous définissez votre clé de partition peut avoir un impact significatif sur les performances de vos requêtes. Pour connaître les bonnes pratiques, consultez [Comment utiliser efficacement les clés de partition dans Amazon Keyspaces](bp-partition-key-design.md).

**Clé primaire**  
Dans Cassandra, les données sont stockées sous la forme d'une paire clé-valeur. Chaque table Cassandra doit avoir une clé primaire, qui est la clé unique de chaque ligne de la table. La clé primaire est le composite d'une clé de partition requise et de colonnes de clustering facultatives. Les données qui composent la clé primaire doivent être uniques pour tous les enregistrements d'une table.  
+ **Clé** de partition : la partie clé de partition de la clé primaire est requise et détermine dans quelle partition de votre cluster les données sont stockées. La clé de partition peut être une seule colonne ; il peut aussi s'agir d'une valeur composée de deux colonnes ou plus. Vous utiliseriez une clé de partition composée si une clé de partition à colonne unique se traduisait par une partition unique ou par un très petit nombre de partitions contenant la plupart des données et supportant ainsi la majorité des I/O opérations sur le disque. 
+ **Colonne de clustering** : la partie optionnelle de la colonne de clustering de votre clé primaire détermine la manière dont les données sont regroupées et triées au sein de chaque partition. Si vous incluez une colonne de clustering dans votre clé primaire, la colonne de clustering peut comporter une ou plusieurs colonnes. S'il y a plusieurs colonnes dans la colonne de regroupement, l'ordre de tri est déterminé par l'ordre dans lequel les colonnes sont répertoriées dans la colonne de regroupement, de gauche à droite.

Pour plus d'informations sur le design NoSQL et Amazon Keyspaces, consultez. [Principales différences et principes de conception de la conception NoSQL](bp-general-nosql-design.md) Pour plus d'informations sur Amazon Keyspaces et la modélisation des données, consultez. [Bonnes pratiques de modélisation des données : recommandations pour la conception de modèles de données](data-modeling.md)

## Accès à Amazon Keyspaces depuis une application
<a name="how-it-works.keyspaces-arch.accessing"></a>

Amazon Keyspaces (pour Apache Cassandra) implémente l'API Apache Cassandra Query Language (CQL), afin que vous puissiez utiliser les pilotes CQL et Cassandra que vous utilisez déjà. La mise à jour de votre application est aussi simple que de mettre à jour votre pilote ou votre `cqlsh` configuration Cassandra pour qu'elle pointe vers le point de terminaison du service Amazon Keyspaces. Pour plus d’informations sur les informations d’identification requises, consultez [Création et configuration des AWS informations d'identification pour Amazon Keyspaces](access.credentials.md). 

**Note**  
Pour vous aider à démarrer, vous trouverez des exemples de end-to-end code de connexion à Amazon Keyspaces à l'aide de différents pilotes clients Cassandra dans le référentiel d'exemples de code Amazon Keyspaces sur. [GitHub](https://github.com/aws-samples/amazon-keyspaces-examples)

 Considérez le programme Python suivant, qui se connecte à un cluster Cassandra et interroge une table.

```
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)
```

Pour exécuter le même programme sur Amazon Keyspaces, vous devez : 
+  **Ajouter le point de terminaison et le port du cluster :** Par exemple, l'hôte peut être remplacé par un point de terminaison de service, tel que `cassandra.us-east-1.amazonaws.com`, et le numéro de port par : `9142`. 
+  **Ajouter la TLS/SSL configuration** : pour plus d'informations sur l'ajout de la TLS/SSL configuration permettant de se connecter à Amazon Keyspaces à l'aide d'un pilote Python du client Cassandra, consultez. [Utilisation d'un pilote client Cassandra Python pour accéder à Amazon Keyspaces par programmation](using_python_driver.md) 

# Cas d'utilisation d'Amazon Keyspaces
<a name="use-cases"></a>

Voici quelques-unes des manières dont vous pouvez utiliser Amazon Keyspaces :
+  **Créez des applications nécessitant une faible latence** : traitez les données à haute vitesse pour les applications nécessitant une single-digit-millisecond latence, telles que la maintenance des équipements industriels, la surveillance des échanges, la gestion de flotte et l'optimisation des itinéraires. 
+  **Créez des applications à l'aide de technologies open source** : créez des applications à AWS l'aide de Cassandra open source APIs et de pilotes disponibles pour un large éventail de langages de programmation, tels que Java, Python, Ruby, Microsoft .NET, Node.js, PHP, C\$1\$1, Perl et Go. Pour des exemples de code, consultez [Bibliothèques et outils Amazon Keyspaces (pour Apache Cassandra)](examples-tools.md).
+  **Déplacez vos charges de travail Cassandra vers le cloud** : gérer vous-même les tables Cassandra prend du temps et coûte cher. Avec Amazon Keyspaces, vous pouvez configurer, sécuriser et dimensionner les tables Cassandra AWS Cloud sans avoir à gérer l'infrastructure. Pour de plus amples informations, veuillez consulter [Gestion des ressources sans serveur dans Amazon Keyspaces (pour Apache Cassandra)](serverless_resource_management.md).

# Qu'est-ce que le langage de requête Cassandra (CQL) ?
<a name="what-is-cql"></a>

Le *langage de requête Cassandra* (CQL) est le langage principal pour communiquer avec Apache Cassandra. Amazon Keyspaces (pour Apache Cassandra) est compatible avec l'API CQL 3.x (rétrocompatible avec la version 2.x). 

Dans CQL, les données sont stockées dans des tables, des colonnes et des lignes. En ce sens, le CQL est similaire au langage de requête structuré (SQL). Ce sont les concepts clés du CQL.
+ Éléments **CQL — Les éléments** fondamentaux du CQL sont les identifiants, les constantes, les termes et les types de données. 
+ **Langage de définition des données (DDL)** : les instructions DDL sont utilisées pour gérer les structures de données telles que les espaces clés et les tables, qui sont des ressources AWS dans Amazon Keyspaces. Les instructions DDL sont des opérations du plan de contrôle dans. AWS
+ **Langage de manipulation des données (DML)** : les instructions DML sont utilisées pour gérer les données contenues dans les tables. Les instructions DML sont utilisées pour sélectionner, insérer, mettre à jour et supprimer des données. Il s'agit d'opérations de plan de données dans AWS.
+ **Fonctions intégrées** — Amazon Keyspaces prend en charge une variété de fonctions scalaires intégrées que vous pouvez utiliser dans les instructions CQL. 

Pour de plus amples informations sur CQL, veuillez consulter [Référence du langage CQL pour Amazon Keyspaces (pour Apache Cassandra)](cql.md). Pour les différences fonctionnelles avec Apache Cassandra, voir[Différences fonctionnelles : Amazon Keyspaces et Apache Cassandra](functional-differences.md).

Pour exécuter les requêtes CQL, vous pouvez effectuer l'une des opérations suivantes :
+ Utilisez l'éditeur CQL dans le AWS Management Console.
+ Use AWS CloudShell et extension [cqlsh](programmatic.cqlsh.md#using_cqlsh).
+ Utilisez un `cqlsh` client.
+ Utilisez un pilote client Cassandra sous licence Apache 2.0.

Outre le CQL, vous pouvez effectuer des opérations DDL (Data Definition Language) dans Amazon Keyspaces à l'aide du et du. AWS SDKs AWS Command Line Interface

Pour plus d'informations sur l'utilisation de ces méthodes pour accéder à Amazon Keyspaces, consultez. [Accès à Amazon Keyspaces (pour Apache Cassandra)](accessing.md) 