MongoDb – Dubluve.net http://www.dubluve.net Biz de yazılımcıyız Fri, 29 Apr 2016 21:50:31 +0000 tr-TR hourly 1 http://i2.wp.com/www.dubluve.net/wp-content/uploads/2016/04/logo_small.png?fit=32%2C29 MongoDb – Dubluve.net http://www.dubluve.net 32 32 bson – binary json nedir? http://www.dubluve.net/2012/11/07/bson-binary-json-nedir/ http://www.dubluve.net/2012/11/07/bson-binary-json-nedir/#comments Tue, 06 Nov 2012 22:23:30 +0000 http://dubluve.net/?p=2221 Bson, yani Binary JSON, JSON’ların binary şekilde encode edilmiş halidir.

Bson, tıpkı json gibi, içinde array ve döküman barındırırlar. Temelde 4 tipten oluşurlar, bunlar;

byte 1 byte (8-bits)
int32 4 bytes (32-bit signed integer)
int64 8 bytes (64-bit signed integer)
double 8 bytes (64-bit IEEE 754 floating point)

Çok küçük bir örnek vermek gerekirse;

{"hello": "world"}	→	"\x16\x00\x00\x00\x02hello\x00\x06\x00\x00\x00world\x00\x00"

Bu adresten, başka örneklere ve içerisinde saklanan söz dizimlerine ulaşabilirsiniz.

Önemli olan bir nokta, MongoDB, ağ ve disk yönetiminde BSON kullanmaktadır. Çoğu dil için, MongoDB’nin driverı mevcuttur (C, C++, Java, Perl, PHP, Python, Perl, Ruby vs.) Onların listesine de buradan ulaşabilirsiniz.

İyi çalışmalar.

]]>
http://www.dubluve.net/2012/11/07/bson-binary-json-nedir/feed/ 7
Ubuntu MongoDb kurulumu (ubuntu mongodb installation) http://www.dubluve.net/2012/07/18/ubuntu-mongodb-kurulumu-ubuntu-mongodb-installation/ http://www.dubluve.net/2012/07/18/ubuntu-mongodb-kurulumu-ubuntu-mongodb-installation/#comments Wed, 18 Jul 2012 20:06:01 +0000 http://dubluve.net/?p=1539 MongoDb’yi Ubuntumuza kurmak için, öncelikle install edeceğimiz yerin GnuPG (GNU Privacy Guard) (GPG) keyini bilgisayarımıza tanıtıyoruz.

Terminale girip;

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

yazmamız gerekiyor. (Bu key, MongoDB’nin kendi internet sitesinde verilmiş.)

Sonrasında da, MongoDB’yi indireceğimiz yeri bilgisayarımıza tanıtmamız gerekiyor. Bunun için de /etc/apt/sources.list.d dizinini açıyoruz ve burada 10gen.list adında bir dosya yaratıyoruz (touch komutu ile yapabiliriz). Sonrasında bu dosyayı bir editör ile açıp aşağıdaki satırı ekleyip kaydediyoruz.

deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen

Ardından terminale girip sudo apt-get update yapıyoruz.

Şimdi sıra geldi MongoDB’yi kurmaya! 😀

Terminalimizi açıp, aşağıdaki satırı uyguluyoruz, ve MongoDB, Ubuntumuza kurulmuş oluyor.

sudo apt-get install mongodb-10gen

Terminale mongo yazdığımız zaman MongoDB shell’i karşımıza çıkıyor. Test database’inin test collectionunda deneme yapmamızı sağlıyor ilk açtığımızda. Aşağıdaki satırlarla ufak bir deneme yapabiliriz.

> db.test.save({a:1})
> db.test.find()

Bir sonraki yazımda, Ubuntu üzerinde çalışırken MongoDB’yi PHP ile nasıl kullanacağımızı anlatacağım.

]]>
http://www.dubluve.net/2012/07/18/ubuntu-mongodb-kurulumu-ubuntu-mongodb-installation/feed/ 2
database – mysql persistent connection nedir? http://www.dubluve.net/2012/07/05/database-mysql-persistent-connection-nedir/ http://www.dubluve.net/2012/07/05/database-mysql-persistent-connection-nedir/#comments Thu, 05 Jul 2012 20:22:33 +0000 http://dubluve.net/?p=1488 Persistent connection nedir?

Persistent connection, bağlantının sürekli açık tutulduğu bağlanma biçimine denir.

Normal olarak, yazılım dilleri bir veritabanına bağlanacağı zaman, bilgisayardaki bir port üzerinden veritabanına bağlantı açar. Daha sonra kodun sonunda, veya isteğe bağlı bir yerine bağlantıyı kapatır. Ayrıca connection kapatılmadıysa, yazılım dillerinde otomatik kapatma seçenekleri de bulunmaktadır. Örneğin 5 sn sonra kapat, 10 sn sonra kapat, biter bitmez kapat gibi seçenekler mevcuttur.

Persistent connection ın avantajları

Veritabanı bağlantısının otomatik. olarak açılıp kapatılması, en az ayar gerektiren şey olabilir. Ancak performansınızı persistent connection ile artırabilirsiniz.

Bir web sayfası isteği geldi diyelim. Yazılım dili kodu çalıştırdı. Varsayalım ki 1 Query gerekti bu sayfa için.
1- Hazırda bir bağlantı yok. İşletim sisteminden ilgili portu kullanmak için müsade istedi.
2- Daha sonra ilgili porta bağlandı.
3- Sonra querysini çalıştırdı.
4- Sonucunu ilgili porttan okudu.
5- Kod bitince de mysql bağlantısını kapattı.

persistent connection bu noktada, 1. aşamayı hızlandırır, 2. aşamayı direkt ortadan kaldırır, 4. aşamayı hızlandırır ve 5. aşamayı ortadan kaldırır.

Baktığımızda query önemli bir maliyet olabilir tabi ki querysine göre değişir ancak, yüklü bir serverda bahsettiğim durumun bariz hız kazandıracağı aşikar.

—-
Persistent connectionın diğer bir avantajı da , yüksek load altında, saçmalayan bir yapıya müsade etmemesidir. Persistent connection sayınızı yazılım dilinden ayarladığınızda, diyleim ki 200 verdiniz, sitenize aynı anda 1000 kişi bile gelse, serverinizin stabilliğini korur. Otomatik olarak bir sürü bağlantı açtırsaydık, bunları yönetmemiz imkansız olacaktır. (tabi kullanıcılar mysql bağlanamadı hatası alırlar, ancak siteniz çökmez bu daha önemlidir, en önemlisi de sistemi ince ayar yaparak bu ihtiyaçları da karşılayabilir hale getirmeniz sizin elinizdedir.)

Mysql olarak anlattık hep, mysql de persistent connection kullanmanız inanılmaz kolay. tek yapacağınız mysql_connect yerine mysql_pconnect kullanmanız. Bir de eğer mysql_close kullanıyorsanız, bunlar kodunuzdan kaldırmanız. (tabi ki başka bir database e bağlanacaksanız o ayrı durum)

—–
Bu sadece mysql için değil hemen hemen tüm veritabanlarında ortak olan bir özelliktir.

Hele ki database serverini ayrı bir server olarak kullanıyorsanız, ve bu makina sadece database e özel bir makina ise şiddetle tavsiye ederim. Ben aktif olarak mysql ve mongoda persistent connection kullanıyorum.

dipnot : Mysql ve Mongo persistent connectionları için PHP’de mod_php ile Apache ‘yi tercih etmeyiniz. Nginx veya lighthttpd yanında kurulu bir phpfcgi(php fast cgi), yüksek load altında apacheden hem çok daha stabil çalışıyor, hem de performans olarak %500 den fazla hızlı çalışıyor. En önemlisi, yapacağınız ayarları “DOĞRU” olarak çalıştırıyor.

]]>
http://www.dubluve.net/2012/07/05/database-mysql-persistent-connection-nedir/feed/ 4
Mongodb için phpmoadmin http://www.dubluve.net/2012/01/08/mongodb-icin-phpmoadmin/ http://www.dubluve.net/2012/01/08/mongodb-icin-phpmoadmin/#respond Sun, 08 Jan 2012 00:37:34 +0000 http://dubluve.net/?p=673 Php ile mysql in yönetim toolu olan phpMyAdmin den sonra şimdi de mongo db için de bir php toolu yapmışlar. Adı phpmoadmin. PhpMyadmin kadar geniş kapsamlı ve kullanışlı olmasa da işinizi görebilecek özelliklerin hepsine sahip. Tabi ki Windows ortamında mongod.exe yi çalıştırdktan sonra girebiliyorsunuz.

İşinize yarayacağını düşünüyorsanız, tek dosya. Çok pratik. http://www.phpmoadmin.com adresinden indirebilirsiniz.

]]>
http://www.dubluve.net/2012/01/08/mongodb-icin-phpmoadmin/feed/ 0
Sql’den Mongo’ya eşleşmeler (Sql to Mongo mapping chart) http://www.dubluve.net/2011/11/27/sqlden-mongoya-eslesmeler-sql-to-mongo-mapping-chart/ http://www.dubluve.net/2011/11/27/sqlden-mongoya-eslesmeler-sql-to-mongo-mapping-chart/#respond Sun, 27 Nov 2011 12:14:14 +0000 http://dubluve.net/?p=459
MySQL executable Oracle executable Mongo executable
mysqld oracle mongod
mysql sqlplus mongo

 

MySQL term Mongo term
database database
table collection
index index
row BSON document
column BSON field
join embedding and linking
primary key _id field

 

MongoDB sorguları JSON (BSON) nesneleri olarka belirtilir.  Bu sorguları sayfanın en altındaki linkten tıklayarak görebilrisiniz.

MOngoDB’deki sorgu ifadesi (ve index key gibi diğer şeyler ) JSON (BSON) olarak gösterilir. fakat, gerçek fiil(örneğin find() metodundaki find kelimesi) bir yazılım dili için bu kelimedir. (bu da şu an javascript shell i için böyledir. mongo shell den çalıştırılabilir) Bu fiiller (yani find gibi metodların isimleri ) yazılım dilinden diline değişkenlik gösterebilir. Örneğin bu javada find değil de fetch olabilir.

Daha fazla eşleşme bilgisi için lütfen mongodb.org sitesine bakınız : :http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart

]]>
http://www.dubluve.net/2011/11/27/sqlden-mongoya-eslesmeler-sql-to-mongo-mapping-chart/feed/ 0
mongodb terimler ve fikirler http://www.dubluve.net/2011/11/27/mongo-db-terimler-ve-fikirler/ http://www.dubluve.net/2011/11/27/mongo-db-terimler-ve-fikirler/#respond Sun, 27 Nov 2011 11:40:01 +0000 http://dubluve.net/?p=449 Geçen günlerde yazdığım bir yazıda mongo db yi windows 7 ortamında nasıl çalıştırabilceğimizden bahsetmiştik. Bugün de mongo db de geçen terimlerin bizim alışkın olduğumuz terimler cinsinden ifadelerinden bir kaç tanesini izah etmek istiyorum.

database :  database demek. Aynı yani.

  • show dbs komutu : kayıtlı veritabanları listeler.
  • use another_db  komutu : diğer bir veritabanını kullanmayı söyler.
  • show collections komutu : (o databasedeki collectionları gösterir. nam-ı diğer show tables komutuyla aynı. )

collection : table demek.

  • db.accounts.count(); : account collectionındaki (accounts tablosundaki) veri sayısını verir.
  • db.accounts.find(); account collectionındaki (accounts tablosundaki) verileri çeker.
  • db.accounts.find.foreach(function(doc){print(tojson(doc));}) : foreach ile accounts tablosundaki tüm verileri gezip rowları (satırları) json formatında basar.

doc : row demek. Yani satır demek.

  • var cursor = db.colors.find(); cursor.next(); şeklinde Array iteratör gibi kullanımı olabiliyor.
  • Select * from colors where name=’green’  : db.colors.find({name:’green’})

 

OKUDUKLARIM :

Mongo db, diğer veritabanları gibi, ifadeyi parse etmeyle çok fazla vakit harcamıyor. İfade imla kuralları ile değil de, yazılım kuralları ile tasarlandığından ötürü (örneğin Select * from bla_bla where foo>bar gibi ifadelerin yerine bildiğimiz fonksiyon parametre ve metod gibi ifadeler ile , yani bilgisayarın daha hızlı anlamlandırabileceği ifadeler ile yazdığımızdan) daha hızlı ve daha modelli çalışmamız mümkün.

Okuduklarıma göre genelde mysqlin yerine çok hızlı olarak devreye alınabilir gözüküyormuş. Tabi piyasadaki hosting firmalarının bir çoğu henüz serverlerinde mongodb desteğini sunmuyor. Ancak bu gelişmekte olduğu gözükebiliyor.

Size tavsiyem, önünüzdeki basit sayılabilecek bir projenizde mongodb’den faydalanarak yapmanız, size hem basitçe bu db yi kullanmayı, hem de az da olsa avantajlarını ve yapısını anlamanıza yardımcı olacaktır. Ben de kendim için hazırlayacğaım küçük bir projede kullanmayı düşünüyorum. Bunu da sizlerle yine paylaşacağım.

kaynak : http://www.slideshare.net/jnunemaker/why-mongodb-is-awesome

]]>
http://www.dubluve.net/2011/11/27/mongo-db-terimler-ve-fikirler/feed/ 0
Windows MongoDb kurulumu (windows mongodb installation) http://www.dubluve.net/2011/11/21/windows-mongodb-kurulumu-windows-mongdb-installation/ http://www.dubluve.net/2011/11/21/windows-mongodb-kurulumu-windows-mongdb-installation/#comments Sun, 20 Nov 2011 23:26:05 +0000 http://dubluve.net/?p=416 Çeşitli kaynaklardan mongo db nin (relational olmayan ama benzeyen bir database) çok performanslı bir database olduğunu duydum, ve şu anda fırsatını bulup kendime kurmayı başarabildim. (Kurmaya karar vermeden önce ilgimi çekmesini sağlayan http://www.mongodb.org/ adresinde “try it out” kısmından javascript shell’i ile bir tur attığımı belirtmek isterim)

İndirmece

Download linkinden 32 veya 64 bit olan (windowsunuzun bit’ine göre) önceden built edilmiş versiyonlardan birini indirmeniz gerekiyor. (Production versiyonlarından en güncelini tercih ediniz) (kendiniz de build edebilirsiniz fakat bence buna gerek yok. ) İndirdiğiniz şey bir zip olduğundan bunu açmanız gerekiyor. (Bu noktada kullandığınız mongo versiyonunu unutmamanız için versiyon dosyasını aynı klasörde saklamanızda yarar var).

Bir data klasörü oluşturmaca

Varsayılan olarak bu şekilde tanımlı olduğu için, c:/ dizininde data adlı bir klasör ve onun da içinde db diye bir klasör açmanız yeterli. Fakat ille de varsayılanı kullanmayacağım diyorsanız, mongod.exe yi –dbpath parametresi ile veritabanı ana yolunu verebilirsiniz. (Ben varsayılanı kullanmayı tercih ettim).

Çalıştırıp, bağlanmaca

mongod.exe asıl çalıştırılması gereken dosyadır. (Server) mongod.exe –help yazarak opsiyonları görebilirsiniz. mongo.exe yönetici kısmıdır. Yani mongod.exe yi çalıştırdıktan sonra , mongo.exe yi çalıştırıp mysql konsol gibi çalışabilirsiniz. (çekinmeden kurcalayınız.)

Bu yazıda windows için (windows 7 ) mongodb nin kurulmasını sağladık. Tabi ki birkaç küçük denemeden sonra bir yazılım dile ile çalışmasını isteyeceksinizdir. http://www.mongodb.org/display/DOCS/Drivers sayfasında mongodb tarafından desteklenen yazılım dillerinin bir listesini ve ilgili downloadlarını bulabilirsiniz.

Ben de Php ile çalışmasını sağlayan ve küçük bir örnek içeren halini de farklı bir yazıda eklemek istiyorum.

Kurcalayın, siz de çok seveceksiniz.

]]>
http://www.dubluve.net/2011/11/21/windows-mongodb-kurulumu-windows-mongdb-installation/feed/ 1