lostyazilim
tr.link

Python ile Kullanılabilecek En Hızlı Veritabanı

12 Mesajlar 3.666 Okunma
lstbozum
tr.link

agoren agoren WM Aracı Kullanıcı
  • Üyelik 12.07.2014
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirici
  • Konum Kocaeli
  • Ad Soyad A** G**
  • Mesajlar 304
  • Beğeniler 21 / 28
  • Ticaret 0, (%0)
Selam. Python ile kullanılabilecek en hızlı veritabanı sistemi hangisidir acaba?

Bazı benchmarklar gördüm. Kimisinde pickle, kimisinde sqlite önde çıkmış.

3 milyon hazır kelime var elimde. Bunları veritabanına ekleyeceğim.

İlk başta eklemek biraz zor olabilir haliyle bu normal. Sonra tek tek eklenince zorluk olmaz. Beni burada asıl düşündüren 3 milyonluk veritabanından veri çekeceğim zaman.

Örneğin

veritabanı = ["veritabanından çekilen veriler"]

bunlar 3 milyon kadar olacaklar her defasında. yani 1 milyon 750 bininci veriyi sorgulatacağım zaman yavaşlayacak diye düşünüyorum.

o yüzden biraz yardım lazım öneri lazım yani.
 

 

aligoren.com
wmaraci
reklam

Muhsin ASLAN Muhsin ASLAN Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 10.07.2012
  • Yaş/Cinsiyet 29 / E
  • Meslek Developer
  • Konum Konya
  • Ad Soyad M** A**
  • Mesajlar 1120
  • Beğeniler 1086 / 244
  • Ticaret 1, (%100)
Hocam Microsoft Access kullanmadığınız sürece o kadar kasma olacağını(olursada farkı hissedeceğinizi) düşünmüyorum :D . Birde bunlar kelimeyse içiniz rahat olsun.
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
Document base db'leri kullanmalısın.

MongoB, CouchDB gibi.. Arayada Cache sunucuları itelersen, performansın dibine vurur uygulaman :)
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

agoren agoren WM Aracı Kullanıcı
  • Üyelik 12.07.2014
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirici
  • Konum Kocaeli
  • Ad Soyad A** G**
  • Mesajlar 304
  • Beğeniler 21 / 28
  • Ticaret 0, (%0)

Muhsin ASLAN adlı üyeden alıntı

Hocam Microsoft Access kullanmadığınız sürece o kadar kasma olacağını(olursada farkı hissedeceğinizi) düşünmüyorum :D . Birde bunlar kelimeyse içiniz rahat olsun.


Yok hocam zaten Linux altinda calisilacak.

Turgay Can adlı üyeden alıntı

Document base db'leri kullanmalısın.

MongoB, CouchDB gibi.. Arayada Cache sunucuları itelersen, performansın dibine vurur uygulaman :)


Cache olarak bildiginiz ozel olarak onerebileceginiz bir sey var mi?

Ornek: varnish, squid vs. gibi

Burada yapmak istedigim sey. Aranan sonuclara karsi bunu mu denemek istediniz gibi bir sey. Tabii bunu mu denemek istediniz yazmayacak.

Turkce ile alakali bir sey. Konusma tanima gibi. Fakat kelime fazla olunca yavaslar diye dusunmustum. MongoDB ve Scala ile calismistim. Reactive Mongo'da

Python'da calismadim sadece okudum Flask ve REST API yazma hayallerim vardi o donem bir bakmistim.

Ancak CouchDB hakkinda bilgim sifir. Mongo vs. Couch diye karsilastirmak biraz sacma olabilir belki ama yine de bunu sizden istesem bildiginiz kadari ile?

Her ikinize de tesekkurler :)
 

 

aligoren.com
wmaraci
wmaraci

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)

agoren adlı üyeden alıntı

Yok hocam zaten Linux altinda calisilacak.



Cache olarak bildiginiz ozel olarak onerebileceginiz bir sey var mi?

Ornek: varnish, squid vs. gibi

Burada yapmak istedigim sey. Aranan sonuclara karsi bunu mu denemek istediniz gibi bir sey. Tabii bunu mu denemek istediniz yazmayacak.

Turkce ile alakali bir sey. Konusma tanima gibi. Fakat kelime fazla olunca yavaslar diye dusunmustum. MongoDB ve Scala ile calismistim. Reactive Mongo'da

Python'da calismadim sadece okudum Flask ve REST API yazma hayallerim vardi o donem bir bakmistim.

Ancak CouchDB hakkinda bilgim sifir. Mongo vs. Couch diye karsilastirmak biraz sacma olabilir belki ama yine de bunu sizden istesem bildiginiz kadari ile?

Her ikinize de tesekkurler :)


Cache olarak memcached tabanlı geliştirilmiş olan CouchBase önerebilirim, Redis ve Hazelcast gibi muadilleride mevcut.

Mongo vs CouchDB'de ihtiyaç önemlidir. CouchDB daha çok değişen datalar için kullanılma amacı taşır ve bu baz alınarak geliştirilmiştir. Eğer elinizdeki data her gün yada saat değişen bir data ise, CouchDB fakat fazla değişen değilde biriken bir data üzerinden hızlı sorgular çalıştırmak ise amaç MongoDB.

Tavsiyem ;

CouchBase Cache Framework + Couch DB

yada

REDIS + MongoDB

Hazelcast dağıtık sistemler için en iyisidir fakat dağıtık min. 4-5 makien üzerinde datayı tutmayı ve everytime up bir db sistemi ile çalışmayı planlamıyorsanız amacı dışına çıkmış olursunuz yok benim sistemin her ne olursa olsun up olmalı ve dataya her an ulaşabilmeliyim diyorsanız Hazelcast kullanım olarakta basit ve iyidir.
BrutalStar

kişi bu mesajı beğendi.

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

agoren agoren WM Aracı Kullanıcı
  • Üyelik 12.07.2014
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirici
  • Konum Kocaeli
  • Ad Soyad A** G**
  • Mesajlar 304
  • Beğeniler 21 / 28
  • Ticaret 0, (%0)

Turgay Can adlı üyeden alıntı

Cache olarak memcached tabanlı geliştirilmiş olan CouchBase önerebilirim, Redis ve Hazelcast gibi muadilleride mevcut.

Mongo vs CouchDB'de ihtiyaç önemlidir. CouchDB daha çok değişen datalar için kullanılma amacı taşır ve bu baz alınarak geliştirilmiştir. Eğer elinizdeki data her gün yada saat değişen bir data ise, CouchDB fakat fazla değişen değilde biriken bir data üzerinden hızlı sorgular çalıştırmak ise amaç MongoDB.

Tavsiyem ;

CouchBase Cache Framework + Couch DB

yada

REDIS + MongoDB

Hazelcast dağıtık sistemler için en iyisidir fakat dağıtık min. 4-5 makien üzerinde datayı tutmayı ve everytime up bir db sistemi ile çalışmayı planlamıyorsanız amacı dışına çıkmış olursunuz yok benim sistemin her ne olursa olsun up olmalı ve dataya her an ulaşabilmeliyim diyorsanız Hazelcast kullanım olarakta basit ve iyidir.


Sabit bir data var aslinda. Tornado web framework kullaniyorum. Backend'de cache olarak couchbase kullanayım couchdb olarak.

Veri eklenecek ama eski veriler değişmeyecek yani yeni verilere açık bir veritabanı. Ancak sanırım mongodb 32 bit sistemler için 2.5 gb'dan fazlasına izin vermiyordu.

Şöyle düşünelim:

Türkiyede, Türkçe, Kürtçe vs. bütün dillerdeki bütün kelimeleri bir veritabanına ekleyeceğiz. Bu ben 3 milyon dedim ama 30 milyon da olabilir. Bu kelimeler 30 milyon ve ben bir sorgu yolladım.

mreabha dnuya

bunu otomatik merhaba dünya'ya çevirecek. merhaba ve dünya veritabanındaki kelimeler. bunun için ngram'dan faydalandım. burada asıl sorun şu.

merhaba ve dunya alfabetik olarak sıralanacaklardır büyük ihtimal çok farklı noktalarda. yani ikisini aynı anda mı arayacak yoksa ilk giren, ilk çıkar mantığıyla ilk kelime, ilk aranan olacak falan mı diyecek.

Kafamı karıştıran burası oluyor işte. Milyonlarca veri barındırıldığı zaman sunucu yükü artıyor işlem zamanı kötüye gidiyor. Cache harici bir de sanırım speed modülü kodlamak gerekiyor. Thread kullanmak gerekebilirs vs.
 

 

aligoren.com

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
Document Base DB ile RDBMS farklı mantıkta çalışır. Senin atacağın sorgu için objeleri rahat bir şekilde genişletip, artırabilirsin. Bu tür eklemeli işler için ise Document dizaynını ve index atacağın noktaları iyi bilmen gerekir. Buda tamamı varolan iş kuralları ve kullanıcı alışkanlıklarının gözlemlenmesi ile oluşur.

3-30 milyon gibi bir veri document base db ler için atla deve değildir. 120 milyonluk docs lerden veri çekerken bile en fazla 30 sn. sürüyor.

Fakar öneri sistemi gibi bir şey olacaksa ve veriniz text ise cache üzerinden bu işler yapılmalı hatta SOLR yada Elastic Search aslında sizin için en makul çözüm ;)

Sonuçta bu search engine 'lerde cache'te datayı barındırıyor ;) FULL TEXT search için ise biçilmiş kaftan.
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

agoren agoren WM Aracı Kullanıcı
  • Üyelik 12.07.2014
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirici
  • Konum Kocaeli
  • Ad Soyad A** G**
  • Mesajlar 304
  • Beğeniler 21 / 28
  • Ticaret 0, (%0)

Turgay Can adlı üyeden alıntı

Document Base DB ile RDBMS farklı mantıkta çalışır. Senin atacağın sorgu için objeleri rahat bir şekilde genişletip, artırabilirsin. Bu tür eklemeli işler için ise Document dizaynını ve index atacağın noktaları iyi bilmen gerekir. Buda tamamı varolan iş kuralları ve kullanıcı alışkanlıklarının gözlemlenmesi ile oluşur.

3-30 milyon gibi bir veri document base db ler için atla deve değildir. 120 milyonluk docs lerden veri çekerken bile en fazla 30 sn. sürüyor.

Fakar öneri sistemi gibi bir şey olacaksa ve veriniz text ise cache üzerinden bu işler yapılmalı hatta SOLR yada Elastic Search aslında sizin için en makul çözüm ;)

Sonuçta bu search engine 'lerde cache'te datayı barındırıyor ;) FULL TEXT search için ise biçilmiş kaftan.


Tesekkur ederim. Bu Elastic Search son zamanlarda cok denk geldigim bir kavram oldu benim icin ama bakmak kismet olmadi. Su saatten sonra onu kavramak da bir sorun olacak. redis'e baktim kullanimi cok kolay geldi.

anlamadigim sey neden bu kadar cok alternatif var. ornegin her birisi bi konuda iyi. bu hepsinin iyi yanlarini toplayip bir tane yapsalar da biz de kararsiz kalmasak. sinirimi bozdu :/
 

 

aligoren.com

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
:)

Hepsinin çıkış noktası temelde ortak bir ihtiyaça çözüm bulmak ve zamanla, ihtiyaçlar ortak olsa bile kendi içinde daha derin teknik konular üzerinden evrilmeye başlarlar ve ayrışırlar. Bu ayrışma senin yapacağın işin teknik ve iş katmanında hangisinin kullanacağını belirler.

Farklılık ve zenginlikler iyidir dostum. All in One (Hepsi bir arada) olması zor farklı farklı gruplar tarafından geliştiriliyorlar.
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

agoren agoren WM Aracı Kullanıcı
  • Üyelik 12.07.2014
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirici
  • Konum Kocaeli
  • Ad Soyad A** G**
  • Mesajlar 304
  • Beğeniler 21 / 28
  • Ticaret 0, (%0)

Turgay Can adlı üyeden alıntı

:)

Hepsinin çıkış noktası temelde ortak bir ihtiyaça çözüm bulmak ve zamanla, ihtiyaçlar ortak olsa bile kendi içinde daha derin teknik konular üzerinden evrilmeye başlarlar ve ayrışırlar. Bu ayrışma senin yapacağın işin teknik ve iş katmanında hangisinin kullanacağını belirler.

Farklılık ve zenginlikler iyidir dostum. All in One (Hepsi bir arada) olması zor farklı farklı gruplar tarafından geliştiriliyorlar.


Oyle haklisin. Onerin icin tesekkur ederim.

NoSql kavramlarina yabanci oldugum cok belli :D

Direkt olarak

vt.fetchall() yapmaya calistim hayir ogrenicem kolay olmali zor olamaz ki :p

Bir kere ogrenince sonra mutlu ediyormus insani :D
 

 

aligoren.com
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al