Belajar Pentaho - Deployment & Scalability
Episode 14 of 23

Belajar Pentaho - Deployment & Scalability

Mendorong Pentaho dari single machine ke skala produksi: membandingkan arsitektur standalone dan clustered, men-scaling transformasi dengan eksekusi paralel, men-tuning resource Spoon, Carte, dan Pentaho Server, serta merencanakan load balancing dan failover.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Sejauh ini kalian bekerja di satu mesin. Episode 14 membahas saat data membesar dan produksi menuntut keandalan: bagaimana men-deploy Pentaho secara layak dan men-scaling eksekusi ETL. Kalian akan belajar kapan memakai satu server dan kapan membangun cluster, bagaimana mengeksekusi transformasi secara paralel, dan bagaimana men-tuning resource agar tidak boros atau kelaparan.

Ini bukan episode tentang membeli mesin besar, melainkan tentang keputusan arsitektur dan penyetelan yang tepat untuk beban kalian.

Arsitektur Standalone vs Clustered

Dua kutub arsitektur deployment yang perlu kalian pahami:

AspekStandaloneClustered
KomponenSatu instance server menjalankan semuanyaBeberapa Carte/Pentaho Server bekerja sama
Kapan cocokBeban kecil-menengah, satu timBeban besar, ketersediaan tinggi, banyak job
SkalabilitasTerbatas oleh resource satu mesinHorizontal: tambah node seiring beban
KompleksitasSederhana, mudah dikelolaPerlu koordinasi, repo bersama, konfigurasi hati-hati
FailoverSingle point of failureBisa didesain dengan redundancy

Aturan praktis: mulai dari standalone, naik ke clustered saat benar-benar dibutuhkan. Cluster menambah kompleksitas operasional yang tidak sepadan untuk tim kecil dengan beban sedang.

Info

Jangan terburu-buru membangun cluster. Banyak pipeline yang "melambat" sebenarnya bermasalah di desain ETL — lookup tanpa cache, query tanpa index, atau transformasi raksasa — bukan karena kurang mesin. Optimasi desain selalu lebih murah daripada menambah server.

Men-scaling Transformasi dengan Eksekusi Paralel

Cara paling efektif meningkatkan throughput seringkali bukan menambah mesin, melainkan memanfaatkan paralelisme yang sudah tersedia:

  • Hop paralel: dalam satu transformasi, cabang dari satu step ke beberapa step berikutnya berjalan paralel secara alami.
  • Clustering transformasi: PDI bisa memecah transformasi untuk dijalankan di beberapa node Carte dengan clustered mode.
  • Partisi data: bagi data berdasarkan nilai field (misalnya per cabang atau per tanggal) lalu proses tiap partisi di worker berbeda.

Sebelum berpikir cluster, periksa dulu apakah satu transformasi menjalankan step berat secara serial padahal bisa paralel. Sort rows yang ditempatkan setelah filter yang mengurangi 90% data, misalnya, jauh lebih ringan daripada sort di awal.

Men-tuning Resource: Spoon, Carte, dan Pentaho Server

Ketiga komponen berjalan di JVM yang memori heap-nya bisa diatur. Konfigurasi ini berada di file script atau variabel environment.

Spoon dan CLI Tools

Heap default PDI sering terlalu kecil untuk data besar. Di Linux, set PENTAHO_JAVA_OPTIONS sebelum menjalankan:

Mengatur heap untuk Spoon dan CLI tools
export PENTAHO_JAVA_OPTIONS="-Xmx4g -Xms512m"
./spoon.sh

Ganti nilai sesuai RAM mesin kalian. Sebelum menentukan ukuran, cek dulu ketersediaan memori dengan free -m — dan ingat bahwa Java juga butuh ruang di luar heap (metaspace dan native).

Pentaho Server

Server web juga butuh tuning heap, diatur lewat variabel di skrip startup-nya. Untuk cluster Pentaho Server, kalian juga harus memperhatikan database repository bersama — ia adalah titik leher botol potensial dan perlu optimasi terpisah.

Contoh untuk Pentaho Server di Linux, heap diatur lewat variabel environment sebelum menjalankan skrip startup:

Mengatur heap Pentaho Server
export PENTAHO_SERVER_JAVA_OPTIONS="-Xmx8g -XX:MaxMetaspaceSize=512m"
./start-pentaho.sh

Perhatikan bahwa pengaturan heap server tidak boleh dikerjakan sembarangan: ukur pemakaian baseline dulu (episode 13), lalu naikkan bertahap dan amati apakah memang mengurangi GC pause atau OutOfMemoryError. Heap yang terlalu besar justru memperlambat karena garbage collector harus mengelola area yang luas.

Load Balancing dan Failover

Untuk ketersediaan tinggi, dua konsep penting:

  • Load balancing: membagi permintaan user ke beberapa instance server, sehingga beban tersebar dan tidak ada satu node yang kewalahan. Biasanya lewat reverse proxy atau load balancer.
  • Failover: jika satu node mati, node lain mengambil alih. Untuk eksekusi job, pastikan desainnya idempoten (episode 7) sehingga job yang tertimpa kegagalan aman dijalankan ulang di node lain.

Membawa cluster Carte sebagai contoh nyata: beberapa worker Carte menjalankan transformasi, satu koordinator mengatur pembagian kerja. Start worker dengan Carte sebagai berikut:

Menjalankan worker Carte
carte.sh 10.0.0.10 8081

Di sini, carte.sh memulai server Carte yang mendengarkan di IP 10.0.0.10 port 8081. Dari Spoon, transformasi bisa dikonfigurasi memakai cluster yang mengacu pada kumpulan worker Carte ini.

Danger

Cluster hanya berguna jika bottleneck-nya memang CPU atau memori, bukan database atau sumber data eksternal. Menambah worker untuk menunggu query yang lambat hanya membuang resource. Selalu identifikasi bottleneck dulu sebelum men-scaling.

Pola Deployment yang Umum

Berikut pola yang sering dipakai tim di produksi:

  • Development: file-based di mesin developer, eksekusi di Spoon dengan heap standar.
  • Staging: meniru produksi dengan volume kecil — deploy job ke Pentaho Server staging, jalankan terjadwal.
  • Production: job berjalan di Pentaho Server atau cluster Carte, dengan tuning heap dan monitoring dari episode 13.
  • CI/CD: deploy file .ktr/.kjb dari Git ke server staging/production secara otomatis.

Yang penting dari semua pola ini: konsistensi konfigurasi antar environment. Variabel substitution dari episode 9 memastikan kode yang sama berjalan di semua environment dengan parameter yang berbeda.

Deployment sebagai Artefak yang Dapat Diulang

Prinsip terpenting dari semua pola di atas adalah reproducibility: mesin produksi harus bisa dibangun ulang dari source kapan saja. Simpan file .ktr/.kjb di Git (episode 9), dokumentasikan parameter per environment di kettle.properties atau variabel CI/CD, dan perlakukan konfigurasi server sebagai kode. Ketika server baru harus dibuat — karena migrasi atau recovery — prosesnya bukan lagi menebak-nebak, melainkan mengikuti langkah yang sama setiap kali.

Penutup

Di episode 14 ini kalian memahami deployment dan scalability: membandingkan arsitektur standalone dan clustered, men-scaling transformasi dengan eksekusi paralel dan clustering, men-tuning resource Spoon, Carte, dan Pentaho Server, serta merencanakan load balancing dan failover.

Inti yang harus dibawa pulang:

  • Mulai dari standalone; naik ke cluster hanya saat beban benar-benar menuntut.
  • Paralelisme dan optimasi desain sering lebih murah daripada menambah mesin.
  • Heap JVM adalah tuas utama tuning — sesuaikan dengan RAM, jangan berlebihan.
  • Idempotensi adalah prasyarat failover yang aman untuk job ETL.

Di episode 15, kita naik ke pola ETL lanjutan: advanced ETL patterns — incremental load, change data capture, slowly changing dimensions dengan surrogate keys, orkestrasi paralel multi-step, dan optimisasi untuk volume data besar.

Belajar Pentaho - Deployment & Scalability | Belajar Pentaho