NoSQL, NewSQL dan Polystores
Pendahuluan
• Untuk mengelola data di cloud, kita dapat mengandalkan DBMS
relasional. Semua DBMS relasional memiliki versi terdistribusi, dan
sebagian besar beroperasi di cloud.
• Namun, meskipun sistem tersebut telah mampu mengintegrasikan
dukungan untuk semua jenis data (misalnya, objek multimedia,
dokumen) dan fungsi baru, hal ini mengakibatkan hilangnya
kinerja, kesederhanaan, dan fleksibilitas untuk aplikasi dengan
persyaratan kinerja yang spesifik dan ketat.
• Oleh karena itu, diperlukan mesin DBMS yang lebih khusus,
misalnya: DBMS berorientasi kolom yang menyimpan data kolom
bersama-sama daripada dalam baris seperti pada DBMS relasional
berorientasi baris tradisional, yang telah terbukti berkinerja lebih
baik beberapa kali lebih besar pada beban kerja OLAP.
• Demikian pula, sistem manajemen data stream secara khusus
dirancang untuk menangani data stream secara efisien.
…
• Jenis penting dari teknologi manajemen data baru
adalah NoSQL, yang berarti "Not Only SQL" untuk
membedakan dengan pendekatan dari DBMS relasional.
• Sistem NoSQL adalah penyimpanan data khusus yang
memenuhi persyaratan manajemen data web dan cloud.
• Istilah “penyimpanan data” (“data store”) sering
digunakan karena cukup umum, termasuk tidak hanya
DBMS tetapi juga sistem file atau direktori yang lebih
sederhana.
• Sebagai alternatif untuk DBMS relasional, sistem NoSQL
mendukung model data yang berbeda dan bahasa yang
berbeda dari SQL standar.
…
• Sistem ini juga menekankan skalabilitas, toleransi
kesalahan, dan ketersediaan, terkadang dengan
mengorbankan konsistensi.
• Ada berbagai jenis sistem NoSQL, termasuk nilai kunci
(key-value), dokumen (document), kolom lebar (wide
column), dan grafik (graph), serta hibrida (hybrid,
multimodel atau NewSQL).
• Teknologi manajemen data baru ini telah memberikan
layanan yang kaya yang dapat digunakan untuk
membangun aplikasi intensif data cloud yang dapat
diskalakan dan menunjukkan kinerja tinggi.
…
• Namun, hal ini juga menyebabkan diversifikasi
antarmuka penyimpanan data yang luas dan hilangnya
paradigma pemrograman umum.
• Dengan demikian, hal ini membuat sangat sulit bagi
pengguna untuk membangun aplikasi yang
menggunakan banyak penyimpanan data (data stores),
misalnya, sistem file terdistribusi, DBMS relasional, dan
DBMS NoSQL.
• Hal ini telah memotivasi desain polystore, juga disebut
sistem multistore, yang menyediakan akses terintegrasi
ke sejumlah penyimpanan data cloud melalui satu atau
lebih bahasa kueri.
Motivasi untuk NoSQL
• Ada beberapa alasan (pelengkap) yang memotivasi
perlu-nya sistem NoSQL.
1. Yang pertama, adalah batasan “satu ukuran cocok untuk
semua (one size fits all)” dari DBMS relasional.
2. Alasan kedua, adalah skalabilitas dan ketersediaan yang
terbatas dari arsitektur database awal yang telah digunakan di
cloud.
3. Alasan ketiga, yang telah digunakan untuk memotivasi
kebutuhan sistem NoSQL adalah bahwa mendukung
konsistensi basis data yang kuat seperti yang dilakukan DBMS
relasional, yaitu melalui transaksi ACID, merusak skalabilitas.
Oleh karena itu, beberapa sistem NoSQL telah mengendurkan
konsistensi basis data demi skalabilitas dengan pendekatan
teorema CAP dari teori sistem terdistribusi.
…
• Teorema CAP menyatakan bahwa penyimpanan data
terdistribusi dengan replikasi hanya dapat menyediakan dua
dari tiga properti berikut: (C, consistency) konsistensi, (A,
availability) ketersediaan, dan (P, partition tolerance)
toleransi partisi. Properti ini didefinisikan sebagai berikut:
– Konsistensi: semua node melihat nilai data yang sama pada
saat yang sama, yaitu, setiap permintaan baca mengembalikan
nilai tertulis terakhir. Properti ini sesuai dengan linearizability
(konsistensi atas operasi individu) dan bukan serializability
(konsistensi atas kelompok operasi).
– Ketersediaan: setiap replika harus membalas setiap permintaan
yang diterima.
– Toleransi partisi: sistem terus beroperasi meskipun ada partisi
jaringan karena adanya kegagalan.
…
• Istilah NoSQL pertama kali muncul pada akhir 1990-an
untuk penyimpanan data baru yang dibangun untuk
memenuhi persyaratan manajemen data web dan cloud.
• Sebagai alternatif untuk database relasional, yang
mendukung model data dan bahasa yang berbeda selain
SQL standar.
• Sistem ini biasanya menekankan skalabilitas, toleransi
kesalahan, dan ketersediaan, terkadang dengan
mengorbankan konsistensi.
Penyimpanan Nilai Kunci (Key-Value Stores)
• Dalam model data nilai kunci, semua data direpresentasikan
sebagai pasangan nilai kunci, di mana nilai kunci di-identifikasi
secara unik. Penyimpanan nilai kunci tidak memiliki skema, yang
menghasilkan fleksibilitas dan skalabilitas yang tinggi. Biasanya
menyediakan antarmuka sederhana seperti put(key, value),
value=get(key), delete(key).
• Bentuk penyimpanan nilai kunci yang diperluas dapat
menyimpan record, sebagai list pasangan nilai atribut. Atribut
pertama disebut kunci utama atau kunci primer, misalnya, NIK,
dan secara unik mengidentifikasi record di antara kumpulan
record, misalnya orang. Kunci biasanya diurutkan, yang
memungkinkan kueri rentang serta pemrosesan kunci yang
terurut.
• Penyimpanan nilai kunci yang populer adalah Amazon
DynamoDB.
DynamoDB
• DynamoDB digunakan oleh beberapa layanan inti
Amazon yang membutuhkan ketersediaan tinggi dan
akses data berbasis kunci. Contoh layanan adalah yang
menyediakan keranjang belanja, daftar penjual,
preferensi pelanggan, dan katalog produk.
• Untuk mencapai skalabilitas dan ketersediaan, Dynamo
mengorbankan konsistensi di bawah beberapa skenario
kegagalan dan menggunakan sintesis teknik P2P dalam
cluster shared-nothing.
• DynamoDB menyimpan data sebagai tabel database,
yang merupakan kumpulan item individual. Setiap item
adalah daftar pasangan atribut-nilai.
…
• Nilai atribut dapat berupa skalar, set, atau JSON. Item
dianalogikan dengan baris dalam tabel relasional, dan
atribut dianalogikan dengan kolom.
• Namun, karena atribut sudah menggambarkan dirinya
sendiri, skema relasional tidak diperlukan. Selanjutnya,
item mungkin heterogen, yaitu, dengan atribut yang
berbeda.
• Desain asli DynamoDB menyediakan abstraksi P2P tabel
hash terdistribusi (DHT). Kunci utama (atribut pertama)
di-hash pada partisi yang berbeda, yang memungkinkan
operasi baca dan tulis berbasis kunci yang efisien ke item
serta penyeimbangan beban.
…
• Baru-baru ini, DynamoDB telah diperluas untuk
mendukung kunci primer komposit, yang dibuat dari dua
atribut.
• Atribut pertama adalah kunci hash dan belum tentu unik.
Atribut kedua adalah kunci rentang dan memungkinkan
operasi rentang dalam partisi hash yang sesuai dengan
kunci hash.
• Untuk mengakses tabel database, DynamoDB
menyediakan Java API dengan operasi berikut:
– PutItem, UpdateItem, DeleteItem: menambah, memperbarui,
atau menghapus item dalam tabel berdasarkan kunci utamanya
(baik kunci primer hash atau kunci primer komposit).
…
– GetItem: mengembalikan item berdasarkan kunci utamanya
dalam sebuah tabel.
– BatchGetItem: mengembalikan semua item yang memiliki kunci
utama yang sama, tetapi dalam beberapa tabel.
– Scan: mengembalikan semua item dalam tabel.
– Kueri rentang: mengembalikan semua item berdasarkan kunci
hash dan rentang pada kunci rentang.
– Kueri terindeks: mengembalikan semua item berdasarkan
atribut yang diindeks.
…
• DynamoDB mengorbankan konsistensi data yang kuat
untuk skalabilitas dan ketersediaan, tetapi dengan cara
yang berbeda untuk mengontrol konsistensi. Dengan
memberikan konsistensi replikasi eventual, dengan
menggunakan protokol propagasi pembaruan asinkron
dan protokol deteksi kegagalan terdistribusi.
• Penyimpanan Nilai Kunci lainnya: Cassandra,
Memcached, Riak, Redis, Amazon SimpleDB, dan
Database Oracle NoSQL
Peyimpanan berbasis Dokumen (Document Stores)
• Penyimpanan dokumen adalah penyimpanan nilai kunci
tingkat lanjut, di mana kunci dipetakan ke nilai tipe
dokumen, seperti JSON, YAML, atau XML.
• Dokumen biasanya dikelompokkan ke dalam koleksi,
yang memainkan peran yang mirip dengan tabel
relasional. Namun, dokumen berbeda dari tupel
relasional.
• Dokumen menggambarkan dirinya sendiri (self-
describing), menyimpan data dan metadata sekaligus
(misalnya, markup dalam XML, nama field dalam objek
JSON) dan dapat berbeda satu sama lain dalam koleksi.
…
• Selanjutnya, struktur dokumen bersifat hierarkis,
menggunakan konstruksi bersarang, misalnya objek dan
larik (arrays) bersarang di JSON.
• Jadi, pemodelan database menggunakan dokumen
membutuhkan koleksi yang lebih sedikit dibandingkan
dengan tabel relasional, dan juga menghindari operasi
join.
• Selain antarmuka nilai kunci sederhana untuk mengambil
dokumen, penyimpanan dokumen menawarkan API atau
bahasa kueri yang mengambil dokumen berdasarkan
kontennya.
…
• Penyimpanan dokumen memudahkan untuk menangani
perubahan dan nilai opsional, dan untuk memetakan ke
objek program.
• Hal ini membuat-nya menarik untuk aplikasi web
modern, yang kontennya berubah terus-menerus, dan di
mana kecepatan penyebaran (deployment) penting.
• Database penyimpanan dokumen NoSQL yang populer
adalah MongoDB
MongoDB
• MongoDB adalah sistem open source yang ditulis dalam
C++. Sistem ini menyediakan model data berbasis JSON
untuk dokumen, fleksibilitas skema, ketersediaan tinggi,
toleransi kesalahan, dan skalabilitas dalam cluster
shared-nothing.
• MongoDB menyimpan data sebagai dokumen dalam
BSON (Binary JSON), yang dikodekan dalam binary untuk
menyertakan tipe tambahan seperti biner, int, long, dan
floating point.
• Dokumen BSON berisi satu atau beberapa field, dan
setiap field memiliki nama dan berisi nilai tipe data
tertentu, termasuk larik, data biner, dan subdokumen.
…
• Setiap dokumen adalah objek BSON, dengan banyak
field, dan diidentifikasi secara unik oleh field pertamanya
dengan tipe ObjectId, yang nilainya secara otomatis
dihasilkan oleh MongoDB.
• Dokumen yang memiliki struktur serupa diatur sebagai
kumpulan (collections), seperti tabel relasional, field
dokumen serupa dengan kolom.
• Namun, dokumen dalam koleksi yang sama dapat
memiliki struktur yang berbeda, karena tidak ada skema
yang ditentukan.
…
• MongoDB menyediakan bahasa kueri yang kaya untuk
memperbarui (update) dan mengambil data BSON
menggunakan fungsi yang dinyatakan dalam JSON.
• Mewakili kueri sebagai JSON memungkinkan penyatuan
baik cara data disimpan maupun dimanipulasi.
• Bahasa query dapat digunakan dengan API dalam
berbagai bahasa pemrograman, seperti Java, PHP,
JavaScript dan Scala.
• Kueri diimplementasikan sebagai metode atau fungsi
dalam API bahasa pemrograman tertentu.
…
• MongoDB mendukung banyak jenis kueri untuk menyisipkan,
memperbarui, menghapus, dan mengambil dokumen.
• Kueri dapat mengembalikan dokumen, subset field tertentu
dalam dokumen, atau agregasi nilai yang kompleks dari
banyak dokumen.
• Kueri juga dapat menyertakan fungsi JavaScript yang
ditentukan pengguna.
• Bentuk umum dari query adalah :
[Link](JSON expression)
• Di mana db adalah variabel global yang merupakan koneksi
database, dan function adalah operasi database yang
diterapkan ke koleksi.
…
• Berbagai jenis kueri adalah :
– Operasi menyisipkan, menghapus, dan memperbarui operasi pada
dokumen. Untuk operasi penghapusan dan pembaruan, ekspresi JSON
menentukan kriteria untuk memilih dokumen.
– Kueri pencocokan tepat mengembalikan hasil berdasarkan kesetaraan
nilai untuk field dalam dokumen, biasanya kunci utama.
– Kueri rentang mengembalikan hasil berdasarkan nilai field dalam
rentang tertentu.
– Kueri geospasial mengembalikan hasil berdasarkan kedekatan,
perpotongan, dan penyertaan objek geografis, seperti titik, garis,
lingkaran, atau poligon dalam format GeoJSON.
– Kueri penelusuran teks mengembalikan hasil dalam urutan relevansi
berdasarkan argumen teks menggunakan operator Boolean.
– Kueri agregasi mengembalikan nilai agregat dari koleksi dengan operator
seperti count, min, max, dan average. Selanjutnya, dokumen dari dua
koleksi dapat digabungkan menggunakan operasi left outer join.
…
• Untuk menyediakan akses yang efisien ke data, MongoDB menyertakan dukungan
untuk berbagai jenis indeks sekunder yang dapat dideklarasikan pada field apa
pun dalam dokumen, termasuk field dalam array. Macam-macam indeks adalah:
– Indeks unik, di mana nilai field yang diindeks dipaksakan menjadi unik.
– Indeks multikey (gabungan) pada beberapa field.
– Indeks larik untuk bidang larik, dengan entri indeks terpisah untuk setiap nilai
larik.
– Indeks TTL yang akan kedaluwarsa secara otomatis setelah Time-to-Live (TTL)
tertentu.
– Indeks geospasial untuk mengoptimalkan kueri berdasarkan kedekatan,
perpotongan, dan penyertaan objek geografis, seperti titik, garis, lingkaran, atau
poligon.
– Indeks parsial yang dibuat untuk subset dokumen yang memenuhi kondisi yang
ditentukan oleh pengguna.
– Indeks jarang yang mengindeks hanya dokumen yang berisi field tertentu.
– Indeks pencarian teks menggunakan aturan linguistik khusus bahasa untuk
mengoptimalkan kueri pencarian teks.
…
• Untuk menskalakan dalam kluster shared-nothing, MongoDB
mendukung berbagai jenis skema partisi data (atau sharding): berbasis
hash, berbasis rentang, dan berdasar lokasi (di mana pengguna
menentukan rentang kunci dan node terkait).
• MongoDB baru-baru ini memperkenalkan dukungan untuk transaksi
ACID pada banyak dokumen, selain transaksi dokumen tunggal. Ini
dicapai melalui isolasi snapshot.
• Arsitektur MongoDB cocok dengan perangkat lunak manajemen big data
dan mendukung mesin penyimpanan misalnya, HDFS, atau dalam
memori, untuk menangani permintaan aplikasi yang unik, antarmuka
dengan kerangka kerja big data seperti MapReduce dan Spark, dan
mendukung tool pihak ketiga untuk analitik, IoT, aplikasi seluler, dll.
Dapat menggunakan memori utama secara ekstensif untuk
mempercepat operasi basis data.
• Sistem penyimpanan Dokumen lainnya diantaranya: AsterixDB,
Couchbase, CouchDB dan RavenDB
Penyimpanan Kolom Lebar (Wide Column Stores)
• Penyimpanan kolom lebar menggabungkan beberapa
properti dari database relasional (misalnya,
merepresentasikan data sebagai tabel) dengan fleksibilitas
penyimpanan nilai kunci (misalnya, data tanpa skema dalam
kolom).
• Setiap baris dalam tabel kolom lebar diidentifikasi secara unik
oleh kunci dan memiliki sejumlah kolom bernama. Namun
tidak seperti dalam tabel relasional, di mana kolom hanya
dapat berisi nilai atom, kolom bisa lebar dan berisi beberapa
pasangan nilai kunci.
• Penyimpanan kolom lebar memperluas antarmuka
penyimpanan nilai kunci dengan konstruksi yang lebih
deklaratif yang memungkinkan pemindaian, pencocokan
tepat, dan kueri rentang pada kelompok kolom.
…
• Sistem ini biasanya menyediakan API untuk digunakan
dalam bahasa pemrograman. Beberapa sistem juga
menyediakan bahasa query seperti SQL, misalnya
Cassandra Query Language (CQL).
• Sistem kolom lebar pertama kalai digunakan pada
Google Bigtable.
Bigtable
• Bigtable adalah penyimpanan kolom lebar untuk cluster
shared-nothing.
• Bigtable menggunakan Google File System (GFS) untuk
menyimpan data terstruktur dalam file terdistribusi, yang
memberikan toleransi kesalahan dan ketersediaan dan
juga menggunakan bentuk partisi data dinamis untuk
skalabilitas.
• Seperti GFS, sistem ini digunakan oleh aplikasi Google
populer, seperti Google Earth, Google Analytics, dan
Google+.
…
• Bigtable mendukung model data sederhana yang
menyerupai model relasional, dengan atribut timestamp
multinilai.
• Model ini merupakan dasar untuk implementasi Bigtable
yang menggabungkan aspek DBMS penyimpanan baris
dan penyimpanan kolom. Sehingga model data Bigtable
merupakan model relasional yang sedikit diperluas.
• Instance Bigtable adalah kumpulan pasangan (kunci,
nilai) di mana kunci mengidentifikasi baris dan nilainya
adalah kumpulan kolom, diatur sebagai keluarga kolom.
Bigtable mengurutkan datanya berdasarkan kunci, yang
membantu mengelompokkan baris dengan rentang yang
sama di node cluster yang sama.
…
• Setiap baris dalam Bigtable diidentifikasi secara unik oleh
kunci baris, yang merupakan string (hingga 64KB dalam
sistem asli). Jadi, kunci baris seperti kunci atribut tunggal
dalam suatu relasi.
• Sebuah Bigtable selalu diurutkan berdasarkan kunci
baris, sebuah baris dapat memiliki beberapa keluarga
kolom, yang membentuk unit kontrol akses dan
penyimpanan. Keluarga kolom adalah kumpulan kolom
dengan tipe yang sama.
• Untuk membuat Bigtable, hanya nama tabel dan nama
keluarga kolom yang perlu ditentukan. Namun, dalam
keluarga kolom, kolom (dengan tipe yang sama) dapat
ditambahkan secara dinamis.
….
• Bigtable menyediakan API dasar untuk mendefinisikan
dan memanipulasi tabel, dalam bahasa pemrograman
seperti C++. Dimana juga menyediakan fungsi untuk
mengubah tabel, dan metadata keluarga kolom, seperti
hak kontrol akses.
• Sistem penyimpanan kolom lebar lainnya: ada
implementasi Bigtable open source yang populer, seperti
Hadoop Hbase, implementasi Java populer yang berjalan
di atas HDFS, dan Cassandra yang menggabungkan teknik
dari Bigtable dan DynamoDB.
Graph DBMS
• Database graph mewakili dan menyimpan data secara
langsung sebagai graph yang memungkinkan ekspresi
mudah dan pemrosesan cepat kueri seperti graph,
misalnya, menghitung jalur terpendek antara dua
elemen dalam grafik.
• Hal ini jauh lebih efisien daripada dengan database
relasional di mana data graph perlu disimpan sebagai
tabel terpisah dan kueri seperti graph memerlukan
operasi gabungan yang mahal dan berulang.
• DBMS graph biasanya menyediakan bahasa kueri graph
yang kuat. Sistem ini populer dengan aplikasi berbasis
web yang intensif data seperti jejaring sosial dan sistem
pemberi rekomendasi.
...
• Contoh DBMS graph yang populer ialah Neo4j, yang
merupakan sistem open source komersial dengan kinerja
yang scalable dan bekinerja tinggi.
• Sistem ini menyediakan model data graph yang kaya
dengan batasan integritas, bahasa kueri yang kuat, yang
disebut Cypher, dengan indeks, transaksi ACID, dan
dukungan untuk ketersediaan tinggi dan penyeimbangan
beban.
Penyimpanan Data Hibrida
• Penyimpanan data hybrid menggabungkan kemampuan
yang biasanya ditemukan di penyimpanan data dan
DBMS yang berbeda.
• Dapat dibedakan antara sistem NoSQL multimodel dan
DBMS NewSQL.
Penyimpanan NoSQL Multimodel
• Sistem NoSQL multimodel dirancang untuk mengurangi kebutuhan
menangani beberapa sistem saat membangun aplikasi kompleks.
• OrientDB adalah contoh penyimpanan data NoSQL multimodel
yang menggabungkan konsep dari model data berorientasi objek,
dokumen NoSQL, dan graph.
• OrientDB menyediakan model data yang kaya dengan skema,
bahasa kueri berbasis SQL yang kuat, transaksi ACID optimistis,
dan dukungan untuk ketersediaan tinggi serta penyeimbangan
beban (load balancing).
• Model data OrientDB adalah model data grafik dengan empat jenis
record: Dokumen, RecordBytes, Vertex, dan Edge.
• Manajemen skema OrientDB mengikuti orientasi objek dengan
pewarisan kelas, memungkinkan kelas menjadi tanpa skema,
skema penuh, atau skema hibrida.
Penyimpanan NoSQL Multimodel
• Kelas adalah dasar untuk pengelompokan dan partisi record pada
beberapa node, dengan setiap kelas dapat memiliki satu atau lebih
partisi yang disebut kluster.
• OrientDB menggunakan berbagai strategi untuk memilih kluster
saat menyisipkan record baru, termasuk default, round-robin,
seimbang (balanced), dan lokal.
• OrientDB mendukung replikasi multimaster, memungkinkan
semua node dalam kluster shared-nothing untuk menulis ke
database secara paralel.
• Transaksi diproses menggunakan kontrol konkurensi multiversi
optimistis, dengan asumsi konflik pembaruan yang sedikit, dan
transaksi berlanjut tanpa penguncian hingga waktu commit.
DBMS NewSQL
• NewSQL adalah kelas DBMS baru yang bertujuan menggabungkan
skalabilitas sistem NoSQL dengan konsistensi kuat dan kegunaan
DBMS relasional.
• Tujuan utamanya adalah memenuhi kebutuhan sistem informasi
perusahaan yang memerlukan skalabilitas namun tetap
mendukung fitur DBMS relasional tradisional.
• Sistem NoSQL menawarkan skalabilitas, ketersediaan, skema
fleksibel, dan API praktis untuk pemrograman aplikasi data intensif
yang kompleks.
• DBMS relasional menyediakan konsistensi database yang kuat
dengan transaksi ACID dan memudahkan penggunaan alat serta
aplikasi dengan SQL standar.
DBMS NewSQL
• NewSQL memiliki fitur umum seperti model data relasional, SQL
standar, transaksi ACID, skalabilitas menggunakan partisi data
dalam kluster shared-nothing, dan ketersediaan menggunakan
replikasi data.
• Hybrid Transaction and Analytics Processing (HTAP) adalah kelas
penting dari NewSQL yang memungkinkan analisis real-time pada
data operasional.
• Contoh sistem NewSQL termasuk Google F1, LeanXcale, Apache
Ignite, CockroachDB, dan SAP HANA.
Polystores
• Polystore menyediakan akses terintegrasi ke beberapa
penyimpanan data cloud seperti NoSQL, DBMS
relasional, atau HDFS. Sistem ini biasanya hanya
mendukung kueri baca-saja, karena mendukung
transaksi terdistribusi di seluruh penyimpanan data yang
heterogen adalah masalah yang sulit.
• Sistem polystore dapat dibagi berdasarkan tingkat
penggabungan dengan penyimpanan data yang
mendasarinya: digabungkan secara longgar (loosely
coupled), digabungkan dengan erat (tightly coupled), dan
hibrida (hybrid).
Loosely Coupled Polystores
• Polystore yang digabungkan secara longgar merupakan
sistem multidatabase di mana mereka dapat menangani
penyimpanan data otonom, yang dapat diakses melalui
antarmuka umum polystore serta secara terpisah melalui API
lokal mereka.
• Terdapat dua modul utama: satu prosesor kueri dan satu
pembungkus (wrapper) per penyimpanan data.
• Pemroses kueri memiliki katalog penyimpanan data, dan
setiap pembungkus memiliki katalog lokal penyimpanan
datanya. Setelah katalog dan pembungkus dibuat, pemroses
kueri dapat mulai memproses kueri masukan dari pengguna,
dengan berinteraksi dengan pembungkus.
• Contoh sistem ini: BigIntegrator, Forward, and QoX
Tightly Coupled Polystores
• Polystore yang digabungkan secara erat bertujuan untuk
kueri data terstruktur dan tidak terstruktur yang efisien
untuk analitik (big) data.
• Sistem ini mungkin juga memiliki tujuan tertentu, seperti
selftuning atau integrasi HDFS dan data DBMS relasional.
• Namun, mereka semua mengorbankan otonomi untuk
kinerja, biasanya dalam cluster shared-nothing, sehingga
penyimpanan data hanya dapat diakses melalui
polystore.
• Contoh tightly coupled polystores: Polybase, HadoopDB,
dan Estocada. Yang lainnya: Redshift Spectrum, Odyssey,
dan JEN.
Sistem Hybrid
• Sistem hybrid mencoba menggabungkan keuntungan
dari sistem yang digabungkan secara longgar (misalnya,
mengakses banyak penyimpanan data yang berbeda) dan
sistem yang digabungkan secara erat, misalnya,
mengakses secara efisien beberapa penyimpanan data
secara langsung melalui antarmuka lokalnya.
• Oleh karena itu, arsitektur mengikuti arsitektur
mediator-wrapper, sedangkan prosesor kueri juga dapat
langsung mengakses beberapa penyimpanan data,
misalnya, HDFS melalui MapReduce atau Spark.
• Contoh sistem hybrid polystores: Spark SQL,
CloudMdsQL, dan BigDAWG.
Kesimpulan
• NoSQL adalah teknologi manajemen data baru yang muncul untuk
memenuhi kebutuhan manajemen data web dan cloud,
menawarkan alternatif dari DBMS relasional.
• Sistem NoSQL menekankan skalabilitas, toleransi kesalahan, dan
ketersediaan, terkadang dengan mengorbankan konsistensi.
• Ada beberapa jenis sistem NoSQL, termasuk penyimpanan nilai
kunci, dokumen, kolom lebar, dan grafik, serta hibrida.
• Penyimpanan nilai kunci seperti Amazon DynamoDB menyimpan
data sebagai pasangan nilai kunci tanpa skema, memberikan
fleksibilitas dan skalabilitas tinggi.
• Penyimpanan berbasis dokumen seperti MongoDB menyimpan
data sebagai dokumen (misalnya dalam format JSON) yang dapat
memiliki struktur berbeda dalam satu koleksi.
Kesimpulan
• Penyimpanan kolom lebar seperti Google Bigtable
menggabungkan aspek database relasional dengan fleksibilitas
penyimpanan nilai kunci.
• DBMS grafik seperti Neo4j menyimpan data langsung sebagai
grafik, memungkinkan pemrosesan cepat untuk kueri berbasis
grafik.
• Penyimpanan data hibrida menggabungkan kemampuan dari
berbagai jenis penyimpanan data, termasuk sistem NoSQL
multimodel dan DBMS NewSQL.
• NewSQL bertujuan menggabungkan skalabilitas sistem NoSQL
dengan konsistensi kuat dan kegunaan DBMS relasional.
• Polystore menyediakan akses terintegrasi ke beberapa
penyimpanan data cloud, dengan variasi dalam tingkat
penggabungan dan fokus pada kueri baca-saja.
Selesai...