Κασσάνδρα Περικομμένη

Kassandra Perikommene



Σε αυτό το άρθρο, θα μάθετε πώς να χρησιμοποιείτε την εντολή Apache Cassandra TRUNCATE. Αυτή η εντολή σάς επιτρέπει να αφαιρέσετε όλα τα δεδομένα από έναν πίνακα χωρίς να διαγράψετε τον πίνακα ή το σχήμα του.

Με απλά λόγια, η εντολή TRUNCATE σάς επιτρέπει να επαναφέρετε τα δεδομένα που είναι αποθηκευμένα σε έναν πίνακα επιτρέποντάς σας να επαναφέρετε ή να εισαγάγετε νέα δεδομένα.







Σύνταξη εντολών Cassandra Truncate

Η σύνταξη της εντολής TRUNCATE είναι όπως φαίνεται:



ΚΟΨΗ [TABLE] [keyspace.table_name]

Μπορείτε να παραλείψετε τη λέξη-κλειδί TABLE στην παραπάνω σύνταξη. Η εντολή θα εκτελέσει παρόμοια ενέργεια.



Λάβετε υπόψη ότι η εντολή TRUNCATE στέλνει την εντολή JMX σε όλους τους κόμβους του συμπλέγματος που περιέχει τα δεδομένα του στόχου. Αυτό επιτρέπει στους κόμβους να συγχρονίζονται και να παραμένουν ενημερωμένοι με τις πρόσφατες αλλαγές δεδομένων. Εάν κάποιος από τους κόμβους στο σύμπλεγμα είναι εκτός λειτουργίας, η εντολή θα αποτύχει και θα εμφανιστεί ένα σφάλμα.





Δημιουργία δείγματος πίνακα και δεδομένων

Για λόγους απεικόνισης, θα δημιουργήσουμε ένα δείγμα keyspace και πίνακα. Οι εντολές είναι όπως φαίνονται στα παρακάτω αποσπάσματα:

cqlsh> δημιουργία keyspace height_info
... με αντιγραφή = {
... 'class': 'SimpleStrategy',
... 'replication_factor': 1};
cqlsh> USE height_info;
cqlsh:height_info> CREATE TABLE παραλήπτες(
... το χερι σου,
... κείμενο ονόματος χρήστη,
... ύψος int,
... ΚΥΡΙΟ ΚΛΕΙΔΙ(αναγνωριστικό, ύψος));

Στη συνέχεια, μπορούμε να εισαγάγουμε δείγματα δεδομένων όπως φαίνεται στις παρακάτω εντολές:



cqlsh:height_info> INSERT INTO παραλήπτες (αναγνωριστικό, όνομα χρήστη, ύψος) τιμές (0, 'user1', 210);
cqlsh:height_info> INSERT INTO παραλήπτες (αναγνωριστικό, όνομα χρήστη, ύψος) τιμές (1, 'user2', 115);
cqlsh:height_info> INSERT INTO παραλήπτες (αναγνωριστικό, όνομα χρήστη, ύψος) τιμές (2, 'user3', 202);
cqlsh:height_info> INSERT INTO παραλήπτες (αναγνωριστικό, όνομα χρήστη, ύψος) τιμές (3, 'user4', 212);
cqlsh:height_info> INSERT INTO παραλήπτες (αναγνωριστικό, όνομα χρήστη, ύψος) τιμές (4, 'user5', 216);

Παράδειγμα λειτουργίας περικοπής

Τα δεδομένα που είναι αποθηκευμένα στον πίνακα πριν από την περικοπή είναι όπως φαίνεται:

ΕΠΙΛΟΓΗ * ΑΠΟ παραλήπτες.

Μπορούμε να περικόψουμε τον πίνακα όπως φαίνεται:

cqlsh:height_info> TRUNCATE TABLE height_info.recipients;

Τέλος, μπορούμε να επιβεβαιώσουμε ότι τα δεδομένα αφαιρέθηκαν από τον πίνακα ως εξής:

cqlsh:height_info> ΕΠΙΛΟΓΗ * ΑΠΟ παραλήπτες;

Θα παρατηρήσετε ότι ο πίνακας εξακολουθεί να υπάρχει και περιλαμβάνει όλους τους ορισμούς των σχημάτων. Ωστόσο, τα δεδομένα από τον πίνακα έχουν αφαιρεθεί αφήνοντας έναν κενό πίνακα.

Λάβετε υπόψη ότι η λειτουργία TRUNCATE είναι μη αναστρέψιμη. Να είστε προσεκτικοί στη χρήση του και στην πιθανή απώλεια δεδομένων.

συμπέρασμα

Σε αυτήν την ανάρτηση, μάθατε πώς να αφαιρείτε όλα τα δεδομένα από έναν πίνακα διατηρώντας παράλληλα το σχήμα του πίνακα χρησιμοποιώντας την εντολή CQL TRUNCATE.