L'elaborazione batch è una caratteristica molto importante quando si lavora con i database. Non solo forniscono agli sviluppatori un modo per eseguire una serie di istruzioni da un singolo script, ma forniscono anche atomicità sul cluster di destinazione.
In questo post, tratteremo le basi del lavoro con l'elaborazione batch in Apache Cassandra. Ciò consente di combinare una serie di query in un unico contesto di esecuzione.
Immerciamoci.
Sintassi di elaborazione batch di Cassandra
Di seguito mostra la sintassi dell'istruzione batch in Cassandra:
Inizia [(non aggregato | contatore)] batch
[Utilizzo del timestamp [Epoch_Microseconds]]
dml_statement [usando timestamp [epoch_microseconds]];
[dml_statement [usando timestamp [epoch_microseconds]] [;…]]
Applicare batch;
È possibile utilizzare le istruzioni di inserimento, aggiornamento o eliminare in una clausola batch.
L'istruzione non pagata definisce se il batch è registrato o meno. Un lotto registrato garantisce la massima atomicità assicurando che tutte le dichiarazioni nel lotto vengano eseguite correttamente. Se una qualsiasi delle dichiarazioni in un batch registrato fallisce, l'intero lotto non riesce a eseguire.
Le istruzioni usando il timestamp vengono utilizzate per impostare il tempo di scrittura per le transazioni effettuate dalle istruzioni nel batch. È possibile consentire al cluster di assegnare un singolo timestamp su tutte le transazioni effettuate dal batch o è possibile specificare le dichiarazioni su cui si desidera applicare il timestamp.
Un esempio è come mostrato:
Inizia batch usando il timestamp [epoch_microseconds]
Dichiarazione_1;
..
Dichiarazione_N;
Applicare batch;
Nell'esempio precedente, Cassandra crea un timestamp per tutte le transazioni effettuate dalle dichiarazioni specificate nel batch.
Un altro esempio è come mostrato:
Inizia il lotto
Dichiarazione_1;
Dichiarazione_2 usando Timestamp [Epoch_Microseconds];
Dichiarazione_N;
Applicare batch;
In questo caso, Cassandra applica solo i timestamp per le transazioni effettuate dall'istruzione_2.
Esempio:
Il seguente esempio illustra come utilizzare un'istruzione batch usando un'istruzione DML Inserisci:
cassandra@cqlsh: test> crea utenti di tabelle (
... id int,
... testo del nome utente,
... chiave primaria (id));
Una volta che abbiamo l'impostazione della tabella, possiamo eseguire un inserto batch come segue:
cassandra@cqlsh: test> Inizia batch utilizzando Timestamp 1664050149 Insert in Users (ID, Nome utente) Valori (1, 'Username1'); Inserisci nei valori degli utenti (id, nome utente) (2, 'username2'); applicare batch;
La query dovrebbe eseguire un inserto batch nella tabella specificata. Poiché abbiamo impostato il timestamp su tutte le dichiarazioni, la query dovrebbe garantire che tutti i record condividano un timestamp simile.
Conclusione
In questo articolo, abbiamo trattato le basi del lavoro con la modalità batch in Apache Cassandra. È bene tenere presente che è un tutorial di base. C'è molto di più da considerare quando si lavora con l'elaborazione batch come partizioni singole e multiple, spazi di chiavi target, implicazioni per le prestazioni, dichiarazioni asincroni e altro ancora. Si consiglia di verificare la documentazione per informazioni dettagliate.