Cassandra Kesik

Cassandra Kesik



Bu yazıda Apache Cassandra TRUNCATE komutunun nasıl kullanılacağını öğreneceksiniz. Bu komut, tabloyu veya şemasını silmeden bir tablodaki tüm verileri kaldırmanıza olanak tanır.

Basit bir ifadeyle, TRUNCATE komutu, bir tabloda depolanan verileri sıfırlamanıza ve yeni verileri geri yüklemenize veya eklemenize olanak tanır.







Cassandra Truncate Komut Sözdizimi

TRUNCATE komut sözdizimi gösterildiği gibidir:



TRUNCATE [TABLE] [keyspace.table_name]

Yukarıdaki söz diziminde TABLE anahtar sözcüğünü atlayabilirsiniz. Komut benzer bir eylem gerçekleştirecektir.



TRUNCATE komutunun, hedefin verilerini içeren kümedeki tüm düğümlere JMX komutunu gönderdiğini unutmayın. Bu, düğümlerin senkronize olmasını ve son veri değişiklikleriyle güncel kalmasını sağlar. Kümedeki düğümlerden herhangi biri çalışmıyorsa, komut başarısız olur ve bir hata döndürür.





Örnek Tablo ve Veri Oluşturma

Örnekleme amacıyla örnek bir keyspace ve tablo oluşturacağız. Komutlar aşağıdaki snippet'lerde gösterildiği gibidir:

cqlsh> keyspace height_info oluştur
... çoğaltma ile = {
... 'sınıf': 'SimpleStrategy',
... 'replication_factor': 1};
cqlsh> height_info KULLANIN;
cqlsh:height_info> CREATE TABLE alıcıları(
... senin elin,
... kullanıcı adı metni,
... yükseklik int,
... BİRİNCİL ANAHTAR(id, yükseklik));

Ardından, aşağıdaki komutlarda gösterildiği gibi örnek verileri ekleyebiliriz:



cqlsh:height_info> INSERT INTO alıcılar(id, kullanıcı adı, yükseklik) değerler (0, 'user1', 210);
cqlsh:height_info> INSERT INTO alıcılar(id, kullanıcı adı, yükseklik) değerleri (1, 'user2', 115);
cqlsh:height_info> INSERT INTO alıcılar(id, kullanıcı adı, yükseklik) değerleri (2, 'user3', 202);
cqlsh:height_info> INSERT INTO alıcılar(id, kullanıcı adı, yükseklik) değerleri (3, 'user4', 212);
cqlsh:height_info> INSERT INTO alıcılar(id, kullanıcı adı, yükseklik) değerleri (4, 'user5', 216);

Örnek Kesme İşlemi

Kesilmeden önce tabloda depolanan veriler gösterildiği gibidir:

SEÇ * ALICILARDAN;

Tabloyu gösterildiği gibi kesebiliriz:

cqlsh:height_info> TRUNCATE TABLE height_info.recipients;

Son olarak, verilerin tablodan kaldırıldığını şu şekilde onaylayabiliriz:

cqlsh:height_info> ALICILARDAN SEÇ *;

Tüm şema tanımlarını içeren tablonun hala var olduğunu fark edeceksiniz. Ancak, tablodaki veriler kaldırılmış ve boş bir tablo bırakılmıştır.

TRUNCATE işleminin geri alınamaz olduğunu unutmayın. Kullanımı ve olası veri kaybı konusunda dikkatli olun.

Çözüm

Bu gönderide, CQL TRUNCATE komutunu kullanarak tablo şemasını korurken bir tablodaki tüm verileri nasıl kaldıracağınızı öğrendiniz.