Aynı Anahtar Alanı'nda (SQL'in INSERT INTO gibi) bir Cassandra ColumnFamily öğesinden diğerine veri kopyalamanın iyi bir yolu nedir?


11

Tüm satırları bir Cassandra ColumnFamily / Table'dan diğerine kolayca aktarmanın bir yolunu bulmaya çalışıyorum.

COPYKomut, anladığım kadarıyla, iyi bir seçenektir. Ancak, tüm verileri .csvdiske döküp geri yüklediğinden, motorda yapmanın daha iyi bir yolu olup olmadığını merak edemiyorum.

Ne demek istediğimin özel bir örneği INSERT * FROM my_table INTO my_other_tablebirçok SQLveritabanında mevcut olabilir . Tabii ki, Cassandra'nın NoSQL olduğunu ve bu nedenle aynı şekilde çalışmadığını fark ediyorum - ama mevcut olabilecek bir şey gibi görünüyor.

Bunu başarmanın iyi bir yolu nedir?

Çok teşekkürler!

Yanıtlar:


10
cqlsh -k mykeyspace -e 'COPY fromTable(columnNames) TO STDOUT' | head -n -1 | 
cqlsh -k mykeyspace -e 'COPY toTable(columnNames) FROM STDIN'

1
Teşekkürler, bu ilginç görünüyor. Ancak, özellikle belirli veri türleriyle uğraşırken karakterlerden kaçmak ve diğer konularla ilgilenirim. Bu hiç bir endişe mi?
Juan Carlos Coto

1
İyi fikir, ancak @JuanCarlosCoto'nun dediği gibi, belirli veri türleriyle çalışmaz. Bir blob sütun içeren bir masada denedim ve bir satırsonu karakteri çöktü.
Alexandre DuBreuil

Cassandra 2.1.2'de -n -2 başı komutunu değiştirmek zorunda kaldım çünkü COPY'nin çıkışında sonunda kesilmesi gereken iki satır var. Hala çalışıyordu, ama sonunda boş çizgiye kızdı.
ctlacko

Not - 2 milyondan az satırı olan veri kümelerini içe aktarmak için yalnızca KOPYALA KOPYALA'yı kullanın. Büyük veri kümelerini içe aktarmak için Cassandra toplu yükleyicisini kullanın.
GaneshP

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.