Bunun bir UPDATE kullanılarak mümkün olmadığını anlıyorum.Cassandra UPDATE birincil anahtar değeri
Onun yerine yapmak istediğim, tüm satırları PK = 0 ile PK = 1 olan yeni satırlara geçirir. Bunu gerçekleştirmenin basit yolları var mı?
Bunun bir UPDATE kullanılarak mümkün olmadığını anlıyorum.Cassandra UPDATE birincil anahtar değeri
Onun yerine yapmak istediğim, tüm satırları PK = 0 ile PK = 1 olan yeni satırlara geçirir. Bunu gerçekleştirmenin basit yolları var mı?
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 TO
COPY
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.
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
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
@greenimpala Mildewey haklı, bunu gerçekleştirmek için hızlı bir Python betiği yazmanız daha kolay olacaktır. – Aaron