

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Che cos'è Amazon Keyspaces (per Apache Cassandra)?
<a name="what-is-keyspaces"></a>

 Amazon Keyspaces (per Apache Cassandra) è un servizio di database scalabile, altamente disponibile e gestito compatibile con Apache Cassandra. Con Amazon Keyspaces, non è necessario effettuare il provisioning, applicare patch o gestire server e non è necessario installare, mantenere o utilizzare software. 

Amazon Keyspaces è serverless, quindi paghi solo per le risorse che usi e il servizio ridimensiona automaticamente le tabelle verso l'alto e verso il basso in risposta al traffico delle applicazioni. Puoi creare applicazioni che soddisfano migliaia di richieste al secondo con throughput e storage praticamente illimitati. 

**Nota**  
 Apache Cassandra è un datastore open source a colonne larghe progettato per gestire grandi quantità di dati. [Per ulteriori informazioni, consulta Apache Cassandra.](http://cassandra.apache.org/)

Amazon Keyspaces semplifica la migrazione, l'esecuzione e la scalabilità dei carichi di lavoro di Cassandra in. Cloud AWS Con pochi clic sulla console di AWS gestione o poche righe di codice, puoi creare keyspace e tabelle in Amazon Keyspaces, senza distribuire alcuna infrastruttura o installare software.

Con Amazon Keyspaces, puoi eseguire i carichi di lavoro Cassandra esistenti AWS utilizzando lo stesso codice applicativo Cassandra e gli stessi strumenti di sviluppo che usi oggi. 

Con il [calcolatore dei prezzi per Amazon Keyspaces (per Apache Cassandra](https://aws-samples.github.io/sample-pricing-calculator-for-keyspaces/#cassandra)) disponibile su Github, puoi stimare i costi mensili per Amazon Keyspaces in base al tuo carico di lavoro Apache Cassandra esistente. Inserisci i parametri dello stato dello strumento Cassandra e della configurazione serverless prevista per Amazon Keyspaces per confrontare i costi diretti tra le due soluzioni. Tieni presente che questo calcolatore si concentra solo sui costi operativi di Amazon Keyspaces rispetto alla distribuzione Cassandra esistente. Non include fattori del costo totale di proprietà (TCO) come la manutenzione dell'infrastruttura, le spese generali operative o i costi di supporto per Cassandra.

Per un elenco degli endpoint Regioni AWS e degli endpoint disponibili, consulta [Service endpoints for Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/programmatic.endpoints.html).

Ti consigliamo di iniziare leggendo le seguenti sezioni:

**Topics**
+ [Amazon Keyspaces: come funziona](how-it-works.md)
+ [Casi d'uso di Amazon Keyspaces](use-cases.md)
+ [Cos'è Cassandra Query Language (CQL)?](what-is-cql.md)

# Amazon Keyspaces: come funziona
<a name="how-it-works"></a>

Amazon Keyspaces rimuove il sovraccarico amministrativo legato alla gestione di Cassandra. Per capire perché, è utile iniziare con l'architettura Cassandra e poi confrontarla con Amazon Keyspaces.

**Topics**
+ [Architettura di alto livello: Apache Cassandra vs. Amazon Keyspaces](#how-it-works.cassandra-arch)
+ [Modello di dati Cassandra](#how-it-works.data-model)
+ [Accesso ad Amazon Keyspaces da un'applicazione](#how-it-works.keyspaces-arch.accessing)

## Architettura di alto livello: Apache Cassandra vs. Amazon Keyspaces
<a name="how-it-works.cassandra-arch"></a>

 Apache Cassandra tradizionale viene distribuito in un cluster composto da uno o più nodi. Sei responsabile della gestione di ogni nodo e dell'aggiunta e rimozione dei nodi man mano che il cluster cresce. 

Un programma client accede a Cassandra connettendosi a uno dei nodi ed emettendo istruzioni Cassandra Query Language (CQL). *CQL* è simile a SQL, il linguaggio popolare utilizzato nei database relazionali. Anche se Cassandra non è un database relazionale, CQL fornisce un'interfaccia familiare per interrogare e manipolare i dati in Cassandra.

Il diagramma seguente mostra un semplice cluster Apache Cassandra, composto da quattro nodi.

![\[Diagramma di un cluster Apache Cassandra contenente 4 nodi e che interagisce con l'applicazione client.\]](http://docs.aws.amazon.com/it_it/keyspaces/latest/devguide/images/keyspaces_cassandra-hi-level.png)


Un'implementazione di Cassandra di produzione potrebbe consistere in centinaia di nodi, in esecuzione su centinaia di computer fisici in uno o più data center fisici. Ciò può comportare un onere operativo per gli sviluppatori di applicazioni che devono fornire, applicare patch e gestire i server oltre all'installazione, alla manutenzione e al funzionamento del software. 

Con Amazon Keyspaces (per Apache Cassandra), non è necessario effettuare il provisioning, applicare patch o gestire i server, quindi puoi concentrarti sulla creazione di applicazioni migliori. Amazon Keyspaces offre due modalità di capacità di throughput per le letture e le scritture: on-demand e provisioned. Puoi scegliere la modalità di capacità di throughput della tabella per ottimizzare il prezzo delle letture e delle scritture in base alla prevedibilità e alla variabilità del carico di lavoro. 

Con la modalità on-demand, paghi solo per le letture e le scritture effettivamente eseguite dall'applicazione. Non è necessario specificare in anticipo la capacità di throughput della tabella. Amazon Keyspaces gestisce il traffico delle applicazioni quasi istantaneamente man mano che aumenta o diminuisce, rendendolo una buona opzione per le applicazioni con traffico imprevedibile.

La modalità di capacità fornita ti aiuta a ottimizzare il prezzo del throughput se hai un traffico applicativo prevedibile e puoi prevedere in anticipo i requisiti di capacità della tua tabella. Con la modalità di capacità fornita, è possibile specificare il numero di letture e scritture al secondo che si prevede che l'applicazione esegua. [È possibile aumentare e diminuire automaticamente la capacità assegnata per la tabella abilitando il ridimensionamento automatico.](https://docs.aws.amazon.com/keyspaces/latest/devguide/autoscaling.html)

Puoi modificare la modalità di capacità della tabella una volta al giorno man mano che acquisisci ulteriori informazioni sui modelli di traffico del tuo carico di lavoro o se prevedi che si verifichi un forte aumento di traffico, ad esempio a causa di un evento importante che prevedi genererà molto traffico sulle tabelle. Per ulteriori informazioni sul provisioning della capacità di lettura e scrittura, consulta. [Configura le modalità di read/write capacità in Amazon Keyspaces](ReadWriteCapacityMode.md) 

Amazon Keyspaces (per Apache Cassandra) archivia tre copie dei dati in più [zone di disponibilità per garantire durabilità e disponibilità](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) elevata. Inoltre, puoi beneficiare di un data center e di un'architettura di rete progettati per soddisfare i requisiti delle organizzazioni più sensibili alla sicurezza. La crittografia a riposo viene abilitata automaticamente quando crei una nuova tabella Amazon Keyspaces e tutte le connessioni client richiedono Transport Layer Security (TLS). Le funzionalità AWS di sicurezza aggiuntive includono [il monitoraggio](https://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring.html) e [AWS Identity and Access Management](https://docs.aws.amazon.com/keyspaces/latest/devguide/security_iam_service-with-iam.html)gli [endpoint del cloud privato virtuale (VPC)](https://docs.aws.amazon.com/keyspaces/latest/devguide/vpc-endpoints.html). Per una panoramica di tutte le funzionalità di sicurezza disponibili, consulta. [Sicurezza in Amazon Keyspaces (per Apache Cassandra)](security.md) 

Il diagramma seguente mostra l'architettura di Amazon Keyspaces.

![\[Diagramma di Amazon Keyspaces che interagisce con l'applicazione client.\]](http://docs.aws.amazon.com/it_it/keyspaces/latest/devguide/images/keyspaces-hi-level.png)


Un programma client accede ad Amazon Keyspaces connettendosi a un endpoint predeterminato (nome host e numero di porta) ed emettendo istruzioni CQL. Per un elenco degli endpoint disponibili, consulta. [Endpoint di servizio per Amazon Keyspaces](programmatic.endpoints.md)

## Modello di dati Cassandra
<a name="how-it-works.data-model"></a>

Il modo in cui modelli i dati per il tuo business case è fondamentale per ottenere prestazioni ottimali da Amazon Keyspaces. Un modello di dati scadente può ridurre in modo significativo le prestazioni.

Anche se CQL è simile a SQL, i backend di Cassandra e i database relazionali sono molto diversi e devono essere affrontati in modo diverso. Di seguito sono riportate alcune delle questioni più importanti da considerare:

**Storage**  
È possibile visualizzare i dati di Cassandra in tabelle, in cui ogni riga rappresenta un record e ogni colonna un campo all'interno di quel record. 

**Progettazione della tabella: interroga prima**  
Non ci sono messaggi in `JOIN` CQL. Pertanto, è necessario progettare le tabelle in base alla forma dei dati e al modo in cui è necessario accedervi per i casi d'uso aziendali. Ciò potrebbe comportare una denormalizzazione con dati duplicati. È necessario progettare ciascuna tabella in modo specifico per un particolare modello di accesso.

**Partizioni**  
 I dati vengono archiviati in partizioni su disco. *Il numero di partizioni in cui sono archiviati i dati e il modo in cui vengono distribuiti tra le partizioni sono determinati dalla chiave di partizione.* Il modo in cui si definisce la chiave di partizione può avere un impatto significativo sulle prestazioni delle query. Per le best practice, consulta [Come utilizzare le chiavi di partizione in modo efficace in Amazon Keyspaces](bp-partition-key-design.md).

**Chiave primaria**  
In Cassandra, i dati vengono archiviati come coppia chiave-valore. Ogni tabella Cassandra deve avere una chiave primaria, che è la chiave univoca per ogni riga della tabella. La chiave primaria è composta da una chiave di partizione richiesta e da colonne di clustering opzionali. I dati che compongono la chiave primaria devono essere univoci in tutti i record di una tabella.  
+ **Chiave di partizione**: la parte relativa alla chiave di partizione della chiave primaria è obbligatoria e determina in quale partizione del cluster sono archiviati i dati. La chiave di partizione può essere una singola colonna o un valore composto da due o più colonne. È consigliabile utilizzare una chiave di partizione composta se una chiave di partizione a colonna singola comporta che una singola partizione o pochissime partizioni contengano la maggior parte dei dati e quindi supportino la maggior parte delle operazioni su disco. I/O 
+ **Colonna di clustering**: la parte opzionale della colonna di clustering della chiave primaria determina il modo in cui i dati vengono raggruppati e ordinati all'interno di ciascuna partizione. Se includi una colonna di clustering nella chiave primaria, la colonna di clustering può avere una o più colonne. Se nella colonna di raggruppamento sono presenti più colonne, l'ordinamento è determinato dall'ordine in cui le colonne sono elencate nella colonna di raggruppamento, da sinistra a destra.

Per ulteriori informazioni sulla progettazione NoSQL e Amazon Keyspaces, consulta. [Principali differenze e principi di progettazione della progettazione NoSQL](bp-general-nosql-design.md) Per ulteriori informazioni su Amazon Keyspaces e sulla modellazione dei dati, consulta. [Migliori pratiche di modellazione dei dati: consigli per la progettazione di modelli di dati](data-modeling.md)

## Accesso ad Amazon Keyspaces da un'applicazione
<a name="how-it-works.keyspaces-arch.accessing"></a>

Amazon Keyspaces (per Apache Cassandra) implementa l'API Apache Cassandra Query Language (CQL), in modo da poter utilizzare i driver CQL e Cassandra che già utilizzi. Aggiornare l'applicazione è semplice: basta aggiornare il driver o la `cqlsh` configurazione Cassandra in modo che punti all'endpoint del servizio Amazon Keyspaces. Per maggiori informazioni sulle credenziali richieste, consulta [Crea e configura AWS credenziali per Amazon Keyspaces](access.credentials.md). 

**Nota**  
Per aiutarti a iniziare, puoi trovare esempi di end-to-end codice per la connessione ad Amazon Keyspaces utilizzando vari driver client Cassandra nell'archivio di esempi di codice Amazon Keyspaces su. [GitHub](https://github.com/aws-samples/amazon-keyspaces-examples)

 Considerate il seguente programma Python, che si connette a un cluster Cassandra e interroga una tabella.

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

Per eseguire lo stesso programma su Amazon Keyspaces, devi: 
+  **Aggiungere l'endpoint e la porta del cluster**: ad esempio, l'host può essere sostituito con un endpoint di servizio, ad esempio `cassandra.us-east-1.amazonaws.com` e il numero di porta con:. `9142` 
+  **Aggiungere la TLS/SSL configurazione**: per ulteriori informazioni sull'aggiunta della TLS/SSL configurazione per la connessione ad Amazon Keyspaces utilizzando un driver Python del client Cassandra, consulta. [Utilizzo di un driver client Cassandra Python per accedere ad Amazon Keyspaces a livello di codice](using_python_driver.md) 

# Casi d'uso di Amazon Keyspaces
<a name="use-cases"></a>

Di seguito sono riportati solo alcuni dei modi in cui è possibile utilizzare Amazon Keyspaces:
+  **Crea applicazioni che richiedono una bassa latenza**: elabora i dati ad alta velocità per applicazioni che richiedono single-digit-millisecond latenza, come la manutenzione delle apparecchiature industriali, il monitoraggio del commercio, la gestione della flotta e l'ottimizzazione dei percorsi. 
+  **Crea applicazioni utilizzando tecnologie open source**: crea applicazioni AWS utilizzando Cassandra APIs e driver open source disponibili per un'ampia gamma di linguaggi di programmazione, come Java, Python, Ruby, Microsoft .NET, Node.js, PHP, C\$1\$1, Perl e Go. Per alcuni esempi di codice, consultare [Librerie e strumenti Amazon Keyspaces (per Apache Cassandra)](examples-tools.md).
+  **Sposta i carichi di lavoro di Cassandra sul cloud: la gestione autonoma delle tabelle Cassandra è dispendiosa in termini** di tempo e denaro. Con Amazon Keyspaces, puoi configurare, proteggere e scalare le tabelle Cassandra Cloud AWS senza dover gestire l'infrastruttura. Per ulteriori informazioni, consulta [Gestione delle risorse serverless in Amazon Keyspaces (per Apache Cassandra)](serverless_resource_management.md).

# Cos'è Cassandra Query Language (CQL)?
<a name="what-is-cql"></a>

*Cassandra Query Language* (CQL) è il linguaggio principale per comunicare con Apache Cassandra. Amazon Keyspaces (per Apache Cassandra) è compatibile con l'API CQL 3.x (retrocompatibile con la versione 2.x). 

In CQL, i dati vengono archiviati in tabelle, colonne e righe. In questo senso CQL è simile a Structured Query Language (SQL). Questi sono i concetti chiave di CQL.
+ Elementi **CQL — Gli** elementi fondamentali di CQL sono identificatori, costanti, termini e tipi di dati. 
+ **Data Definition Language (DDL)**: le istruzioni DDL vengono utilizzate per gestire strutture di dati come keyspace e tabelle, che sono risorse AWS in Amazon Keyspaces. Le istruzioni DDL sono operazioni del piano di controllo in. AWS
+ **Data Manipulation Language (DML)**: le istruzioni DML vengono utilizzate per gestire i dati all'interno delle tabelle. Le istruzioni DML vengono utilizzate per selezionare, inserire, aggiornare ed eliminare i dati. Si tratta di operazioni sul piano dati in. AWS
+ **Funzioni integrate**: Amazon Keyspaces supporta una varietà di funzioni scalari integrate che puoi utilizzare nelle istruzioni CQL. 

Per ulteriori informazioni su CQL, consulta. [Riferimento al linguaggio CQL per Amazon Keyspaces (per Apache Cassandra)](cql.md) Per le differenze funzionali con Apache Cassandra, vedere. [Differenze funzionali: Amazon Keyspaces e Apache Cassandra](functional-differences.md)

Per eseguire le query CQL, puoi effettuare una delle seguenti operazioni:
+ Utilizzate l'editor CQL in. Console di gestione AWS
+ Use AWS CloudShell e l'espansione [cqlsh](programmatic.cqlsh.md#using_cqlsh).
+ Usa un client. `cqlsh`
+ Usa un driver client Cassandra con licenza Apache 2.0.

Oltre a CQL, puoi eseguire operazioni DDL (Data Definition Language) in Amazon Keyspaces utilizzando and the. AWS SDKs AWS Command Line Interface

Per ulteriori informazioni sull'utilizzo di questi metodi per accedere ad Amazon Keyspaces, consulta. [Accesso ad Amazon Keyspaces (per Apache Cassandra)](accessing.md) 