folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Big Data İçin Database Seçimi



Big Data İçin Database Seçimi

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ShyRain
    ShyRain's avatar
    Kayıt Tarihi: 01/Nisan/2007
    Erkek

    Merhaba,

    elimde sürekli büyüyen verilen var ve mysql'e attığım sorgular artık 4 saatte cevap dönüyor.

    MongoDB ve Cassandrayı inceledim sorularınızın sabit olması gerekiyor yoksa hızlı olmaz NoSql'lerde yazılmış genelde.

    Sorguya göre tablo yapısı oluşturulmuş.

     

    Benim ne gibi bir sorguya cevap döndüreceğim belli değil bunun için hangi veritabanını incelememi önerirsiniz yardımcı olur musunuz?

     

    Ek: tabiki de ücretsiz , Oracle gibi big data big money tarzı olmasın lütfen...


    Computer Engineer/SyStem Analyst/ Coder ShyRain
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    All hail to Tux
    sandman
    sandman's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek

    aslında nosql çözümlerinde tuttugun veri tipi ve yapıların bir birleriyle ilişkisi önemli. Biraz ne tür birşey aradığından neden sürekli değişen bir sorgu türün olduğundan bahsedersen daha iyi yardımcı olmak isterim.

    Genelde Cassandra ile big data projelerinde çalıştım ve hepsinden memnun kaldım sen tüm objesi alıp içerisinden jsonla temizlesende olur.


    Mühendis kahveyi projeye dönüştüren bir insan evladıdır.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    NoSQL dediğin gibi genelde sorguya göre veritabanı oluşturarak performansı arttırıyor. RDBMS'lerin sorunu joinden çıkıyor. 

    Elinden geldiğince denormalize edip sorgu süresini kısaltabilirsin.

    Yada in memory çözümlere bakabilirsin belki. Sonuçta IO'yu ortadan kaldırman bile büyük hız kazandıracaktır.

    Yada Hadoop filan gibi distributed computation imkanı sağlayan çözümlerle map/reduce ile daha hızlı sonuç elde etmeye çalışabilirsin.

    Ancak eminim senin case'ini yaşamış insanlar vardır. Google'da yeterli aramayı yaptığına eminmisin?


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    ne kadar işine yarar ama graph data da kullanabilirsin ek olarak söylediklerine daha önce baya bi nosql çözümü kullandık

    neo4j ye bakabilirsin

    http://www.neo4j.org/

     

    bunun haricinde couchdb ye bakabilirsin ve de memcachdb..  

    bunlarda zaten strict schema olmadığı için sorun yok istediğinde.. @sandman ın dediği gibi ben de cassandra dan memnunum


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda. Tek Cözüm; Zafer Partisi!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    doganaydin
    doganaydin's avatar
    Banlanmış Üye
    Kayıt Tarihi: 29/Ocak/2010
    Erkek

    Data büyük değildir server küçüktür. Ne sistemler mysql kullanıyor hiç sorunları yok. 1-2 gb sonrasına herkes bigdata demeye başladı.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek

    sql optimizasyonu mysql ayarlarını değiştirin.

    Örneğin en çok kullandığınız tablolarla id based patitioning yapın. Tabi sql sorgularını buna göre optimize edin.

    Rand() fonksiyonun alternatifleri var onu kullanın.

    Birde mysql log'dan uzun süren sql sorgularını analiz edin.

     

     

    Sistem dediğin hemen değiştirilmez.

     

    Ayrıca NOSQL gibi çözümler Document based sistemler için uygun. Yani götü başı belli olmayan veriler için uygun. Her zaman performanslı olacak diye birşey yok.

     

    Ne kadar veriniz var bilmiyorum ama koskoca ülke satın alabilecek firmalar dahi mysql kullanabiliyorda siz mi kullanamıyorsunuz. Ya yeterli donanım yoktur ya da yeterli nitelikli iş gücü yoktur.

     

    http://dev.mysql.com/doc/refman/5.1/en/partitioning.html

     

    DrKill tarafından 24/Eyl/14 21:05 tarihinde düzenlenmiştir

    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    KuZeTaR
    KuZeTaR's avatar
    Kayıt Tarihi: 26/Aralık/2009
    Erkek

    sql server kullanıyorum, 2 milyon satır oldu bi sorgunun süresi yaklaşık 2 dakika, daha optimize nası yapılır bilmiyorum, burdan bişeyler çıkar gibi msjım bulunsun:)

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Buremba
    Buremba's avatar
    Kayıt Tarihi: 16/Haziran/2006
    Erkek

    eğer 100 milyon satırın veya yarım terabayttan fazla datan yoksa big data çözümlerine pek bulaşmamanı öneririm. cassandra dışında adamakıllı bir alternatifin de yok bedava birşey istiyorsan çünkü. onda normalde join falan yok ama eğer hadoop veya spark kullanırsan sql kadar güçlü bir sorgulama yapısı var. ama dediğim gibi çok imkanın varsa kaçınmaya çalış. mysql'i bilmiyorum da postgresql'de güzel bir sharding sistemi var mesela. o da olmadı alabileceğin en güçlü makineyi alırsın. big data çözümleri her türlü pahalıdır çünkü.

    bir alternatif olarak citusdb var postgresql'i distributed yapmış adamlar ama en son denediğimde pek stabil değil gibiydi.


    . . .. . ... .
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ShyRain
    ShyRain's avatar
    Kayıt Tarihi: 01/Nisan/2007
    Erkek

    Öncelikle cevaplar için herkese teşekkür ederim.

    Günlük şu andaki ortalama datam txt'ye kaydettiğimde toplamda 20G ye tekabül ediyor.

    Ayda 600G ediyor son 3 yıldır data tutulduğunu varsayarsam gayet güzel bir big data oluyor bence.


    Yaklaşık 30 Farklı serverdan ve projeden gelecek veriler bu yüzden sorgularımda çok farklı ve değişik olabiliyor.

     

    Şöyle bir örnek sallayım; 

    ayın 30'unda akşam yemeğinde pilav yerken yanında ayran içmişlerin istatistiğinin çıkartılması 1. sorgum.

    ayın 30'unda akşam yemeğinde eşiyle yemeğe gitmiş olanların çocuklarını evde bırakmış olmaları 2. sorgum.

     

    ikiside benze datalar içeriyor ama bildiğim kadarıyla Cassandraya bunu aynı dataları farklı yolla indexleyerek yani 2 farklı collection yaparak koymam gerekiyor değil mi?


    Bu 2 sorgu üzerinden nasıl gidebiliriz biraz daha teknik yardım edermisiniz?

     

    EK: neo4j de biliyorum ama onda ki node sayısını ne olarak almalıyım sence mesela insanların her birini alsam milyon tane node olur elimde ne kadar sürede cevap verir bu durumda?

     


    Computer Engineer/SyStem Analyst/ Coder ShyRain
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek

    Big data olayını hiç bilmiyorum, aklım da almıyor unorganised datayla nasıl iş yapılacağını

    Bilale anlatır gibi anlatırmısınız ya?  farklı yapılarda farklı databaseler ve tablolar var, bunlardan nasıl ööle bir sorgu çekiyorsunuz?

    örnek sorgu cümleleri verirmisiniz? yani tsql gibimi sorgulanıyor?

    o database join yapmıyorsa ne bok yapior =) düz text searchmi yapıyor indexing yapıp?

    Not: eğer işime yarar bişeyse kafamı duvarlara vuracağım çünkü oturup yeni dbms yazdım farklı dblerde iş yapmak için farklı dbleri sanal tabloda birleşik gibi gösteren virtual database engine yaptım kendime.

    HolyOne tarafından 25/Eyl/14 10:31 tarihinde düzenlenmiştir

    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    neo4j için, biz mesela 1900 lü yıllardan günümüze kadar yapılmış filmlerin oyuncuları, film bilgileri (çekim yeri,zaman), oyuncu bilgileri (doğduğu yer, doğum yılı) ve oyuncular arasındaki ilişkilerin olduğu bir sistem için yazılım geliştirdik. Haliyle çok data vardı.. 

    datanın büyüklüğünden korkma, facebook da bir kısım işi bunun üzerinden götürüyor

    https://www.facebook.com/about/graphsearch

     

    @holyone, hocam her sistemin kendine ait farklı bir dili var mesela yazdığım sorgulardan örnek verirsem..

    bunu neo4j için yazmıştım

     

    match (actor:Actor{name:"Marsan, Eddie"}),(reeves:Actor{name:"Reeves, Keanu"}),  
    
      p= shortestPath((actor)-[*..20]-(reeves))
    
    return distinct extract(n in nodes(p)|n.name)[1..-1] as Names;
    

     

     

    bu mongo nun

    db.group0zips.findOne({'state': 'MA'}, {'city': 1})
    { "city" : "AGAWAM", "_id" : "01001" }
    
     

     

    bu pig in

     

    input_lines = LOAD '/Data/NYTimes_articles' AS (line:chararray);
    
     
    
    -- Extract words from each line and put them into a pig bag
    
    -- datatype, then flatten the bag to get one word on each row
    
    -- (TOKENIZE returns a set of single-tuple containing just one word)
    
    words = FOREACH input_lines GENERATE FLATTEN(TOKENIZE(line,'.,:;?!-()[]{}" ')) AS word;
    
    -- words = FOREACH input_lines GENERATE FLATTEN(TOKENIZE(line)) AS word;
    
     
    
    -- filter out any words that are just white spaces
    
    -- filtered_words = FILTER words BY word MATCHES '\\w+';
    
     
    
    -- 
    
     
    
    -- create a group for each word
    
    word_groups = GROUP words BY word;
    
     
    
    -- count the entries in each group
    
    word_count = FOREACH word_groups GENERATE COUNT(words) AS count, group AS word;
    
     
    
    -- order the records by count
    
    ordered_word_count = ORDER word_count BY count DESC;
    
     
    
    STORE ordered_word_count INTO '/user/user9/3';
    

     

    ----

     

     

    burdaki kolon yapısından bir şeyler çıkarabilirsin

     

     

     

     

    burdaki slayta da göz atabilirsin

    https://app.box.com/s/on9y17jdh9t3ma7o4neh 

     

    unbalanced tarafından 25/Eyl/14 10:43 tarihinde düzenlenmiştir

    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda. Tek Cözüm; Zafer Partisi!
Toplam Hit: 1999 Toplam Mesaj: 19