17

Administrasi MongoDB

Embed Size (px)

Citation preview

Page 1: Administrasi MongoDB
Page 2: Administrasi MongoDB

2 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Administrasi MongoDB

Agus Kurniawan

Seri MongoDB

Page 3: Administrasi MongoDB

3 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Seri MongoDB – Administrasi MongoDB Edisi 1 Penulis: Agus Kurniawan Penerbit: People Enterprise Press ©2013 People Enterprise Press Hak cipta dilindungi undang-undang Dilarang memperbanyak isi buku ini sebagian atau keseluruhan dengan printing, cetak, fotokopi, dan sebagainya tanpa izin tertulis dari Penerbit People Enterprise Press.

MongoDB adalah hak cipta 10gen.

Gambar cover buku merupakan hak cipta dari http://www.imagewa.net/

Page 4: Administrasi MongoDB

4 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Buku ini kupersembahkan kepada isteriku, Ela Juitasari, dan kedua anakku, M. Thariq Akbar dan Zahra Zhafirah Fathinah.

Dan juga kedua orang tuaku di Ds. Sukasukur-Tasikmalaya, (Alm) mak Yoyom dan bapak Didi.

Page 5: Administrasi MongoDB

5 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Kata pengantar

Alhamdullilah, dengan rahmat Allah SWT akhirnya buku ini dapat diselesaikan, Buku Seri MongoDB: Administrasi MongoDB. Selain itu, penulis berharap buku ini dapat membantu dan memberikan motivasi para administrator atau pemula yang ingin belajar tentang database MongoDB.

Penulis juga sebagai manusia biasa yang tidak luput dari kesalahan. Oleh karena itu, saran dan kritik guna meningkatkan kualitas konten buku ini dari pembaca sangat diperlukan. Semoga buku ini bermanfaat.

Berlin-Jerman, Oktober 2013

Agus Kurniawan Fakultas Ilmu Komputer Universitas Indonesia

Page 6: Administrasi MongoDB

6 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Daftar Isi

Kata pengantar ............................................................................................................................. 5

Daftar Isi ........................................................................................................................................ 6

Mengenal MongoDB .................................................................................................................... 8

Apakah Itu MongoDB? .......................................................................................................... 10

Mengapa MongoDB? ............................................................................................................. 11

System Requirement .............................................................................................................. 12

MongoDB Server .................................................................................................................... 12

Instalasi MongoDB Pada Platform Windows .................................................................... 13

Instalasi MongoDB Pada Platform Linux Ubuntu ............................................................ 16

Sintak MongoDB Shell .............................................................................................................. 17

MongoDB Shell ....................................................................................................................... 18

Membuat Database Baru ....................................................................................................... 19

Membuat Dokumen Baru ...................................................................................................... 20

Menampilkan Koleksi Dokumen ......................................................................................... 22

Menampilkan Data Pada Dokumen .................................................................................... 23

Memperbarui Data ................................................................................................................. 23

Menghapus Data .................................................................................................................... 24

Menghapus Dokumen ........................................................................................................... 24

Kondisional Operator ............................................................................................................ 24

Limit dan Sorting .................................................................................................................... 25

Operasi OR dan AND ............................................................................................................ 25

Regular Expression ................................................................................................................ 26

Manajemen MongoDB............................................................................................................... 27

Administrative Tool ............................................................................................................... 28

Page 7: Administrasi MongoDB

7 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Manajemen Database ............................................................................................................. 29

Monitoring Server .................................................................................................................. 30

Export & Import Data ................................................................................................................ 33

Export Data ............................................................................................................................. 34

Import Data ............................................................................................................................. 35

Backup & Restore ....................................................................................................................... 37

Backup Data ............................................................................................................................ 38

Restore Data ............................................................................................................................ 39

Daftar Pustaka ............................................................................................................................ 41

Profile Penulis ............................................................................................................................. 42

Page 8: Administrasi MongoDB

8 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Mengenal MongoDB

Bab 1

Page 9: Administrasi MongoDB

9 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Sebagian besar dari kita mungkin sudah tidak asing dengan database relational bahkan beberapa universitas juga mengajarkan. Beberapa perusahan dan industri juga memanfaatkan database relational ini untuk kepentingan aplikasinya. Database relational sudah terbukti banyak dipakai dan keandalannya masih dapat diterima. Ada banyak produk yang berbasis database relational antara lain

• SQL Server

• Oracle

• MySQL

• Postgre

• dan banyak lagi

Database relational ini memanfaatkan SQL untuk mengaksesnya. Para programmer sudah tidak asing melakukan query ataupun transaksi dengan menggunakan SQL. Beberapa dari para programmer ini mungkin tidak menyukai SQL dan selanjutnya memanfaatkan ORM (object relational mapping) yang menyederhanakan sintak SQL menjadi objek sehingga para programmer tidak menggunakan sintak SQL dalam mengakses databasenya.

Selain menggunakan pendekatan ORM, kita juga dapat mengganti paradigm SQL ini secara totol dengan mengganti sistem database yang sering dikenal dengan aliran NoSQL. Konsep umum pada sistem database berbasis NoSQL didasarkan pada bagaimana cara menyimpan data dengan pendekatan seperti

• Key-value

• BigTable

• Document store

• Graph database

Sistem database berbasis NoSQL ini cukup cepat perkembangannya. Ditambah lagi dengan banyaknya perusahan besar yang memakainya seperti Google, Amazon, Twitter, dan Facebook. Kalau kita perhatikan secara implementasi NoSQL maka kita akan memperoleh banyak sekali sistem database yang dapat dipilih contohnya MongoDB, CouchDB, Cassandra, Berkeley DB dan sebagainya.

Page 10: Administrasi MongoDB

10 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Pada bab ini penulis akan memaparkan apa dan bagaimana memanfaatkan database MongoDB sebagai sistem database berbasis NoSQL.

Apakah Itu MongoDB? MongoDB merupakan sistem database yang awalnya diperuntuknan untuk aplikasi web dan infrastruktur internet. Strategi model data dengan tingkat throughput yang tinggi dan kemampuan automatic failover membuat MongoDB menjadi pilihan alternatif untuk data. Kemudahan skalabilitas yang fleksibel menjadikan fitur utama dari database yang berbasis NoSQL ini. Sistem database MongoDB ini dapat dibaca informasinya pada alamat http://www.mongodb.org .

Database MongoDB dikembangkan oleh 10gen yang merupakan perusahan yang berkecimpung dalam bidang cloud dengan fokus software platform-as-a-service yang terdiri dari aplikasi server dan database. Database MongoDB sendiri dikembangan dengan bahasa C++ dan dikompilasi diplatform Mac, Windows dan paling banyak pada Linux.

MongoDB didasarkan pada bagaimana cara menyimpan dan memperoleh data. Teknik yang digunakan adalah BSON (binary JSON) yang iini merupakan serialisasi binary-encoded berbasis dokumen JSON. Setiap BSON akan mempunyai 0 atau lebih pasangan key/value berformat binary yang disimpan sebagai satu entiti. Satu entiti ini dikenal dengan dokumen. Berikut ini tipe dasar yang digunakan pada MongoDB yang diserialisasikan dalam format little-endian:

public enum BsonType { Double = 0x01, String = 0x02, Document = 0x03, Array = 0x04, Binary = 0x05, Undefined = 0x06, ObjectId = 0x07, Boolean = 0x08, DateTime = 0x09, Null = 0x0a, RegularExpression = 0x0b, JavaScript = 0x0d, Symbol = 0x0e, JavaScriptWithScope = 0x0f, Int32 = 0x10, Timestamp = 0x11, Int64 = 0x12, MinKey = 0xff, MaxKey = 0x7f

Page 11: Administrasi MongoDB

11 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

}

Sebagai ilustrasikan misalkan kita mempunyai data pasangan key/value sebagai berikut

{"hello": "world"}

Maka format BSON akan menjadi seperti dibawah ini

\x16\x00\x00\x00\x02hello\x00

\x06\x00\x00\x00world\x00\x00

Mengapa MongoDB? Seperti telah dijelaskan diawal mengenai MongoDB dan selanjutnya ini akan menjadi pilihan para pembaca untuk menyelesaikan beberapa permasalahan yang berhubungan dengan database. Berdasarkan tujuan dari MongoDB dibuat, kita dapat melihat bahwa MongoDB dirancang dengan mengkombinasikan konsep key-value dan relational database. Pendekatan key-value ini akan menyederhanakan proses penyimpanan dan aksesnya serta kemudahan dalam melakukan skalabilitas.

Pada beberapa kasus database MongoDB sangat cocok untuk aplikasi web untuk hal yang berhubungan dengan analisa dan logging serta beberapa aplikasi yang memerlukan cache. Seperti pada memcache yang menerapkan key-value sebagai metode untuk cache, MongoDB juga melakukannya seperti itu.

MongoDB tidak mengenal join karena memang tidak berparadigma SQL melainkan dengan pendekatan dokumen. Dokumen satu dengan dokumen lainnya dapat saling berhubungan berdasarkan relasi dokumen nya. Solusi ini diharapkan dapat mempercepat query data dari MongoDB.

Sistem database MongoDB juga dapat digunakan bebas tanpa harus mengeluarkan biaya sama sekali. Selain itu, MongoDB juga membuka kode programnya atau dengan kata lain berbasis open source.

Dukungan driver terhadap beberapa bahasa pemrograman juga menjadi menarik untuk para pengembangan yang ingin memanfaatkan database MongoDB sebagai databasenya. Dukungan ini akan menambah kreatifitas para pengembang.

Page 12: Administrasi MongoDB

12 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

System Requirement Komputer merupakan alat yang terpenting untuk menjalankan MongoDB. Berikut ini beberapa spesifikasi komputer yang dibutuhkan

Processor 1 GHz atau lebih tingi

OS yang didukung

Linux Ubuntu, Debian, dan generic Linux

Windows XP, Vista, 7, 8

Windows Server 2003, 2008

Mac

Memory minimal 1 GB. Sebaiknya memory diatas 2 GB untuk kelancaran dan kenyaman waktu mengoperasikan MongoDB

Hardisk minimal yang kosong 2 GB

Spesifikasi komputer tidak diperuntuk untuk mesin server. Khusus untuk server harus menggunakan spesifikasi komputer yang terbaik.

MongoDB Server Database MongoDB mendukung banyak platform seperti Mac, Windows, Solaris, dan Linux baik platform 32-bit maupuan 64-bit. Sistem database MongoDB ini dapat diunduh melalui websitenya yaitu

http://www.mongodb.org/downloads

Unduh database MongoDB sesuai dengan platform yang dimiliki.

Page 13: Administrasi MongoDB

13 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Gambar 1.1 Website MongoDB untuk unduh aplikasi server

MongoDB juga menyediakan source code dari aplikasi database server ini. Apabila ada platform yang tidak disediakan instalasinya maka kita dapat memanfaatkan source code ini untuk dilakukan proses kompilasi sendiri pada platform yang tidak di support. Hal ini memungkinkan karena MongoDB dibangun menggunakan kode C++ yang berjalan pada lintas platform.

Pada buku ini penulis hanya membagi pengalaman bagaimana instalasi MongoDB pada platform Windows dan LinuxUbuntu.

Instalasi MongoDB Pada Platform Windows Pada platform Windows, MongoDB server dapat berjalan pada berbagai platform OS Windows meliputi

Windows XP

Windows Vista

Windows 7

Windows Server 2008

Page 14: Administrasi MongoDB

14 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Windows Server 2008 R2

Windows 8

Untuk proses instalasinya, ekstrak file instalasi dari hasil mengunduh ke folder tertentu misalkan c:\mongo dan selanjutnya kita membuat folder untuk datanya misalkan c:\data\db . Kalau kita perhatikan hasil ekstraksi , kita akan menjumpai file-file ini didalam folder (lihat gambar 1.2):

Mongod.exe merupakan database server

Mongo.exe merupakan administrative shell

Gambar 1.2 Hasil ekstrasi file MongoDB

Selanjutnya cara menjalankan database MongoDB servernya, kita cukup mengklik dua kali file Mongod.exe. Selanjutnya kita dapat menggunakan konsole dan memanggil shellnya yaitu mongo.exe. Selanjutnya kita dapat berteraksi dengan database MongoDB seperti pada gambar 1.3.

Page 15: Administrasi MongoDB

15 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Gambar 1.3. Interaksi shell MongoDB pada Windows

Kita dapat juga menjalankan MongoDB server sebagai Windows Service. Keuntungan menggunakan Windows Service adalah aplikasi database server ini berjalan dibelakang proses sehingga tidak perlu logon ke Windows untuk sekedar mengaktifkan servernya. Ini sangat cocok untuk platform Windows Server.

MongoDB mempunyai sintak script untuk menjalankan sebagai Windows Service dengan cara menjalankan script seperti dibawah ini.

mongod --install

mongod --service

mongod --remove

mongod --reinstall

Sebagai contoh ilustrasi dengan konfigurasi sebelumnya, kita jalankan konsole (CMD) dengan RunAs Administrator dan kemudian ketik sintak dibawah ini

mongod --logpath c:\mongo\log\log.log --logappend --dbpath c:\data\db --directoryperdb --install

Setelah sukses, kita panggil bagian Services dari Administrative Tools seperti yang terlihat pada gambar 1.4.

Page 16: Administrasi MongoDB

16 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Gambar 1.4 MongoDB server yang berjalan sebagai service pada Windows

Instalasi MongoDB Pada Platform Linux Ubuntu Sedangkan untuk instalasi MongoDB pada platform Linux, misalkan Ubuntu, mula-mula kita install GPG key sebagai berikut

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

Kemudian menambahkan repository pada /etc/apt/sources.list sebagai berikut

deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

Kemudian lakukan update

sudo apt-get update

Terakhir, kita install mongodb

sudo apt-get install mongodb-10gen

Selanjutnya sistem akan mengunduh dan menginstalnya. Secara umum service sudah jalan langsung, jika tidak panggil script ini pada konsole

mongod

Sedangkan untuk mengaktifkan MongoDB shell nya dapat digunakan sintak

mongo

Page 17: Administrasi MongoDB

17 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B

Sintak MongoDB Shell

Bab 3