Mengelola aset PDI secara profesional: manajemen metadata connection dan shared objects, perbandingan Pentaho Repository dengan file-based storage, penerapan version control Git pada proyek PDI, serta pengelolaan environment dan variable substitution.

Sejauh ini kalian membangun transformasi yang bekerja. Episode 9 membahas pertanyaan yang muncul begitu proyek tumbuh: bagaimana menjaga semua koneksi, konfigurasi, dan file tetap konsisten dan terlacak? Ini soal metadata, repository, dan version control — fondasi kolaborasi tim dan kelangsungan proyek jangka panjang.
Kalian akan belajar mengelola koneksi sebagai shared object, memilih antara repository Pentaho dan penyimpanan file-based, menerapkan Git pada file .ktr/.kjb, serta menggunakan variable substitution untuk memisahkan konfigurasi antar environment.
Dalam PDI, metadata adalah "data tentang data" — definisi koneksi, field, dan sumber data yang dipakai banyak tempat. Dua konsep kunci:
Praktik yang dianjurkan: simpan koneksi database sebagai shared object di level Transformation atau Job, bukan menulis ulang di setiap file. Ini mencegah perbedaan parameter koneksi antar file yang sulit dilacak.
Kalian juga bisa menyimpan koneksi dalam bentuk file .properties di folder project — beberapa tim lebih suka pendekatan ini karena ikut ke version control.
Ada dua cara menyimpan dan mengelola objek PDI:
| Aspek | File-based | Pentaho Repository |
|---|---|---|
| Lokasi | Folder biasa di filesystem | Database di sisi Pentaho Server |
| Format | .ktr, .kjb, .properties | Objek terpusat di repository database |
| Versioning | Manual (Git) | Built-in version history |
| Kolaborasi | Via Git/berkas bersama | Satu sumber kebenaran terpusat |
| Cocok untuk | Tim yang memakai Git, proyek kecil-menengah | Tim besar, kontrol akses, integrasi BI Server |
Untuk development lokal dan pembelajaran, file-based plus Git adalah pilihan paling sehat — sederhana, portable, dan bebas ketergantungan server. Repository Pentaho lebih menarik saat kalian bekerja dalam tim besar yang butuh kontrol akses dan integrasi langsung dengan Pentaho Server.
Info
Banyak tim production memakai keduanya: development berbasis file dan Git untuk kode, lalu objek di-deploy ke repository Pentaho untuk eksekusi terpusat di server. Episode 10 dan 14 akan menunjukkan pola deploy seperti ini.
File .ktr dan .kjb sebenarnya adalah XML — sehingga bisa di-version control seperti kode biasa. Ini mengubah cara tim bekerja: review perubahan, rollback, dan riwayat siapa mengubah apa.
Mulailah dengan memastikan project kalian berada di repositori Git, lalu biasakan commit dengan pesan yang menjelaskan perubahan:
git init
git add transformations jobs resources
git commit -m "feat: tambah transformasi staging order dari CSV"Tambahkan file .gitignore agar file sementara dan lingkungan pribadi tidak ikut ter-commit:
*.log
kettle.properties
.tmp/Kalian bisa melihat riwayat perubahan dengan git log dan membandingkan dua versi file dengan git diff. Karena file XML, diff kadang cukup berisik — tapi perubahan kecil seperti koneksi atau SQL yang salah mudah dikenali.
Danger
Jangan pernah commit file kettle.properties yang berisi kredensial database. Simpan template tanpa secret sebagai kettle.properties.example, dan biarkan masing-masing developer membuat file lokalnya sendiri. Ini topik penting yang akan dibahas lagi di episode 12 soal keamanan.
Masalah klasik dalam proyek data: kode yang sama harus berjalan di environment berbeda (development, staging, production) dengan koneksi dan path yang berbeda. Solusi PDI adalah variable substitution — nilai konfigurasi disimpan dalam variabel, bukan ditulis keras di file.
Tingkat-tingkat penentuan variabel, dari yang paling spesifik:
-param:ENV=dev.kettle.properties.Contoh: alih-alih menulis host database di setiap file, pakai variabel DB_HOST, DB_PORT, DB_NAME, dan DB_PASSWORD. Di Spoon, field host, port, dan nama database cukup diisi nama variabelnya — PDI akan mengganti dengan nilainya saat eksekusi, mengikuti sintaks substitusi yang dikenali mesin PDI. Saat menjalankan dari command line, berikan nilainya:
pan.sh -file=etl_order.ktr -param:DB_HOST=localhost -param:DB_NAME=labDengan pola ini, satu file .ktr yang sama bisa berjalan di development maupun production — hanya parameternya yang berbeda. Ini fondasi dari environment management yang dibahas lebih dalam di episode 14 dan 19.
Struktur folder yang baik adalah metadata tersendiri. Standar yang banyak dipakai tim PDI:
project-name/
├── transformations/
│ ├── staging/
│ ├── dimension/
│ └── facts/
├── jobs/
│ ├── daily/
│ └── monthly/
├── resources/
│ ├── sql/
│ └── files/
├── scripts/
└── .gitignorePemisahan berdasarkan fungsi (staging, dimension, facts) dan frekuensi (daily, monthly) membuat tim langsung tahu di mana mencari sesuatu. Kombinasikan struktur ini dengan variable substitution dan Git, maka proyek kalian sudah layak dijalankan ber-ramai-ramai.
Di episode 9 ini kalian menata aset proyek: mengelola koneksi sebagai shared object, memahami perbedaan Pentaho Repository dan file-based storage, menerapkan Git pada file PDI, serta menggunakan variable substitution untuk memisahkan konfigurasi antar environment.
Inti yang harus dibawa pulang:
.ktr dan .kjb adalah XML — perlakukan seperti kode dengan commit dan review.Di episode 10, kita memasang panggung untuk produksi: Pentaho Server & web console — menyiapkan server, meng-upload job dan transformasi, menjadwalkan eksekusi via BI Server, dan mengatur akses pengguna serta peran.