2014-11-19 22 views

cevap

17

Göreceli olarak basit bir şekilde, cqlsh içinde her zaman hızlı bir COPY TO/FROM yapabilirsiniz.

Çalışanlar için "emp" adı verilen bir sütun ailesinin (tablo) olduğunu varsayalım.

CREATE TABLE stackoverflow.emp (
    id int PRIMARY KEY, 
    fname text, 
    lname text, 
    role text 
) 

Bu örnekte, içinde bir satır var. Değişmeye sevdiğim editörü kullanacağız, Şimdi

[email protected]:stackoverflow> COPY stackoverflow.emp TO '/home/aploetz/emp.csv'; 

1 rows exported in 0.036 seconds. 

: Ben yeni kimliği ile Angel'ı yeniden oluşturmak istiyorsanız

[email protected]:stackoverflow> SELECT * FROM emp; 

id | fname | lname | role 
----+-------+-------+------------- 
    1 | Angel | Pay | IT Engineer 

, bir .csv dosyası tablonun içeriğini TOCOPY edebilirsiniz emp.csv'de 2'ye Angel ifadesi. Bu bunları kaldırmak için bir fırsattır dosyanızda birden fazla satır varsa (yani güncellenmesi gerekmez) o, Not:

2,Angel,Pay,IT Engineer 

Ben dosyayı kaydetmek olacak ve o zamanlar COPY güncelleştirilmiş satır Cassandra FROM dosya içine:

[email protected]:stackoverflow> COPY stackoverflow.emp FROM '/home/aploetz/emp.csv'; 

1 rows imported in 0.038 seconds. 

Şimdi Melek "emp" tablosunda iki satır var.

[email protected]:stackoverflow> SELECT * FROM emp; 

id | fname | lname | role 
----+-------+-------+------------- 
    1 | Angel | Pay | IT Engineer 
    2 | Angel | Pay | IT Engineer 

(2 rows) 

fazla bilgi için, DataStax doc on COPY kontrol edin.

+0

Cevabınız için teşekkürler. Ne yazık ki kimliğim birleşik bir birincil anahtarın bir parçasını oluşturur ve bu nedenle çoğaltılır (muhtemelen binlerce kez). Manuel bir metin editörü değişikliği mümkün olmayacaktır. Verileri COPY ile akıtmak mümkün mü? ... anahtarı değiştirip ... tek bir araçla tekrar akıtmak mümkün mü? – greenimpala

+3

Herhangi bir sürücü bunu oldukça kolaylaştıracaktır. Bir defaya mahsus olmak gerekirse, muhtemelen datastax python sürücüsünü seçerdim. İstediğiniz satırları/grupları sorgulayın, değerleri değiştirin ve tabloya geri yazın. Eğer bunu genişletmemi istiyorsan, söyle, ve ben aşağıda tam bir cevap vereceğim. – mildewey

+0

@greenimpala Mildewey haklı, bunu gerçekleştirmek için hızlı bir Python betiği yazmanız daha kolay olacaktır. – Aaron

İlgili konular