Cassandra Truncate

Cassandra Truncate



I den här artikeln kommer du att lära dig hur du använder kommandot Apache Cassandra TRUNCATE. Detta kommando låter dig ta bort all data från en tabell utan att ta bort tabellen eller dess schema.

Enkelt uttryckt låter kommandot TRUNCATE dig återställa data som lagras i en tabell så att du kan återställa eller infoga nya data.







Cassandra Truncate kommandosyntax

Syntaxen för kommandot TRUNCATE är som visas:



TRUNCATE [TABELL] [keyspace.table_name]

Du kan utelämna nyckelordet TABLE i syntaxen ovan. Kommandot kommer att utföra en liknande åtgärd.



Tänk på att TRUNCATE-kommandot skickar JMX-kommandot till alla noder i klustret som innehåller målets data. Detta gör att noderna kan synkronisera och hålla sig uppdaterade med de senaste dataändringarna. Om någon av noderna i klustret är nere kommer kommandot att misslyckas och returnera ett fel.





Skapa exempeltabell och data

I illustrationssyfte kommer vi att skapa ett exempel på tangentutrymme och tabell. Kommandona är som visas i utdragen nedan:

cqlsh> skapa tangentutrymme height_info
... med replikering = {
... 'class': 'SimpleStrategy',
... 'replikeringsfaktor': 1};
cqlsh> ANVÄND höjdinfo;
cqlsh:height_info> SKAPA TABELL mottagare(
... din hand,
... användarnamn text,
... höjd int,
... PRIMÄRKEY(id, höjd));

Vi kan sedan infoga exempeldata som visas i kommandona nedan:



cqlsh:height_info> INSERT INTO mottagare(id, användarnamn, höjd) värden (0, 'användare1', 210);
cqlsh:height_info> INSERT INTO recipients(id, username, height) värden (1, 'användare2', 115);
cqlsh:height_info> INSERT INTO mottagare(id, användarnamn, höjd) värden (2, 'användare3', 202);
cqlsh:height_info> INSERT INTO mottagare (id, användarnamn, höjd) värden (3, 'användare4', 212);
cqlsh:height_info> INSERT INTO recipients(id, username, height) värden (4, 'user5', 216);

Exempel på trunkeringsoperation

Data som lagras i tabellen före trunkering är som visas:

VÄLJ * FRÅN mottagare;

Vi kan trunkera tabellen som visas:

cqlsh:height_info> TRUNCATE TABLE height_info.recipients;

Slutligen kan vi bekräfta att data tas bort från tabellen som:

cqlsh:height_info> VÄLJ * FRÅN mottagare;

Du kommer att märka att tabellen fortfarande finns med alla schemadefinitioner. Data från tabellen har dock tagits bort och lämnat en tom tabell.

Tänk på att TRUNCATE-operationen är oåterkallelig. Var försiktig med användningen och potentiell dataförlust.

Slutsats

I det här inlägget lärde du dig hur du tar bort all data från en tabell samtidigt som du bevarar tabellschemat med kommandot CQL TRUNCATE.