CouchDB , Futon ve Curl İle CRUD İşlemleri

Herkese Merhaba 🙂 Bu yazımda basitçe “CouchDB nedir? , Futon nedir, nasıl kullanılır? , Terminalden curl ile Couchdb üzerinde CRUD işlemleri nasıl  yapılır?” konularını inceleyeceğiz.

Couchdb NoSQL tabanlı, verileri JSON formatında tutan , MapReduce indeksleri için JavaScript ve kendi API’si için HTTP kullanan, Erlang ile yazılmış open source bir veritabanı sistemidir. 

couchdb_logo.png

Öncelikle “NoSQL nedir, nasıl bir yapısı vardır?” hakkında şu yazımı okuyarak bilgilenebilirsiniz. 🙂 

Map Reduce kavramına değinelim. Big Data severlerin hakim olduğu bu kavram, dağıtık mimariler üzerindeki çok büyük verilerin kolay bir şekilde analiz edilmesini sağlayan bir kütüphaneyi simgeler. Google tarafından geliştirilmiştir. Map ve Reduce fonksiyonları ile işlem yapılır.

Map tarafında ana düğüme gelen veriyi küçük parçalara ayrılır ve işçi düğümlere gönderilir. İşçi düğümler belirlenen işleri gerçekleştirdikten sonra sonuçları ana düğüme döner. Reduce tarafında ise tamamlanan işler belirli bir mantığa göre birleştirilir. Kısaca map tarafında analiz edilmesi gereken veriler seçilir, reduce tarafında analiz işlemi yapılır diyebiliriz.

Gelelim asıl konumuza : Couchdb’yi nasıl kullanacağız?

Couchdb kurulumu için şuraya tıklamanız gerekiyor. Uygun işletim sistemi ve versiyonunu seçip kurduysanız artık couchdb ile işlem yapmaya hazırsınız. Official sitesinde nasıl kurulum yapacağınız da anlatılıyor.

Ben Ubuntu 15.04 kullanıyorum, işlemleri Ubuntu üzerinden anlatacağım. Couchdb 1.6.1’i kurdum. İlk başta kurulum aşamasında fazlaca problem yaşadım. Hata çöze çöze kurulum yaptım diyebilirim. 🙂 

Root olarak işlem yapıyoruz bu yüzden komutu sudo ile verdim. Couchdb’yi başlattık : 

Screenshot from 2015-12-07 16:39:05

İkinci bir terminal penceresi açalım. Buradan işlemlerimizi yapacağız. Ama önce size Futon’u anlatmalıyım.

Futon için Couchdb’nin arayüzü desek yanlış olmaz. Ulaşmak için url çubuğuna http://127.0.0.1:5984/_utils/ yazıyoruz. Kurulum esnasında localhostu ve 5984 numaralı portu ayarlamıştık. Futona bir göz atalım. 

Screenshot from 2015-12-07 16:52:57

Karşımıza böyle bir pencere geliyor. Kullanımı son derece basit. Sol üstte bulunan create database ‘e tıklayarak yeni bir database oluşturabiliriz. Tıklayalım madem 🙂 Veritabanımıza bir isim verdikten sonra yine sol üst köşede bulunan new document kısmından ilk dökümanımızı ekleyelim. Şimdi bu dökümana field eklememiz gerekli. add field kısmından field eklemeye başlıyoruz. Id için random bir değer geliyor. Bildiğiniz gibi NoSQL’de id ile işimiz yok bu yüzden gelen değere okey demenin bence bir sakıncası yok 🙂 Ekledikten sonra sağ tarafda bulunan source kısmına tıkladığınızda verinin JSON formatında tutulmuş olduğunu göreceksiniz. 

Screenshot from 2015-12-07 17:07:47

 

Save document dediğimiz an artık veritabanımıza ekleme işlemi yapmış olduk. Source kısmında da fields kısmında da verilerin üzerine çift tıklama yaparak düzenleme yapabiliriz. Ekleme, silme ve güncelleme işlemleri bu arayüz sayesinde basit ve açık bir şekilde yapmayı öğrendik. 

Gelelim curl ile yani terminal üzerinden bu işlemleri gerçekleştirmeye. Temel olarak curl ile kullanacağımız 4 method var : 

-GET/POST

-PUT

-DELETE

GET methodu ile verileri görüntüleyebiliyor, PUT ile ekleme yapıyor ve DELETE ile silme işlemini gerçekleştiriyoruz. 

Screenshot from 2015-12-07 17:19:04.png

curl -X GET http://127.0.0.1:5984/_all_dbs komutu ile kayıtlı tüm veritabanlarını görüntüleyebiliyoruz. İlk açtığımız terminal penceresinde de işlemlerimiz anlık olarak listeleniyor.

curl http://127.0.0.1:5984/ komutu ile couchdb versionu ile birlikte bizlere merhaba diyor.

curl -X PUT http://127.0.0.1:5984/database_name komutu ile yeni bir veritabanı oluşturuyoruz.

 

curl -X DELETE http://127.0.0.1:5984/database_name komutu ile veritabanımızı siliyoruz.

Elimizdeki bir json dosyasını da curl ile veritabanımıza ekleyebiliriz. Öncelikle bir adet json dosyası oluşturalım, adı newfile.json olsun ve verilerimizi json formatında kaydedelim.

Terminalden dosyanın bulunduğu dizine girerek şu komutu kullanıyoruz : 

http://127.0.0.1:5984/database_name/ -d @newfile.json -H “Content-Type: application/json”

Futon’dan sayfayı yenilediğinizde yeni dökümanın veritabanınıza eklenmiş olduğunu göreceksiniz. 🙂

Şimdilik Couchdb’den ve benden bu kadar. Mutlu günler 🙂