6 Teknologi NoSQL Gratis yang Bisa Kamu Coba

Ridwan Fajar 12 Desember 2016

6 Teknologi NoSQL Gratis yang Bisa Kamu Coba

NoSQL adalah sebuah terminologi dimana kamu dapat membangun struktur database tanpa mengandalkan paradigma relasional. Disini, kamu bisa saja mendapatkan sebuah tabel yang didalamnya terdapat struktur kompleks dibandingkan struktur konvensional yang ada di database relasional. Secara umum, NoSQL didominasi oleh struktur JSON. Kamu dapat menemukan di beberapa NoSQL ternyata mereka mengadaptasi struktur JSON untuk menyimpan dokumen mereka. Namun ada juga yang berupa key-value store saja layaknya array di suatu bahasa pemrograman.

Kamu dapat memilih NoSQL karena alasan kecepatan dalam pengambilan data. Ada juga yang dikhususkan untuk melakukan pencarian yang lebih lengkap dan dilengkapi dengan mesin suggestion dan rekomendasi. Ada juga NoSQL yang disediakan oleh penyedia cloud service dan kita tinggal menggunakannya dengan membayar sejumlah biaya.

Beberapa karakteristik penting yang dimiliki NoSQL antara lain:

  • schema-free dan menjadi lebih dinamis
  • easy replication support,
  • simple API
  • consistent tapi tidak ACID
  • data yang sangat besar
  • terdistribusi
  • scalable secara horisontal
Secara jenisnya ada cukup banyak NoSQL di pasaran:
  • wide column store
  • document store
  • key-value store
  • graph database
  • multimodel database
  • object database
  • grid & cloud database
  • multidimensional database
  • multivalue database
  • xml database
  • timeseries / streaming database
  • dan lainnya
Namun kita akan mencoba untuk mengenal beberapa saja yang dapat dicoba langsung di laptop kamu dan tentu saja gratis untuk digunakan. Bila ingin melihat varian lainnya dapat kamu kunjungi halaman http://nosql-database.org/

1. Redis

URL: http://www.redis.io Selection_001

Redis adalah sebuah database yang open source dan dikembangkan oleh Pivotal. Redis menggunakan sistem in-memory serta dapat persistent. Selain digunakan sebagai database, kamu juga dapat menggunakannya sebagai message broker. Data yang didukungnya antara lain string, hash, list, set, dan lainnya. Serta mendukung range query, bitmap, hyperloglogs, dan geospasial dengan radius query.

Redis memiliki sistem replikasi bawaan, LUA scripting, transaction dan cluster. Pendirinya adalah Salvatore Sanfillipo yang masih bekerja di Pivotal. Redis memiliki command line tools yang powerful dan dapat mempermudah kamu melakukan query terhadap Redis. Berikut contoh query Redis:

$ redis-cli                                                                
redis 127.0.0.1:6379> ping
PONG
redis 127.0.0.1:6379> set mykey somevalue
OK
redis 127.0.0.1:6379> get mykey
"somevalue"

2. Apache Cassandra

URL: http://cassandra.apache.org/ Selection_005

Apache Cassandra sejatinya adalah sebuah proyek database berbasis cluster yang diusung oleh Prashant Malik saat masih bekerja di Facebook. Dengan tagline, "Manage massive amounts of data, fast, without losing sleep", Cassandra memang menyuguhkan fitur mumpuni berbasis cluster yang siap menjaga data kamu tetap utuh dan tersedia.

Cassandra memiliki beberapa karakteristik seperti berikut:

  • fault tolerant, data secara otomatis direplikasi ke multiple node di semua data center
  • performant, memiliki benchmark dan penggunaan kasus nyata yang lebih baik dibandingkan NoSQL yang lain
  • decentralized, tidak ada single point of failure dan tidak ada network bottleneck
  • scalable, memiliki pengguna yang menyimpan datanya lebih dari milyaran terrabyte
  • durable, aman ketika semua data center mati
  • elastic, throughput baca dan tulis akan naik seiring bertambahnya mesin baru tanpa downtime
  • you are in control, kamu dapat memilih sistem replikasi baik asinkronus ataupun sinkronus
  • professionally supported, Cassandra memiliki tim pendukung profesional untuk enterprise
Cassandra digunakan oleh berbagai perusahaan besar seperti:
  • CERN
  • eBay
  • Github
  • GoDaddy
  • Hulu
  • Instagram
  • Intuit
  • Netflix
  • Reddit
  • The Weather Channel
  • dan lebih dari 1500 perusahaan lainnya
$ bin/cqlsh localhost
Connected to Test Cluster at localhost:9042.
[cqlsh 5.0.1 | Cassandra 3.8 | CQL spec 3.4.2 | Native protocol v4]
Use HELP for help.
cqlsh> SELECT cluster_name, listen_address FROM system.local;

cluster_name | listen_address --------------+---------------- Test Cluster | 127.0.0.1

(1 rows) cqlsh>

3. ArangoDB

URL: https://www.arangodb.com/ Selection_006

ArangoDB menjadi salah satu database NoSQL yang unik. Hanya dengan menggunakan ArangoDB, kamu dapat menggunakan key-value store, document store, dan graph database hanya dengan menggunakan satu mesin saja. ArangoDB mengusung multimodel database, dimana kamu dapat menggunakan salah satu model yang didukung Arango untuk menunjang aplikasi web yang kamu kembangkan.

Selain itu, ArangoDB memiliki sebuah sripting disamping memiliki query yang disebut dengan Arango Query Language AQL. ArangoDB memiliki scripting yang dinamakan dengan Foxx, mirip Node.js dan dapat membantu kamu untuk membangun sebuah microservice yang ditenagai oleh ArangoDB. Selain itu, ArangoDB sudah memiliki halaman admin memukau yang tidak perlu dipasang dari third-party. Lengkap juga dengan monitoring dan manajemen ArangoDB itu sendiri.

Berikut adalah contoh query ArangoDB:

FOR i IN 1..100
    INSERT { value: i } IN test 
    RETURN NEW

FOR u IN users
    FILTER u.status == "deleted"
    REMOVE u IN users 
    RETURN OLD

FOR u IN users
    FILTER u.status == "not active"
    UPDATE u WITH { status: "inactive" } IN users 
    RETURN NEW

4. Elasticsearch

URL : https://www.elastic.co Selection_004

Elasticsearch adalah platform pencarian yang bersifat near real time. Artinya memiliki latency yang sangat kecil saat suatu dokumen diindeks hingga dilakukan pencarian terhadapnya. Elasticsearch merupakan search engine yang dapat menampung sejumlah data dalam bentuk JSON dan dapat dilakukan operasi mulai dari pencarian, agregasi, geo query, hingga analisis teks.

Di Elasticsearch, kamu akan mengenal istilah index untuk tabel, mapping untuk skema tabel, dan document untuk suatu baris data dalam suatu index. Kamu pun dapat membuat sebuah mesin rekomendasi pencarian dengan memanfaatkan suggest query. Tidak hanya itu, Elasticsearch memiliki kemampuan cluster yang mumpuni, yang membuat proses pencarian menjadi lebih cepat. Selain fitur - fitur tersebut, Elasticsearch memiliki sejumlah plugin yang canggih sepereti Kibana yang dapat memvisualisasikan data yang terindeks di Elasticsearch ke dalam berbagai bentuk grafik yang interaktif.

Berikut adalah contoh query ke Elasticsearch:

$ curl -XGET 'http://localhost:9200/twitter/tweet/_search?routing=kimchy' -d '{
    "query": {
        "bool" : {
            "must" : {
                "query_string" : {
                    "query" : "some query string here"
                }
            },
            "filter" : {
                "term" : { "user" : "kimchy" }
            }
        }
    }
}
'

5. DynamoDB

URL: https://aws.amazon.com/dynamodb/ Selection_002

Sebuah database NoSQL yang ditawarkan Amazon Web Service. Kamu dapat menggunakannya secara lokal dan mengembangkan aplikasi yang dibutuhkan sampai akhirnya, aplikasi yang akan kamu deploy di Amazon Web Service rampung. DynamoDB memiliki API yang difasilitasi oleh Javascript dan memiliki halaman konsol berbasis web yang cukup memukau. Kamu dapat menggunakan DynamoDB dengan bahasa pemrograman lain seperti PHP, Java, Python, dan Node.js.

Salah satu fitur yang dimilikinya tentu saja dukungan langsung oleh Amazon Web Service yang difasilitasi oleh SSD, ketersediaan di berbagai zona di dunia, terintegrasi dengan Elastic MapReduce, backup ke S3, dan lainnya. Fitur yang tidak kalah penting lainnya adalah bisa digunakan secara offline. Berikut contoh query DynamoDB:


var params = {
    TableName: "Music",
    KeyConditionExpression: "Artist = :artist",
    ExpressionAttributeValues: {
        ":artist": "No One You Know"
    }
};

docClient.query(params, function(err, data) {
    if (err)
        console.log(JSON.stringify(err, null, 2));
    else
        console.log(JSON.stringify(data, null, 2));
});

6. MongoDB

URL: https://www.mongodb.com/ Selection_003

MongoDB adalah database berbasis document berlisensi open source yang ditujukan untuk kemudahan development dan scaling. Record dalam MongoDB disebut document yang menyerupai objek JSON. Di dalamnya dapat berisi string, angka, array, objek, atau array dari tipe data yang ada. MongoDB mempunyai tiga keuntungan penting yaitu memiliki sistem dokumen, embbeded dokumen, dan skema dinamis.

Selain memiliki query yang intuitif, MongoDB memiliki sistem agregasi data, full text search, dan geospatial query. Selain itu MongoDB memiliki high availability dan horizontal scalibility yang didukung cluster dan sharding yang kuat. MongoDB pun memiliki dukungan terhadap storage engine seperti WiredTiger dan MMAPv1.

Di MongoDB, Anda akan menemukan collection sebagai tabel dan document sebagai baris. Berikut adalah contoh query di MongoDB:

> db.collection.find( { qty: { $gt: 4 } } )

> db.bios.find( { _id: 5 } )

> db.bios.find(
   {
      _id: { $in: [ 5,  ObjectId("507c35dd8fada716c89d0013") ] }
   }
)

> db.bios.find(
    {
      name: {
              first: "Yukihiro",
              last: "Matsumoto"
            }
    }
)

Bila ingin mencoba bagaimana MongoDB bekerja, kamu dapat membaca tutorial singkat tentang MongoDB di PDKT dengan MongoDB.

(rfs/nosql-database)