Halo, kebetulan saat ini saya sedang membangun sebuah data Ware House.
apa itu data ware house ? yaitu sekumpulan database dari bermacam aplikasi yang di kumpulkan dalam satu server.
tujuan adalah untuk melakukan pengolahan data yang sumber datanya di ambil dari bermacam aplikasi tersebut. besar dong ? tentu, namanya juga ware house = gudang data.
kenapa tidak dilakukan pengolahan langsung di aplikasinya ? -sudah, tapi terkadang ada kebutuhan khusus diluar dari aplikasi. karena untuk melakukan perubahan di Production aplikasi sangat tidak di sarankan. SANGAT TIDAKKKKKKKK. JANGAN, TIDAK BOLEH. TITIK.
caranya bagaimana, ? logikanya simple, implementasinya yang gak simple wkwkwkwk
bahan-bahan yang di butuhkan :
1. server Production Aplikasi
2. server backup
3. server data ware house
tahapannya adalah :
{SERVER PRODUCTION}
- melakukan backup rutin pada server aplikasi production, caranya : http://mandrivaputri.info/2019/07/membuat-auto-backup-database-server-mariadb/
hal diatas dilakukan di semua server aplikasi yang ingin ditarik databasenya. oh ya, tutorial diatas adalah server dengan database mysql. jika databasenya berbeda, postgre misalnya, lakukan backup dengan cara yang ada di gugel, gampang, asalkan mau.
{SERVER BACKUP}
2. menarik ( get ) database hasil backup di server aplikasi production ke server backup, ini pakai rsync. contohnya seperti ini :
rsync -rzhav –update -e ‘ssh -p 220’ root@192.168.10.3:/home/centos/backupdb/ /data/192.168.10.3/db/
script diatas adalah contoh. jalankan ini di server backup, jalankan di cronjob secara rutin pakai bash script. cara nya cari di google, banyak.
kemudian, mengirim file hasil tarikan di server backup ke server Data ware house.
oh iya, siapa bilang sysadmin itu gak perlu ngerti programming. sysadmin harus ngerti programming, komunikasi antar mesin, itu perlu programming, bahasa pemograman yang sering digunakan untuk mesin adalah Python dan Shell Script. diatas adalah sedikit contoh bahasa pemograman shell script dengan bash command.
soalnya saya nyari-nyari di google gak nemu, akhirnya saya bongkar kitab lama saya. hahaha
saya jabarkan code diatas :
untuk i , temukan file yang modifikasi waktunya -1 hari di dalam folder /data/192.168.10.3/db
lalu
kirim data yang di temukan tersebut ke user root yang berada di server 192.168.11.4 di folder /root/db
selesai
{SERVER DATA WARE HOUSE}
setelah server Data ware house menerima kiriman backup database server Production dari server Backup, server Data Ware House bertugas untuk melakukan import database kiriman itu ke database server di Server Data Ware House. bingung ? ngopi dulu gih~~
saya membuat sebuah bash script yang saya jalankan secara rutin. oiya, timing waktu sangat penting, antara :
-server production melakukan backup internal
-server backup menarik data dari server production
-server backup mengirim data ke server data ware house
-server data ware house melakukan import database
timing waktu harus di perhatikan agar tidak miskom. hehehe
begini scriptnya :
penjabaran :
baris pertama : melakukan penghapusan database
baris kedua : membuat database baru
baris ketiga : untuk i , temukan file yang modifikasi waktunya -1 hari di dalam folder /root/xxx
baris ke empat : maka
baris ke lima : import file database hasil backupan di folder i ke database server
baris ke enam : selesai
baris ke tujuh : masuk ke folder /root/xxx
baris ke delapan : hapus semua file di folder tsb.
sampai disini, data ware house sudah selesai di bangun, kamu bebas mengolah data di data ware house tersebut tanpa harus menyentuh database aplikasi production. lebih aman bukan ?
disini kamu bisa mengolah data dengan melakukan query, terserah, mau pakai PHP, atau pun tools pengolah data seperti tableau.
sistem ini berjalan secara automatic, data di update sesuai dengan data asli di aplikasi production dengan waktu yang di tentukan oleh cronjob.
kamu tinggal bobok manis, biarkan tim pengolah data yang menggunakan layanan ini, kamu paling tinggal troubleshoot tipis-tipis aja kalau ada masalah. 🙂