2013-08-07 26 views
17

CQLSH ile oluşturulan tabloyu yeniden adlandırmaya çalışıyorum. E.g. "AAA" tablosunu "BBB" olarak yeniden adlandır. Bunu yapmak için herhangi bir komut bulamıyor. Herhangi bir fikir?Cassandra CQL3'te tablo nasıl yeniden adlandırılır

[cqlsh 3.1.6 Üste | Cassandra 1.2.8 | CQL spec 3.0.0 | Thrift protokolü 19.36.0]

cevap

23

Tabloları veya anahtar alanlarını yeniden adlandırabileceğine inanmıyorum, bunu yapmak için bir CQL3 işlemi yok ve eski Thirft arayüzlerinde hiçbir şey doğru hatırlamıyorsa hiçbir şey yok.

Cassandra'nın yapacağı dağınık yapısı nedeniyle yapması son derece zor bir şey olamayacağının bir sebebi, değişimin atomik olarak yapılamaması ve kümelenmenin tutarsız bir halde olması büyük olasılıkla güncellemeler kaybolacaktı. Tablo oluşturmaya ve bırakmaya benzer, ancak bu durumlarda, tablo oluşturulduktan veya bırakıldıktan sonra yayınlanmışsa güncellemelerin kaybolacağı beklenir.

Sorduğun şeyi yapmak için bildiğim tek yol yeni tabloyu oluşturmak ve tüm verileri eskiden yeniye taşımak, sonra eski masayı bırakmak. Verileri taşımadan bunu yapmanın bir yolu olabilir, ancak muhtemelen kümeyi durdurmanızı ve tabloya ait tüm dizinlerin ve dosyaların adını değiştirmenizi ve system.schema_columnfamilies tablosundaki meta verileri değiştirmenizi gerektirir (ancak ben Bunu yapabileceğinizden emin değilsiniz.

+0

vkroz: Yukarıdaki çözümü denediniz mi? – Ztyx

+1

Bir tabloyu diğerine kopyalamanın bir yolu ne dersiniz? –

+0

Bunun beklemede olduğunu biliyorum ancak bir sonraki kişi üzerinde çalıştığı takdirde ... Bir tablodan diğerine veri eklemenin en iyi yolu verileri dışa aktarmak ve bir sonraki tabloya aktarmaktır. Bir tabloyu yeniden adlandırıyorsanız, dışa aktarmayı yapar, yeni tabloyu oluşturur ve ardından verileri içe aktarırsınız. Eski tabloyu ihracattan sonra istediğiniz zaman silebilirsiniz. https://docs.datastax.com/en/cql/3.1/cql/cql_reference/copy_r.html – ammills01

İlgili konular