2016-03-25 21 views
1

Projemde (Java) test için cassandra ünitesini kullanıyorum ve bu harika bir şey ama problem şu: yükleme testi verileri oldukça uzun bir süre alıyor (~ 25 000 düz ekler için 100 saniye).Test verilerini cassandra ünitesine en hızlı şekilde aktarabiliyor musunuz?

Bazı fikirlerim var ama onlar cassandra birimi için uygulanabilir olması görünmüyor: csv

  • yedekleme hazırlanan veri klasörü veri kopyalamak DAN cqlsh komut COPY gibi

    • kullanım şey ve bunu vermek Başlangıçta CU.

    Başka fikirleriniz var mı? Teşekkürler.

  • +0

    Belirtilen veriler değiştirilirse bir bit bağlıdır, ancak Bu testlerle okunacak bu verilerle bağımsız bir örneğiniz olabilir. Grupların cassandra ünitesiyle nasıl çalışacağını da kontrol edebilirsiniz, sadece kümelenme ortamındaki partilerin çoklu partion insertleri için uygun olmadığını hatırlatmak mümkündür. – mmatloka

    cevap

    1

    kerede çok miktarda veri yüklemek için bir yol kullanmaktır unlogged batch mechanism:

    BEGIN UNLOGGED BATCH 
    INSERT INTO ...; 
    INSERT INTO ...; 
    INSERT INTO ...; 
    ... 
    APPLY BATCH; 
    

    Hızlı olmayabilir, fakat test amaçlı bir sorun olmamalı ve zaman aşımı kaçınmalıdır düz bir INSERT kümesi oluşması muhtemeldir (çünkü günlük dosyasını doldurursunuz ve Cassandra bundan sonra bir süre verileri kabul etmeyi durdurur.)

    +0

    Böyle bir yaklaşım bana bir hata veriyor: eşleşmeyen girdi ';' K_APPLY Kaldırıldı ';' 'UNLOGGED BATCH' sonrası hata şu şekilde olur:Eşleşmeyen girdi '' bekliyor K_APPLY – Jack

    +0

    Üzgünüz, '' '' '' 'CHCHCH' anahtar sözcüğünden sonra koymamalıydım. Ayrıca, '' 'sadece diğer“ INSERT ”ifadelerini gerektiği gibi eklemeniz anlamına gelir, bu yüzden bunu talimatlar listenize koymadığınızı hayal ediyorum. Bağlantı size ek dokümantasyon sağlar ("BATCH" ile daha fazla özellik vardır. Ayrıca bu, Cassandra 2.0 ve üstü ile de çalışmalıdır. –

    İlgili konular