Batchbehandling er en veldig viktig funksjon når du jobber med databaser. Ikke bare gir de utviklerne en måte å utføre en serie instruksjoner fra et enkelt manus, men de gir også atomisitet på målklyngen.
I dette innlegget vil vi dekke det grunnleggende om å jobbe med batchbehandling i Apache Cassandra. Dette lar deg kombinere en serie spørsmål i en enkelt utførelseskontekst.
La oss dykke inn.
Cassandra Batch Processing Syntax
Følgende viser syntaks for batcherklæringen i Cassandra:
Begynn [(ulogget | teller)] batch
[Bruke tidsstempel [Epoch_MicroseConds]]
dml_statement [ved bruk av tidsstempel [epoch_microseconds]];
[DML_Statement [Bruker tidsstempel [Epoch_MicroseConds]] [;…]]
Bruke batch;
Du kan bruke et innlegg, oppdatering eller slette utsagn i en batchklausul.
Den uloggede uttalelsen definerer om batch er logget eller ikke. En logget batch sikrer maksimal atomisitet ved å sikre at alle uttalelsene i batch blir utført med hell. Hvis noen av uttalelsene i en logget batch mislykkes, vil hele partiet ikke utføre.
Bruk av tidsstempeluttalelser brukes til å angi skrivetid for transaksjonene som utføres av instruksjonene i batch. Du kan la klyngen tilordne en enkelt tidsstempel på alle transaksjoner som er utført av batch, eller du kan spesifisere uttalelsene du ønsker å bruke tidsstempel.
Et eksempel er som vist:
Begynn batch ved hjelp av tidsstempel [Epoch_MicroseConds]
uttalelse_1;
..
Statement_n;
Bruke batch;
I forrige eksempel oppretter Cassandra en tidsstempel for alle transaksjonene som er gjort av de spesifiserte uttalelsene i batch.
Et annet eksempel er som vist:
Begynn batch
uttalelse_1;
Statement_2 ved hjelp av tidsstempel [Epoch_MicroseConds];
Statement_n;
Bruke batch;
I dette tilfellet bruker Cassandra bare tidsstemplene for transaksjonene som er gjort av uttalelsen_2.
Eksempel:
Følgende eksempel illustrerer hvordan du bruker en batch -setning ved hjelp av en Sett inn DML -setning:
Cassandra@CQLSH: Testing> Lag tabellbrukere (
... id int,
... Brukernavn Tekst,
... primærnøkkel (ID));
Når vi har tabelloppsettet, kan vi kjøre en batchinnsats som følger:
cassandra@cqlsh: testing> begynn batch ved hjelp av tidsstempel 1664050149 sett inn i brukere (ID, brukernavn) verdier (1, 'brukernavn1'); sett inn i brukere (ID, brukernavn) verdier (2, 'brukername2'); bruke batch;
Spørringen skal utføre en batchinnsats i den spesifiserte tabellen. Siden vi setter tidsstemplet på alle utsagnene, bør spørringen sikre at alle postene deler en lignende tidsstempel.
Konklusjon
I denne artikkelen dekket vi det grunnleggende om å jobbe med batchmodus i Apache Cassandra. Det er godt å huske på at det er en grunnleggende tutorial. Det er mye mer å vurdere når du jobber med batchbehandling som enkelt- og flere partisjoner, måltastaturer, ytelsesimplikasjon, asynkrone utsagn og mer. Vi anbefaler å sjekke dokumentasjonen for en detaljert informasjon.