0

Bir tabloda 2,8 milyar kayıt var. Tablo, mysql yüklemesinde çalıştırılan INFOBRIGHT motorunu kullanır. Tabloda birkaç yanlış girdim var ve bunları düzeltmek istiyorum.Veritabanını büyük bir veritabanında değiştirme

Tablo Test 350 karakter sütundur. Birkaç kayıtları (hepsi değil) için kolona P1 sütunaP3 gelen takas verilerine gibi vardı. Tablodan istenmeyen kayıtlarını silin mysql

  • ait SELECT INTO Dosyası işlevini kullanarak bir CSV dosyası tablo Testinden

    1. Özü verileri aşağıdaki gibi ben veri taşıması taşımak planlıyordu yaklaşımdır.
    2. CSV veri P1 için (P3 boş bir dize P1 veri taşıyan ve P1 = P3 SET SET madde LOAD DATA INFILE kullanılarak ve kullanımı

    Ben INFOBRIGHT SET desteklemediği fark edene kadar) yaklaşımı, mantıklı görünüyordu SET yapı standart MySQL indirme değil Infobright yükleyici tarafından bulunan MySQL yükleyici tarafından desteklenen

    aşağıdaki bağlantıdan here

    alıntılar belirtildiği gibi fıkra ICE dahil. SET deyimini kullanarak aslında bir yükü çalıştırabildim; Burada ilginç olan, çalışacak olması ancak SET'in Infobright tarafından yok sayılmasıdır.

    Soru

    1. bunu yapmanın bir kolay yolu var mı?
    2. Elbette CSV dosyasını düzenleyebilirim. Fakat 2,8 milyar kayıt için, , bunu yapmanın kesin bir yolunu yapmak isterim. Test edilen herhangi bir betik takdir edildi.
    3. Mysql yükleyicisini kullanmak ve veriyi MYISAM tablosuna yüklemek istemiyorum, çünkü ilgili veri boyutunun . Orada daha hızlı yaklaşımlar var mı?
  • +0

    Neden geçici bir tablo yapmıyorsunuz ve verileri değiştirmek için bu geçici tabloyu ve llive tablonuzu kullanarak UPDATE sorgusunu çalıştırmıyorsunuz? Veya takas yerini kullanarak kullanmayı deneyin? –

    +0

    , yor infobright sürümünün güncelleme/ekleme/silme özelliğini destekleyip desteklemediğini söyler misiniz? –

    +0

    Güncelleme çok daha yavaş olacak ve dolayısıyla karar verilecektir. Fikir minimum kesintiye sahip olmaktır –

    cevap

    1

    Infobright, dosyadan içe aktarırken SET'e izin vermez, ancak dosyayı yüklemek için mysql loader'ı seçebilirsiniz. Varsayılan olarak infobright kendi loader'ını kullanır, ancak dosyayı yüklemek için mysql loader'ı seçebilir ve daha sonra SET'i kullanabilirsiniz.

    mysql yükleyicisini şu şekilde ayarlayabilirsiniz: set @bh_dataformat = 'mysql';

    Mysql yükleyicisinin IB yükleyiciden ne kadar yavaş olacağını bilmiyorum.1.5 saat içinde ~ 60 sütun içeren ~ 60GB dosya yükledim.

    +0

    Infobrighrt yükleyici, mysql'den iki kat daha hızlıdır. IEE, belgelere göre mysql yükleyiciyle varsayılan olarak kullanılır. Ancak testlerden sonra, Infobright yükleyicinin varsayılanı gibi görünüyor. Bahsettiğin benzer yaklaşımı kullandım. Infobright IEE'yi kullanarak veri yüklemenin başka bir yolu var. Önişlemci verileri olan DLP işlemci denilen özel bir veri işlemcisi var. Yani yükleme verileri çok daha hızlı. –

    İlgili konular