Differenze funzionali: Amazon Keyspaces e Apache Cassandra - Amazon Keyspaces (per Apache Cassandra)

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à.

Differenze funzionali: Amazon Keyspaces e Apache Cassandra

Di seguito sono riportate le differenze funzionali tra Amazon Keyspaces e Apache Cassandra.

Apache CassandraAPIs, operazioni e tipi di dati

Amazon Keyspaces supporta tutte le operazioni sul piano dati Cassandra di uso comune, come la creazione di keyspace e tabelle, la lettura e la scrittura di dati. Per vedere cosa è attualmente supportato, consulta API, operazioni, funzioni e tipi di dati Cassandra supportati.

Creazione ed eliminazione asincrone di spazi chiave e tabelle

Amazon Keyspaces esegue operazioni in linguaggio di definizione dei dati (DDL), come la creazione e l'eliminazione di keyspace e tabelle, in modo asincrono. Per scoprire come monitorare lo stato di creazione delle risorse, consulta e. Verifica lo stato di creazione del keyspace in Amazon Keyspaces Verifica lo stato di creazione della tabella in Amazon Keyspaces Per un elenco delle DDL dichiarazioni nella CQL lingua di riferimento, vedereDDListruzioni (linguaggio di definizione dei dati) in Amazon Keyspaces.

Autenticazione e autorizzazione

Amazon Keyspaces (per Apache Cassandra) utilizza AWS Identity and Access Management (IAM) per l'autenticazione e l'autorizzazione degli utenti e supporta le politiche di autorizzazione equivalenti a quelle di Apache Cassandra. Pertanto, Amazon Keyspaces non supporta i comandi di configurazione di sicurezza di Apache Cassandra.

Archiviazione

Amazon Keyspaces supporta comandi batch non registrati con un massimo di 30 comandi per batch. In un batch sono consentiti solo DELETE comandi o INSERT incondizionati. UPDATE I batch registrati non sono supportati.

Configurazione del cluster

Amazon Keyspaces è serverless, quindi non ci sono cluster, host o macchine virtuali Java () JVMs da configurare. Le impostazioni di Cassandra per la compattazione, la compressione, la memorizzazione nella cache, la raccolta dei rifiuti e il filtro bloom non sono applicabili ad Amazon Keyspaces e vengono ignorate se specificate.

Connessioni

Puoi utilizzare i driver Cassandra esistenti per comunicare con Amazon Keyspaces, ma devi configurare i driver in modo diverso. Amazon Keyspaces supporta fino a 3.000 CQL query per TCP connessione al secondo, ma non c'è limite al numero di connessioni che un driver può stabilire.

La maggior parte dei driver Cassandra open source stabilisce un pool di connessioni con Cassandra e bilancia il carico delle query su quel pool di connessioni. Amazon Keyspaces espone 9 indirizzi IP peer ai driver e il comportamento predefinito della maggior parte dei driver consiste nello stabilire una singola connessione a ciascun indirizzo IP peer. Pertanto, la velocità massima di trasmissione delle CQL query di un driver che utilizza le impostazioni predefinite è di 27.000 query al secondo. CQL

Per aumentare questo numero, si consiglia di aumentare il numero di connessioni per indirizzo IP che il driver mantiene nel proprio pool di connessioni. Ad esempio, impostando il numero massimo di connessioni per indirizzo IP su 2, la velocità effettiva massima del driver viene raddoppiata, portandola a 54.000 CQL query al secondo.

Come procedura ottimale, consigliamo di configurare i driver in modo che utilizzino 500 CQL query al secondo per connessione per ridurre il sovraccarico e migliorare la distribuzione. In questo scenario, la pianificazione di 18.000 CQL query al secondo richiede 36 connessioni. La configurazione del driver per 4 connessioni su 9 endpoint prevede 36 connessioni che eseguono 500 richieste al secondo. Per ulteriori informazioni sulle best practice per le connessioni, vedere. Ottimizza le connessioni dei driver client per l'ambiente serverless

Quando ci si connette con gli VPC endpoint, potrebbero esserci meno endpoint disponibili. Ciò significa che è necessario aumentare il numero di connessioni nella configurazione del driver. Per ulteriori informazioni sulle procedure consigliate per VPC le connessioni, vedereCome configurare le connessioni sugli VPC endpoint in Amazon Keyspaces.

INparola chiave

Amazon Keyspaces supporta la IN parola chiave nella SELECT dichiarazione. INnon è supportato con UPDATE andDELETE. Quando si utilizza la IN parola chiave nell'SELECTistruzione, i risultati della query vengono restituiti nell'ordine in cui le chiavi sono presentate nell'SELECTistruzione. In Cassandra, i risultati sono ordinati lessicograficamente.

Quando si utilizza ORDER BY, il riordino completo con impaginazione disabilitata non è supportato e i risultati vengono ordinati all'interno di una pagina. Le query Slice non sono supportate con la parola chiave. IN TOKENSnon sono supportate con la parola chiave. IN Amazon Keyspaces elabora le query con la IN parola chiave creando sottoquery. Ogni sottoquery conta come una connessione verso il limite di 3.000 CQL query per connessione al secondo. TCP Per ulteriori informazioni, consulta Usa l'INoperatore con l'SELECTistruzione in una query in Amazon Keyspaces.

CQLottimizzazione del throughput delle interrogazioni

Amazon Keyspaces supporta fino a 3.000 CQL query per TCP connessione al secondo, ma non c'è limite al numero di connessioni che un driver può stabilire.

La maggior parte dei driver Cassandra open source stabilisce un pool di connessioni con Cassandra e bilancia il carico delle query su quel pool di connessioni. Amazon Keyspaces espone 9 indirizzi IP peer ai driver e il comportamento predefinito della maggior parte dei driver consiste nello stabilire una singola connessione a ciascun indirizzo IP peer. Pertanto, la velocità massima di trasmissione delle CQL query di un driver che utilizza le impostazioni predefinite sarà di 27.000 query al secondo. CQL

Per aumentare questo numero, si consiglia di aumentare il numero di connessioni per indirizzo IP che il driver mantiene nel proprio pool di connessioni. Ad esempio, impostando il numero massimo di connessioni per indirizzo IP su 2, la velocità effettiva massima del driver raddoppierà fino a 54.000 CQL query al secondo.

Per ulteriori informazioni sulle procedure consigliate per le connessioni, vedere. Ottimizza le connessioni dei driver client per l'ambiente serverless

Quando ci si connette con VPC gli endpoint, sono disponibili meno endpoint. Ciò significa che è necessario aumentare il numero di connessioni nella configurazione del driver. Per ulteriori informazioni sulle best practice per le connessioni VPC degli endpoint, consultaCome configurare le connessioni sugli VPC endpoint in Amazon Keyspaces.

FROZENcollezioni

La FROZEN parola chiave in Cassandra serializza più componenti di un tipo di dati di raccolta in un unico valore immutabile che viene trattato come un. BLOB INSERTe le UPDATE istruzioni sovrascrivono l'intera raccolta.

Amazon Keyspaces supporta per impostazione predefinita fino a cinque livelli di nidificazione per raccolte congelate. Per ulteriori informazioni, consulta Quote di servizio Amazon Keyspaces.

Amazon Keyspaces non supporta confronti di disuguaglianze che utilizzano l'intera raccolta congelata in un condizionale o in una dichiarazione. UPDATE SELECT Il comportamento delle raccolte e delle raccolte congelate è lo stesso in Amazon Keyspaces.

Quando utilizzi raccolte congelate con timestamp lato client, nel caso in cui il timestamp di un'operazione di scrittura sia lo stesso del timestamp di una colonna esistente che non è scaduta o non è stata salvata, Amazon Keyspaces non esegue confronti. Al contrario, consente al server di determinare l'autore più recente e l'autore più recente vince.

Per ulteriori informazioni sulle raccolte congelate, consultaTipi di raccolta.

Transazioni leggere

Amazon Keyspaces (per Apache Cassandra) supporta completamente le funzionalità di confronto e impostazione su e DELETE comandi INSERTUPDATE, noti come transazioni leggere (LWTs) in Apache Cassandra. Essendo un'offerta serverless, Amazon Keyspaces (per Apache Cassandra) offre prestazioni costanti su qualsiasi scala, anche per transazioni leggere. Con Amazon Keyspaces, non vi è alcuna riduzione delle prestazioni per l'utilizzo di transazioni leggere.

Bilanciamento del carico

Le voci della system.peers tabella corrispondono ai sistemi di bilanciamento del carico di Amazon Keyspaces. Per ottenere i migliori risultati, ti consigliamo di utilizzare una politica di bilanciamento del carico round robin e di ottimizzare il numero di connessioni per IP in base alle esigenze dell'applicazione.

Paginazione

Amazon Keyspaces impagina i risultati in base al numero di righe lette per elaborare una richiesta, non al numero di righe restituite nel set di risultati. Di conseguenza, alcune pagine potrebbero contenere un numero di righe inferiore a quello specificato per le query filtrate PAGESIZE. Inoltre, Amazon Keyspaces impagina automaticamente i risultati dopo aver letto 1 MB di dati per fornire ai clienti prestazioni di lettura coerenti a una cifra in millisecondi. Per ulteriori informazioni, consulta Impaginare i risultati in Amazon Keyspaces.

Nelle tabelle con colonne statiche, sia Apache Cassandra che Amazon Keyspaces stabiliscono il valore della colonna statica della partizione all'inizio di ogni pagina in una query multipagina. Quando una tabella contiene righe di dati di grandi dimensioni, a causa del comportamento di impaginazione di Amazon Keyspaces, è più probabile che il risultato di un'operazione di lettura a intervalli restituisca più pagine per Amazon Keyspaces che per Apache Cassandra. Di conseguenza, esiste una maggiore probabilità in Amazon Keyspaces che gli aggiornamenti simultanei alla colonna statica possano far sì che il valore della colonna statica sia diverso nelle diverse pagine del set di risultati di lettura dell'intervallo.

Partizionatori

Il partizionatore predefinito in Amazon Keyspaces è compatibile con Cassandra. Murmur3Partitioner Inoltre, puoi scegliere di utilizzare Amazon Keyspaces DefaultPartitioner o la versione compatibile con Cassandra. RandomPartitioner

Con Amazon Keyspaces, puoi modificare in sicurezza il partizionatore del tuo account senza dover ricaricare i dati di Amazon Keyspaces. Una volta completata la modifica della configurazione, che richiede circa 10 minuti, i client vedranno automaticamente la nuova impostazione del partizionatore alla successiva connessione. Per ulteriori informazioni, consulta Utilizzo dei partizionatori in Amazon Keyspaces.

Dichiarazioni preparate

Amazon Keyspaces supporta l'uso di istruzioni preparate per le operazioni del linguaggio di manipolazione dei dati (DML), come la lettura e la scrittura di dati. Amazon Keyspaces attualmente non supporta l'uso di istruzioni preparate per le operazioni del linguaggio di definizione dei dati (DDL), come la creazione di tabelle e spazi chiave. DDLle operazioni devono essere eseguite al di fuori delle istruzioni preparate.

Eliminazione dell'intervallo

Amazon Keyspaces supporta l'eliminazione di righe nell'intervallo. Un intervallo è un insieme contiguo di righe all'interno di una partizione. Si specifica un intervallo in un'DELETEoperazione utilizzando una clausola. WHERE È possibile specificare che l'intervallo sia un'intera partizione.

Inoltre, è possibile specificare un intervallo come sottoinsieme di righe contigue all'interno di una partizione utilizzando operatori relazionali (ad esempio, '>', '<') oppure includendo la chiave di partizione e omettendo una o più colonne di clustering. Con Amazon Keyspaces, puoi eliminare fino a 1.000 righe all'interno di un intervallo in un'unica operazione.

Le eliminazioni degli intervalli non sono isolate. Le eliminazioni di singole righe sono visibili ad altre operazioni mentre è in corso l'eliminazione di un intervallo.

Tabelle di sistema

Amazon Keyspaces popola le tabelle di sistema richieste dai driver Cassandra open source Apache 2.0. Le tabelle di sistema visibili a un client contengono informazioni esclusive per l'utente autenticato. Le tabelle di sistema sono completamente controllate da Amazon Keyspaces e sono di sola lettura. Per ulteriori informazioni, consulta Spazi chiave di sistema in Amazon Keyspaces.

È richiesto l'accesso in sola lettura alle tabelle di sistema ed è possibile controllarlo con policy di accesso. IAM Per ulteriori informazioni, consulta Gestione dell'accesso con policy. È necessario definire le politiche di controllo degli accessi basate su tag per le tabelle di sistema in modo diverso a seconda che si utilizzi AWS SDKo API chiamate Cassandra Query Language (CQL) tramite i driver e gli strumenti di sviluppo di Cassandra. Per ulteriori informazioni sul controllo degli accessi basato su tag per le tabelle di sistema, consulta. Accesso alle risorse Amazon Keyspaces basato su tag

Se accedi ad Amazon Keyspaces utilizzando gli VPCendpoint Amazon, nella system.peers tabella vengono visualizzate le voci relative a ciascun VPC endpoint Amazon che Amazon Keyspaces dispone delle autorizzazioni necessarie. Di conseguenza, il driver Cassandra potrebbe emettere un messaggio di avviso relativo al nodo di controllo stesso nella tabella. system.peers Puoi tranquillamente ignorare questo avviso.

Timestamp

In Amazon Keyspaces, i timestamp a livello di cella compatibili con i timestamp predefiniti in Apache Cassandra sono una funzionalità opzionale.

La USING TIMESTAMP clausola e la WRITETIME funzione sono disponibili solo quando i timestamp lato client sono attivati per una tabella. Per ulteriori informazioni sui timestamp lato client in Amazon Keyspaces, consulta. Timestamp lato client in Amazon Keyspaces