Pengenalan Cassandra
Cassandra atau lengkapnya Apache Cassandra adalah salah satu produk open source yang dirancang untuk menangani jumlah data yang sangat besar yang tersebar di banyak, Cassandra merupakan salah satu implementasi dari NoSQL, sedangkan NoSQL merupakan konsep penyimpanan database dinamis yang tidak terikat pada relasi-relasi tabel yang kaku seperti RDBMS.
Sejarah Cassandra
1. Cassandra dikembangkan di Facebook untuk daya fitur Inbox Pencarian ( Jeff Hammerbacher).
2. Opensource oleh Facebook pada tahun 2008.
3. Menjadi Apache incubator proyek di tahun 2009
4. Dan Facebook ditinggalkan Cassandra pada akhir 2010 ketika mereka membangun Facebook platform Messaging pada HBase.
Nah mungkin saat ini banyak NoSQL yang opensourc sama juga seperti Cassandra berikut ini adalah beberapa fitur database Cassandra :
1. Elastic Scalability
2. Penyimpanan data yang fleksibel
3. Distribusi data yang mudah
4. Menulis cepat
Makin bingung kan ? kapan kita menggunkan cassandra dan kapan kita menggunakan MongoDB . nah mungkin beberapa perbandingannya bisa kita cek di bawah ini :
Menurut saya cassandra lebih mudah jika kita terbiasa menggunakan database SQL karna query database cassandra yang di sebut CQL itu querynya hampir sama dengan query SQL, waah hehe .... berbeda dengan query MongoDB yang sangat berbeda dengan query SQL.Cassandra atau lengkapnya Apache Cassandra adalah salah satu produk open source yang dirancang untuk menangani jumlah data yang sangat besar yang tersebar di banyak, Cassandra merupakan salah satu implementasi dari NoSQL, sedangkan NoSQL merupakan konsep penyimpanan database dinamis yang tidak terikat pada relasi-relasi tabel yang kaku seperti RDBMS.
Sejarah Cassandra
1. Cassandra dikembangkan di Facebook untuk daya fitur Inbox Pencarian ( Jeff Hammerbacher).
2. Opensource oleh Facebook pada tahun 2008.
3. Menjadi Apache incubator proyek di tahun 2009
4. Dan Facebook ditinggalkan Cassandra pada akhir 2010 ketika mereka membangun Facebook platform Messaging pada HBase.
Nah mungkin saat ini banyak NoSQL yang opensourc sama juga seperti Cassandra berikut ini adalah beberapa fitur database Cassandra :
1. Elastic Scalability
2. Penyimpanan data yang fleksibel
3. Distribusi data yang mudah
4. Menulis cepat
Makin bingung kan ? kapan kita menggunkan cassandra dan kapan kita menggunakan MongoDB . nah mungkin beberapa perbandingannya bisa kita cek di bawah ini :
Kembali ke tema kita yaitu spring boot + cassandra, nah skrng kita mulai project spring bootnya .
1. Siapkan project spring-boot
2. Instal Cassandra, bisa melalui datastax
Tambahkan dependency cassandra di project Spring kita :
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-cassandra</artifactId>
</dependency>
kemudian buka datastaxnya kita buat keyspace(bisa di sebut juga sebagai nama databasenya/schema) dan buka cassandra CQL Shell
Kita
buat Keyspacenya :
CREATE KEYSPACE toko WITH replication = {‘class’:’SimpleStrategy’,’replication_factor’:1};
CREATE KEYSPACE toko WITH replication = {‘class’:’SimpleStrategy’,’replication_factor’:1};
Configurasi
di project spring : application.properties
spring.data.cassandra.keyspace-name=test_cassandra
spring.data.cassandra.contact-points=localhost
spring.data.cassandra.port=9042
nah untuk kali ini kita mencoba fitur MAP di
cassandra, buat domain seperti berikut:
kita buat attribute imageurl sebagai MAP
kemudian untuk repositorynya kita gunakan CQL ,
query CQL insert :
INSERT INTO produk(kode,description,imageurl,price) values(:kode,:description,:imageurl,:price)
Dan ini query CQL update :
UPDATE produk SET description = :description,price = :price,imageurl = imageurl + :imageurl where kode=:kode
kemudian untuk repositorynya kita gunakan CQL ,
query CQL insert :
INSERT INTO produk(kode,description,imageurl,price) values(:kode,:description,:imageurl,:price)
Dan ini query CQL update :
UPDATE produk SET description = :description,price = :price,imageurl = imageurl + :imageurl where kode=:kode
berikut payload untuk insert data :
Nah
jadi atribute imageurl yang berisi map1 dan map2 bisa lebih flexible.
Sekarang kita get datanya :
Dari gambar diatas yang kita get melalu postman dapat terlihat perbedaan data di atribute imageurl data pertama memiliki 1(satu) atribute, dan data kedua memiliki 2(dua) atribute. dan kita cek data yg telah kita insert tadi melalui cql shell
Sekarang kita get datanya :
*describe keyspaces = untuk menampilkan keyspace yang ada
Kesimpulan
jadi NoSQL mungkin lebih flexible tapi perlu di ingat data seperti ini kurang baik untuk sistem sistem yang mempunyai banyak transaksi yang berelasi karna data kurang terstruktur, ya mungkin harus di lihat sejauh mana kebutuhan dalam penggunaan NoSQL.
Kesimpulan
jadi NoSQL mungkin lebih flexible tapi perlu di ingat data seperti ini kurang baik untuk sistem sistem yang mempunyai banyak transaksi yang berelasi karna data kurang terstruktur, ya mungkin harus di lihat sejauh mana kebutuhan dalam penggunaan NoSQL.
No comments:
Post a Comment